Loading api/current.xml +13 −0 Original line number Diff line number Diff line Loading @@ -86209,6 +86209,19 @@ <parameter name="texName" type="int"> </parameter> </constructor> <method name="getTransformMatrix" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mtx" type="float[]"> </parameter> </method> <method name="setOnFrameAvailableListener" return="void" abstract="false" core/jni/android/graphics/SurfaceTexture.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,15 @@ static void SurfaceTexture_updateTexImage(JNIEnv* env, jobject clazz) surfaceTexture->updateTexImage(); } static void SurfaceTexture_getTransformMatrix(JNIEnv* env, jobject clazz, jfloatArray jmtx) { sp<SurfaceTexture> surfaceTexture(getSurfaceTexture(env, clazz)); float* mtx = env->GetFloatArrayElements(jmtx, NULL); surfaceTexture->getTransformMatrix(mtx); env->ReleaseFloatArrayElements(jmtx, mtx, 0); } // ---------------------------------------------------------------------------- const char* const kSurfaceTextureClassPathName = "android/graphics/SurfaceTexture"; Loading @@ -91,6 +100,7 @@ static JNINativeMethod gSurfaceTextureMethods[] = { {"nativeClassInit", "()V", (void*)nativeClassInit }, {"init", "(I)V", (void*)SurfaceTexture_init }, {"updateTexImage", "()V", (void*)SurfaceTexture_updateTexImage }, {"getTransformMatrixImpl", "([F)V", (void*)SurfaceTexture_getTransformMatrix }, }; static void nativeClassInit(JNIEnv* env, jclass clazz) Loading graphics/java/android/graphics/SurfaceTexture.java +25 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,31 @@ public class SurfaceTexture { */ public native void updateTexImage(); /** * Retrieve the 4x4 texture coordinate transform matrix associated with the texture image set by * the most recent call to updateTexImage. * * This transform matrix maps 2D homogeneous texture coordinates of the form (s, t, 0, 1) with s * and t in the inclusive range [0, 1] to the texture coordinate that should be used to sample * that location from the texture. Sampling the texture outside of the range of this transform * is undefined. * * The matrix is stored in column-major order so that it may be passed directly to OpenGL ES via * the glLoadMatrixf or glUniformMatrix4fv functions. * * @param mtx the array into which the 4x4 matrix will be stored. The array must have exactly * 16 elements. */ public void getTransformMatrix(float[] mtx) { if (mtx.length != 16) { throw new IllegalArgumentException(); } getTransformMatrixImpl(mtx); } private native void getTransformMatrixImpl(float[] mtx); private native void init(int texName); /* Loading Loading
api/current.xml +13 −0 Original line number Diff line number Diff line Loading @@ -86209,6 +86209,19 @@ <parameter name="texName" type="int"> </parameter> </constructor> <method name="getTransformMatrix" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="mtx" type="float[]"> </parameter> </method> <method name="setOnFrameAvailableListener" return="void" abstract="false"
core/jni/android/graphics/SurfaceTexture.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,15 @@ static void SurfaceTexture_updateTexImage(JNIEnv* env, jobject clazz) surfaceTexture->updateTexImage(); } static void SurfaceTexture_getTransformMatrix(JNIEnv* env, jobject clazz, jfloatArray jmtx) { sp<SurfaceTexture> surfaceTexture(getSurfaceTexture(env, clazz)); float* mtx = env->GetFloatArrayElements(jmtx, NULL); surfaceTexture->getTransformMatrix(mtx); env->ReleaseFloatArrayElements(jmtx, mtx, 0); } // ---------------------------------------------------------------------------- const char* const kSurfaceTextureClassPathName = "android/graphics/SurfaceTexture"; Loading @@ -91,6 +100,7 @@ static JNINativeMethod gSurfaceTextureMethods[] = { {"nativeClassInit", "()V", (void*)nativeClassInit }, {"init", "(I)V", (void*)SurfaceTexture_init }, {"updateTexImage", "()V", (void*)SurfaceTexture_updateTexImage }, {"getTransformMatrixImpl", "([F)V", (void*)SurfaceTexture_getTransformMatrix }, }; static void nativeClassInit(JNIEnv* env, jclass clazz) Loading
graphics/java/android/graphics/SurfaceTexture.java +25 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,31 @@ public class SurfaceTexture { */ public native void updateTexImage(); /** * Retrieve the 4x4 texture coordinate transform matrix associated with the texture image set by * the most recent call to updateTexImage. * * This transform matrix maps 2D homogeneous texture coordinates of the form (s, t, 0, 1) with s * and t in the inclusive range [0, 1] to the texture coordinate that should be used to sample * that location from the texture. Sampling the texture outside of the range of this transform * is undefined. * * The matrix is stored in column-major order so that it may be passed directly to OpenGL ES via * the glLoadMatrixf or glUniformMatrix4fv functions. * * @param mtx the array into which the 4x4 matrix will be stored. The array must have exactly * 16 elements. */ public void getTransformMatrix(float[] mtx) { if (mtx.length != 16) { throw new IllegalArgumentException(); } getTransformMatrixImpl(mtx); } private native void getTransformMatrixImpl(float[] mtx); private native void init(int texName); /* Loading