diff options
author | Pablo Ceballos <pceballos@google.com> | 2016-02-22 11:50:31 -0800 |
---|---|---|
committer | Pablo Ceballos <pceballos@google.com> | 2016-02-22 11:50:31 -0800 |
commit | 68981ff03b2c166800ddc82973a2aa95269a343b (patch) | |
tree | c39d1cfbe15b949d03fa9420f2b70a6d54bd6058 | |
parent | de1eaab7f71a7bafd46e67fad2d591743061b5b8 (diff) |
Add glReadPixels with buffer-offset argument
- For reading into PBOs on GLES3, add an overloaded version of
glReadPixels that takes an offset argument.
Bug 18878609
Change-Id: I744483deab6358a66b0dc5e87be1ae2b96560ac1
-rw-r--r-- | api/current.txt | 1 | ||||
-rw-r--r-- | api/system-current.txt | 1 | ||||
-rw-r--r-- | api/test-current.txt | 1 | ||||
-rw-r--r-- | core/jni/android_opengl_GLES30.cpp | 16 | ||||
-rw-r--r-- | opengl/java/android/opengl/GLES30.java | 12 |
5 files changed, 31 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt index abc9e9a2b163..60b28af5faa1 100644 --- a/api/current.txt +++ b/api/current.txt @@ -26851,6 +26851,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 b36d7e89cb8d..5feb8ac2767c 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -29143,6 +29143,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 3878fbf25e31..2ebf8f876beb 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -26860,6 +26860,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 c9b5af74183f..2d69eaa516c3 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<GLvoid *>(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 342ffa41993e..9c3b505e3270 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 + ); + } |