diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-12-08 20:13:44 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-12-08 20:13:44 -0800 |
commit | 5c47265a704cb0cc081b79e191442f99014726b0 (patch) | |
tree | b162ef47569b58713fd90ac0a6ad4e7402b02a3e /opengl/tools/glgen/stubs/gles11/GLES11ExtcHeader.cpp | |
parent | 7279fb9aee1abae405384e2c4331b7d9fec28294 (diff) | |
parent | be6eac828f5af8b608c3fa6749330f1dcd6b6206 (diff) | |
download | frameworks_base-5c47265a704cb0cc081b79e191442f99014726b0.zip frameworks_base-5c47265a704cb0cc081b79e191442f99014726b0.tar.gz frameworks_base-5c47265a704cb0cc081b79e191442f99014726b0.tar.bz2 |
Merge change Ibe6eac82
* changes:
Implement Matrix Palette extension.
Diffstat (limited to 'opengl/tools/glgen/stubs/gles11/GLES11ExtcHeader.cpp')
-rw-r--r-- | opengl/tools/glgen/stubs/gles11/GLES11ExtcHeader.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/opengl/tools/glgen/stubs/gles11/GLES11ExtcHeader.cpp b/opengl/tools/glgen/stubs/gles11/GLES11ExtcHeader.cpp index 294d1ce..2548b32 100644 --- a/opengl/tools/glgen/stubs/gles11/GLES11ExtcHeader.cpp +++ b/opengl/tools/glgen/stubs/gles11/GLES11ExtcHeader.cpp @@ -23,6 +23,15 @@ #include <GLES/gl.h> #include <GLES/glext.h> +/* special calls implemented in Android's GLES wrapper used to more + * efficiently bound-check passed arrays */ +extern "C" { +GL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type, GLsizei stride, + const GLvoid *ptr, GLsizei count); +GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type, GLsizei stride, + const GLvoid *ptr, GLsizei count); +} + static int initialized = 0; static jclass nioAccessClass; @@ -121,5 +130,17 @@ releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) commit ? 0 : JNI_ABORT); } +static void * +getDirectBufferPointer(JNIEnv *_env, jobject buffer) { + char* buf = (char*) _env->GetDirectBufferAddress(buffer); + if (buf) { + jint position = _env->GetIntField(buffer, positionID); + jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); + buf += position << elementSizeShift; + } else { + _env->ThrowNew(IAEClass, "Must use a native order direct Buffer"); + } + return (void*) buf; +} // -------------------------------------------------------------------------- |