summaryrefslogtreecommitdiffstats
path: root/core/jni/android/graphics
diff options
context:
space:
mode:
authorJamie Gennis <jgennis@google.com>2012-04-05 11:34:02 -0700
committerJamie Gennis <jgennis@google.com>2012-04-05 16:11:43 -0700
commitc6d993077761fc737bbb0f4db44b961a4e7b6bbb (patch)
treed0211f91c3650c5195d146799479b67652c7d01b /core/jni/android/graphics
parent9828830611137bb751ab3512082a3bd31f439e38 (diff)
downloadframeworks_base-c6d993077761fc737bbb0f4db44b961a4e7b6bbb.zip
frameworks_base-c6d993077761fc737bbb0f4db44b961a4e7b6bbb.tar.gz
frameworks_base-c6d993077761fc737bbb0f4db44b961a4e7b6bbb.tar.bz2
SurfaceTexture: add GL context attach & detach
This change adds Java API support for detaching a SurfaceTexture from one GLES context and then attaching it to a different one. Change-Id: I8eed4b0d0e339c11598cb0408d9f4f2d99b3aa06
Diffstat (limited to 'core/jni/android/graphics')
-rw-r--r--core/jni/android/graphics/SurfaceTexture.cpp28
1 files changed, 21 insertions, 7 deletions
diff --git a/core/jni/android/graphics/SurfaceTexture.cpp b/core/jni/android/graphics/SurfaceTexture.cpp
index 3d350ed..244b166 100644
--- a/core/jni/android/graphics/SurfaceTexture.cpp
+++ b/core/jni/android/graphics/SurfaceTexture.cpp
@@ -218,6 +218,18 @@ static jint SurfaceTexture_updateTexImage(JNIEnv* env, jobject thiz)
return surfaceTexture->updateTexImage();
}
+static jint SurfaceTexture_detachFromGLContext(JNIEnv* env, jobject thiz)
+{
+ sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz));
+ return surfaceTexture->detachFromContext();
+}
+
+static jint SurfaceTexture_attachToGLContext(JNIEnv* env, jobject thiz, jint tex)
+{
+ sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz));
+ return surfaceTexture->attachToContext((GLuint)tex);
+}
+
static void SurfaceTexture_getTransformMatrix(JNIEnv* env, jobject thiz,
jfloatArray jmtx)
{
@@ -242,14 +254,16 @@ static void SurfaceTexture_release(JNIEnv* env, jobject thiz)
// ----------------------------------------------------------------------------
static JNINativeMethod gSurfaceTextureMethods[] = {
- {"nativeClassInit", "()V", (void*)SurfaceTexture_classInit },
- {"nativeInit", "(ILjava/lang/Object;Z)V", (void*)SurfaceTexture_init },
- {"nativeFinalize", "()V", (void*)SurfaceTexture_finalize },
+ {"nativeClassInit", "()V", (void*)SurfaceTexture_classInit },
+ {"nativeInit", "(ILjava/lang/Object;Z)V", (void*)SurfaceTexture_init },
+ {"nativeFinalize", "()V", (void*)SurfaceTexture_finalize },
{"nativeSetDefaultBufferSize", "(II)V", (void*)SurfaceTexture_setDefaultBufferSize },
- {"nativeUpdateTexImage", "()I", (void*)SurfaceTexture_updateTexImage },
- {"nativeGetTransformMatrix", "([F)V", (void*)SurfaceTexture_getTransformMatrix },
- {"nativeGetTimestamp", "()J", (void*)SurfaceTexture_getTimestamp },
- {"nativeRelease", "()V", (void*)SurfaceTexture_release },
+ {"nativeUpdateTexImage", "()I", (void*)SurfaceTexture_updateTexImage },
+ {"nativeDetachFromGLContext", "()I", (void*)SurfaceTexture_detachFromGLContext },
+ {"nativeAttachToGLContext", "(I)I", (void*)SurfaceTexture_attachToGLContext },
+ {"nativeGetTransformMatrix", "([F)V", (void*)SurfaceTexture_getTransformMatrix },
+ {"nativeGetTimestamp", "()J", (void*)SurfaceTexture_getTimestamp },
+ {"nativeRelease", "()V", (void*)SurfaceTexture_release },
};
int register_android_graphics_SurfaceTexture(JNIEnv* env)