diff --git a/api/current.txt b/api/current.txt index 79e5e82966f97..44df33319b71c 100644 --- a/api/current.txt +++ b/api/current.txt @@ -26889,6 +26889,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 2f832ab781e27..79d0cd74a2411 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -29189,6 +29189,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 fda981d6af21d..4b62e28b95530 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -26898,6 +26898,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 + ); + }