diff --git a/api/current.txt b/api/current.txt index 9d16056fe7e47..5eaae3d5c45fd 100644 --- a/api/current.txt +++ b/api/current.txt @@ -26893,6 +26893,7 @@ package android.opengl { method public static void glProgramBinary(int, int, java.nio.Buffer, int); method public static void glProgramParameteri(int, int, int); method public static void glReadBuffer(int); + method public static void glReadPixels(int, int, int, int, int, int, int); method public static void glRenderbufferStorageMultisample(int, int, int, int, int); method public static void glResumeTransformFeedback(); method public static void glSamplerParameterf(int, int, float); diff --git a/api/system-current.txt b/api/system-current.txt index b43a736267efa..812b2cacf492f 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -29193,6 +29193,7 @@ package android.opengl { method public static void glProgramBinary(int, int, java.nio.Buffer, int); method public static void glProgramParameteri(int, int, int); method public static void glReadBuffer(int); + method public static void glReadPixels(int, int, int, int, int, int, int); method public static void glRenderbufferStorageMultisample(int, int, int, int, int); method public static void glResumeTransformFeedback(); method public static void glSamplerParameterf(int, int, float); diff --git a/api/test-current.txt b/api/test-current.txt index 114896fb27e49..3f25569bb39b2 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -26902,6 +26902,7 @@ package android.opengl { method public static void glProgramBinary(int, int, java.nio.Buffer, int); method public static void glProgramParameteri(int, int, int); method public static void glReadBuffer(int); + method public static void glReadPixels(int, int, int, int, int, int, int); method public static void glRenderbufferStorageMultisample(int, int, int, int, int); method public static void glResumeTransformFeedback(); method public static void glSamplerParameterf(int, int, float); diff --git a/core/jni/android_opengl_GLES30.cpp b/core/jni/android_opengl_GLES30.cpp index c9b5af74183fb..2d69eaa516c34 100644 --- a/core/jni/android_opengl_GLES30.cpp +++ b/core/jni/android_opengl_GLES30.cpp @@ -5155,6 +5155,21 @@ android_glGetInternalformativ__IIIILjava_nio_IntBuffer_2 } } +/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint offset ) */ +static void +android_glReadPixels__IIIIIII + (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jint offset) { + glReadPixels( + (GLint)x, + (GLint)y, + (GLsizei)width, + (GLsizei)height, + (GLenum)format, + (GLenum)type, + reinterpret_cast(offset) + ); +} + static const char *classPathName = "android/opengl/GLES30"; static const JNINativeMethod methods[] = { @@ -5320,6 +5335,7 @@ static const JNINativeMethod methods[] = { {"glTexStorage3D", "(IIIIII)V", (void *) android_glTexStorage3D__IIIIII }, {"glGetInternalformativ", "(IIII[II)V", (void *) android_glGetInternalformativ__IIII_3II }, {"glGetInternalformativ", "(IIIILjava/nio/IntBuffer;)V", (void *) android_glGetInternalformativ__IIIILjava_nio_IntBuffer_2 }, +{"glReadPixels", "(IIIIIII)V", (void *) android_glReadPixels__IIIIIII }, }; int register_android_opengl_jni_GLES30(JNIEnv *_env) diff --git a/opengl/java/android/opengl/GLES30.java b/opengl/java/android/opengl/GLES30.java index 342ffa41993ee..9c3b505e32701 100644 --- a/opengl/java/android/opengl/GLES30.java +++ b/opengl/java/android/opengl/GLES30.java @@ -1791,4 +1791,16 @@ public class GLES30 extends GLES20 { java.nio.IntBuffer params ); + // C function void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint offset ) + + public static native void glReadPixels( + int x, + int y, + int width, + int height, + int format, + int type, + int offset + ); + }