resize.cpp revision 81bac09fa6b01dd1495644d9c825c3666762fced
1#include <cutils/memory.h>
2
3#include <utils/Log.h>
4
5#include <binder/IPCThreadState.h>
6#include <binder/ProcessState.h>
7#include <binder/IServiceManager.h>
8
9#include <surfaceflinger/Surface.h>
10#include <surfaceflinger/ISurface.h>
11#include <surfaceflinger/SurfaceComposerClient.h>
12
13#include <ui/Overlay.h>
14
15using namespace android;
16
17namespace android {
18class Test {
19public:
20    static const sp<ISurface>& getISurface(const sp<Surface>& s) {
21        return s->getISurface();
22    }
23};
24};
25
26int main(int argc, char** argv)
27{
28    // set up the thread-pool
29    sp<ProcessState> proc(ProcessState::self());
30    ProcessState::self()->startThreadPool();
31
32    // create a client to surfaceflinger
33    sp<SurfaceComposerClient> client = new SurfaceComposerClient();
34
35    // create pushbuffer surface
36    sp<Surface> surface = client->createSurface(getpid(), 0, 160, 240,
37            PIXEL_FORMAT_RGB_565);
38
39
40    client->openTransaction();
41    surface->setLayer(100000);
42    client->closeTransaction();
43
44    Surface::SurfaceInfo info;
45    surface->lock(&info);
46    ssize_t bpr = info.s * bytesPerPixel(info.format);
47    android_memset16((uint16_t*)info.bits, 0xF800, bpr*info.h);
48    surface->unlockAndPost();
49
50    surface->lock(&info);
51    android_memset16((uint16_t*)info.bits, 0x07E0, bpr*info.h);
52    surface->unlockAndPost();
53
54    client->openTransaction();
55    surface->setSize(320, 240);
56    client->closeTransaction();
57
58
59    IPCThreadState::self()->joinThreadPool();
60
61    return 0;
62}
63