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