diff options
author | Glenn Kasten <gkasten@google.com> | 2011-03-04 11:44:32 -0800 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2011-03-04 16:39:29 -0800 |
commit | 846db33313aa0899fa7928256c6734964bd92520 (patch) | |
tree | 0303f6c1c11c297dd7f40f7c0725a3cfa0f14791 /native | |
parent | 91ac3dc06d1b99c5e63cda3b5ae0adfec406fd7a (diff) | |
download | frameworks_base-846db33313aa0899fa7928256c6734964bd92520.zip frameworks_base-846db33313aa0899fa7928256c6734964bd92520.tar.gz frameworks_base-846db33313aa0899fa7928256c6734964bd92520.tar.bz2 |
Bug 3515073 Add ANativeWindow_fromSurfaceTexture
This is similar to ANativeWindow_fromSurface.
Change-Id: Iaadc06a5d0d50685c34876aa89488c16e7cfaa65
Diffstat (limited to 'native')
-rw-r--r-- | native/android/native_window.cpp | 9 | ||||
-rw-r--r-- | native/include/android/native_window_jni.h | 8 |
2 files changed, 17 insertions, 0 deletions
diff --git a/native/android/native_window.cpp b/native/android/native_window.cpp index 7f92eec..219cd196 100644 --- a/native/android/native_window.cpp +++ b/native/android/native_window.cpp @@ -20,6 +20,7 @@ #include <android/native_window_jni.h> #include <surfaceflinger/Surface.h> #include <android_runtime/android_view_Surface.h> +#include <android_runtime/android_graphics_SurfaceTexture.h> using namespace android; @@ -31,6 +32,14 @@ ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface) { return win.get(); } +ANativeWindow* ANativeWindow_fromSurfaceTexture(JNIEnv* env, jobject surfaceTexture) { + sp<ANativeWindow> win = android_SurfaceTexture_getNativeWindow(env, surfaceTexture); + if (win != NULL) { + win->incStrong((void*)ANativeWindow_acquire); + } + return win.get(); +} + void ANativeWindow_acquire(ANativeWindow* window) { window->incStrong((void*)ANativeWindow_acquire); } diff --git a/native/include/android/native_window_jni.h b/native/include/android/native_window_jni.h index b9e72ef..408c263 100644 --- a/native/include/android/native_window_jni.h +++ b/native/include/android/native_window_jni.h @@ -33,6 +33,14 @@ extern "C" { */ ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface); +/** + * Return the ANativeWindow associated with a Java SurfaceTexture object, + * for interacting with it through native code. This acquires a reference + * on the ANativeWindow that is returned; be sure to use ANativeWindow_release() + * when done with it so that it doesn't leak. + */ +ANativeWindow* ANativeWindow_fromSurfaceTexture(JNIEnv* env, jobject surfaceTexture); + #ifdef __cplusplus }; #endif |