summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/tests/overlays
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2010-07-14 17:59:35 -0700
committerMathias Agopian <mathias@google.com>2010-07-14 17:59:35 -0700
commit81bac09fa6b01dd1495644d9c825c3666762fced (patch)
tree346e826932eef1b4402dfa98796075e63d3c90e8 /services/surfaceflinger/tests/overlays
parente1ea0811de760256cee3b1ffca227251e1cf52c5 (diff)
downloadframeworks_native-81bac09fa6b01dd1495644d9c825c3666762fced.zip
frameworks_native-81bac09fa6b01dd1495644d9c825c3666762fced.tar.gz
frameworks_native-81bac09fa6b01dd1495644d9c825c3666762fced.tar.bz2
move native services under services/
moved surfaceflinger, audioflinger, cameraservice all native services should now reside in this location. Change-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8
Diffstat (limited to 'services/surfaceflinger/tests/overlays')
-rw-r--r--services/surfaceflinger/tests/overlays/Android.mk17
-rw-r--r--services/surfaceflinger/tests/overlays/overlays.cpp59
2 files changed, 76 insertions, 0 deletions
diff --git a/services/surfaceflinger/tests/overlays/Android.mk b/services/surfaceflinger/tests/overlays/Android.mk
new file mode 100644
index 0000000..592b601
--- /dev/null
+++ b/services/surfaceflinger/tests/overlays/Android.mk
@@ -0,0 +1,17 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES:= \
+ overlays.cpp
+
+LOCAL_SHARED_LIBRARIES := \
+ libcutils \
+ libutils \
+ libui \
+ libsurfaceflinger_client
+
+LOCAL_MODULE:= test-overlays
+
+LOCAL_MODULE_TAGS := tests
+
+include $(BUILD_EXECUTABLE)
diff --git a/services/surfaceflinger/tests/overlays/overlays.cpp b/services/surfaceflinger/tests/overlays/overlays.cpp
new file mode 100644
index 0000000..c248a615
--- /dev/null
+++ b/services/surfaceflinger/tests/overlays/overlays.cpp
@@ -0,0 +1,59 @@
+#include <binder/IPCThreadState.h>
+#include <binder/ProcessState.h>
+#include <binder/IServiceManager.h>
+#include <utils/Log.h>
+
+#include <ui/Overlay.h>
+
+#include <surfaceflinger/Surface.h>
+#include <surfaceflinger/ISurface.h>
+#include <surfaceflinger/SurfaceComposerClient.h>
+
+using namespace android;
+
+namespace android {
+class Test {
+public:
+ static const sp<ISurface>& getISurface(const sp<Surface>& s) {
+ return s->getISurface();
+ }
+};
+};
+
+int main(int argc, char** argv)
+{
+ // set up the thread-pool
+ sp<ProcessState> proc(ProcessState::self());
+ ProcessState::self()->startThreadPool();
+
+ // create a client to surfaceflinger
+ sp<SurfaceComposerClient> client = new SurfaceComposerClient();
+
+ // create pushbuffer surface
+ sp<Surface> surface = client->createSurface(getpid(), 0, 320, 240,
+ PIXEL_FORMAT_UNKNOWN, ISurfaceComposer::ePushBuffers);
+
+ // get to the isurface
+ sp<ISurface> isurface = Test::getISurface(surface);
+ printf("isurface = %p\n", isurface.get());
+
+ // now request an overlay
+ sp<OverlayRef> ref = isurface->createOverlay(320, 240, PIXEL_FORMAT_RGB_565);
+ sp<Overlay> overlay = new Overlay(ref);
+
+
+ /*
+ * here we can use the overlay API
+ */
+
+ overlay_buffer_t buffer;
+ overlay->dequeueBuffer(&buffer);
+ printf("buffer = %p\n", buffer);
+
+ void* address = overlay->getBufferAddress(buffer);
+ printf("address = %p\n", address);
+
+ overlay->queueBuffer(buffer);
+
+ return 0;
+}