From 050316184b01c0d1a01c46afae7429b89a27c31b Mon Sep 17 00:00:00 2001 From: tedbo Date: Mon, 6 Jun 2011 16:02:47 -0700 Subject: Add ParcelSurfaceTexture Java class to enable ISurfaceTexture sharing via Binder. This adds a new ParcelSurfaceTexture.java class that can be instantiated with a SurfaceTexture and used to send the corresponding ISurfaceTexture interface to another process via Binder. The ParcelSurfaceTexture java object can then be used to create an ANativeWindow based on the SurfaceTextureClient interface. Change-Id: Ie38ea948b866e52f36a6d0f6cde19b54a8546817 --- native/android/native_window.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'native/android') diff --git a/native/android/native_window.cpp b/native/android/native_window.cpp index 8d42edb..2c0e88e 100644 --- a/native/android/native_window.cpp +++ b/native/android/native_window.cpp @@ -20,12 +20,20 @@ #include #include #include +#include #include using namespace android; ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface) { - sp win = android_Surface_getNativeWindow(env, surface); + sp win; + if (android_Surface_isInstanceOf(env, surface)) { + win = android_Surface_getNativeWindow(env, surface); + } else if (android_SurfaceTexture_isInstanceOf(env, surface)) { + win = android_SurfaceTexture_getNativeWindow(env, surface); + } else if (android_ParcelSurfaceTexture_isInstanceOf(env, surface)) { + win = android_ParcelSurfaceTexture_getNativeWindow(env, surface); + } if (win != NULL) { win->incStrong((void*)ANativeWindow_acquire); } -- cgit v1.1