diff options
Diffstat (limited to 'core/jni/android_opengl_GLES20.cpp')
-rw-r--r-- | core/jni/android_opengl_GLES20.cpp | 811 |
1 files changed, 465 insertions, 346 deletions
diff --git a/core/jni/android_opengl_GLES20.cpp b/core/jni/android_opengl_GLES20.cpp index cd0c135..f9a0dfe 100644 --- a/core/jni/android_opengl_GLES20.cpp +++ b/core/jni/android_opengl_GLES20.cpp @@ -126,6 +126,116 @@ getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *o return NULL; } +class ByteArrayGetter { +public: + static void* Get(JNIEnv* _env, jbyteArray array, jboolean* is_copy) { + return _env->GetByteArrayElements(array, is_copy); + } +}; +class BooleanArrayGetter { +public: + static void* Get(JNIEnv* _env, jbooleanArray array, jboolean* is_copy) { + return _env->GetBooleanArrayElements(array, is_copy); + } +}; +class CharArrayGetter { +public: + static void* Get(JNIEnv* _env, jcharArray array, jboolean* is_copy) { + return _env->GetCharArrayElements(array, is_copy); + } +}; +class ShortArrayGetter { +public: + static void* Get(JNIEnv* _env, jshortArray array, jboolean* is_copy) { + return _env->GetShortArrayElements(array, is_copy); + } +}; +class IntArrayGetter { +public: + static void* Get(JNIEnv* _env, jintArray array, jboolean* is_copy) { + return _env->GetIntArrayElements(array, is_copy); + } +}; +class LongArrayGetter { +public: + static void* Get(JNIEnv* _env, jlongArray array, jboolean* is_copy) { + return _env->GetLongArrayElements(array, is_copy); + } +}; +class FloatArrayGetter { +public: + static void* Get(JNIEnv* _env, jfloatArray array, jboolean* is_copy) { + return _env->GetFloatArrayElements(array, is_copy); + } +}; +class DoubleArrayGetter { +public: + static void* Get(JNIEnv* _env, jdoubleArray array, jboolean* is_copy) { + return _env->GetDoubleArrayElements(array, is_copy); + } +}; + +template<typename JTYPEARRAY, typename ARRAYGETTER> +static void* +getArrayPointer(JNIEnv *_env, JTYPEARRAY array, jboolean* is_copy) { + return ARRAYGETTER::Get(_env, array, is_copy); +} + +class ByteArrayReleaser { +public: + static void Release(JNIEnv* _env, jbyteArray array, jbyte* data, jboolean commit) { + _env->ReleaseByteArrayElements(array, data, commit ? 0 : JNI_ABORT); + } +}; +class BooleanArrayReleaser { +public: + static void Release(JNIEnv* _env, jbooleanArray array, jboolean* data, jboolean commit) { + _env->ReleaseBooleanArrayElements(array, data, commit ? 0 : JNI_ABORT); + } +}; +class CharArrayReleaser { +public: + static void Release(JNIEnv* _env, jcharArray array, jchar* data, jboolean commit) { + _env->ReleaseCharArrayElements(array, data, commit ? 0 : JNI_ABORT); + } +}; +class ShortArrayReleaser { +public: + static void Release(JNIEnv* _env, jshortArray array, jshort* data, jboolean commit) { + _env->ReleaseShortArrayElements(array, data, commit ? 0 : JNI_ABORT); + } +}; +class IntArrayReleaser { +public: + static void Release(JNIEnv* _env, jintArray array, jint* data, jboolean commit) { + _env->ReleaseIntArrayElements(array, data, commit ? 0 : JNI_ABORT); + } +}; +class LongArrayReleaser { +public: + static void Release(JNIEnv* _env, jlongArray array, jlong* data, jboolean commit) { + _env->ReleaseLongArrayElements(array, data, commit ? 0 : JNI_ABORT); + } +}; +class FloatArrayReleaser { +public: + static void Release(JNIEnv* _env, jfloatArray array, jfloat* data, jboolean commit) { + _env->ReleaseFloatArrayElements(array, data, commit ? 0 : JNI_ABORT); + } +}; +class DoubleArrayReleaser { +public: + static void Release(JNIEnv* _env, jdoubleArray array, jdouble* data, jboolean commit) { + _env->ReleaseDoubleArrayElements(array, data, commit ? 0 : JNI_ABORT); + } +}; + +template<typename JTYPEARRAY, typename NTYPEARRAY, typename ARRAYRELEASER> +static void +releaseArrayPointer(JNIEnv *_env, JTYPEARRAY array, NTYPEARRAY data, jboolean commit) { + ARRAYRELEASER::Release(_env, array, data, commit); +} + static void releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) { @@ -229,7 +339,8 @@ static int getNeededCount(GLint pname) { return needed; } -template <typename JTYPEARRAY, typename CTYPE, void GET(GLenum, CTYPE*)> +template <typename JTYPEARRAY, typename ARRAYGETTER, typename NTYPEARRAY, + typename ARRAYRELEASER, typename CTYPE, void GET(GLenum, CTYPE*)> static void get (JNIEnv *_env, jobject _this, jint pname, JTYPEARRAY params_ref, jint offset) { @@ -264,8 +375,8 @@ get _exceptionMessage = "length - offset < needed"; goto exit; } - params_base = (CTYPE *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + params_base = (CTYPE *) getArrayPointer<JTYPEARRAY, ARRAYGETTER>( + _env, params_ref, (jboolean *)0); params = params_base + offset; GET( @@ -275,8 +386,8 @@ get exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, - _exception ? JNI_ABORT: 0); + releaseArrayPointer<JTYPEARRAY, NTYPEARRAY, ARRAYRELEASER>( + _env, params_ref, params_base, !_exception); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -284,20 +395,21 @@ exit: } -template <typename CTYPE, void GET(GLenum, CTYPE*)> +template <typename CTYPE, typename JTYPEARRAY, typename ARRAYGETTER, typename NTYPEARRAY, + typename ARRAYRELEASER, void GET(GLenum, CTYPE*)> static void getarray (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { jint _exception = 0; const char * _exceptionType; const char * _exceptionMessage; - jarray _array = (jarray) 0; + JTYPEARRAY _array = (JTYPEARRAY) 0; jint _bufferOffset = (jint) 0; jint _remaining; CTYPE *params = (CTYPE *) 0; int _needed = 0; - params = (CTYPE *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (CTYPE *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); _remaining /= sizeof(CTYPE); // convert from bytes to item count _needed = getNeededCount(pname); // if we didn't find this pname, we just assume the user passed @@ -310,7 +422,8 @@ getarray goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *) getArrayPointer<JTYPEARRAY, ARRAYGETTER>( + _env, _array, (jboolean *) 0); params = (CTYPE *) (_paramsBase + _bufferOffset); } GET( @@ -320,7 +433,8 @@ getarray exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + releaseArrayPointer<JTYPEARRAY, NTYPEARRAY, ARRAYRELEASER>( + _env, _array, (NTYPEARRAY)params, _exception ? JNI_FALSE : JNI_TRUE); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -486,7 +600,7 @@ android_glBufferData__IILjava_nio_Buffer_2I GLvoid *data = (GLvoid *) 0; if (data_buf) { - data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); + data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < size) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -526,7 +640,7 @@ android_glBufferSubData__IIILjava_nio_Buffer_2 jint _remaining; GLvoid *data = (GLvoid *) 0; - data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); + data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < size) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -633,7 +747,7 @@ android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 jint _remaining; GLvoid *data = (GLvoid *) 0; - data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); + data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); data = (GLvoid *) (_dataBase + _bufferOffset); @@ -662,7 +776,7 @@ android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 jint _remaining; GLvoid *data = (GLvoid *) 0; - data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); + data = (GLvoid *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); data = (GLvoid *) (_dataBase + _bufferOffset); @@ -775,7 +889,7 @@ android_glDeleteBuffers__I_3II goto exit; } buffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); + _env->GetIntArrayElements(buffers_ref, (jboolean *)0); buffers = buffers_base + offset; glDeleteBuffers( @@ -785,7 +899,7 @@ android_glDeleteBuffers__I_3II exit: if (buffers_base) { - _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, + _env->ReleaseIntArrayElements(buffers_ref, (jint*)buffers_base, JNI_ABORT); } if (_exception) { @@ -800,12 +914,12 @@ android_glDeleteBuffers__ILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *buffers = (GLuint *) 0; - buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset); + buffers = (GLuint *)getPointer(_env, buffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -813,7 +927,7 @@ android_glDeleteBuffers__ILjava_nio_IntBuffer_2 goto exit; } if (buffers == NULL) { - char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _buffersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); buffers = (GLuint *) (_buffersBase + _bufferOffset); } glDeleteBuffers( @@ -823,7 +937,7 @@ android_glDeleteBuffers__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, buffers, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)buffers, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -861,7 +975,7 @@ android_glDeleteFramebuffers__I_3II goto exit; } framebuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(framebuffers_ref, (jboolean *)0); framebuffers = framebuffers_base + offset; glDeleteFramebuffers( @@ -871,7 +985,7 @@ android_glDeleteFramebuffers__I_3II exit: if (framebuffers_base) { - _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base, + _env->ReleaseIntArrayElements(framebuffers_ref, (jint*)framebuffers_base, JNI_ABORT); } if (_exception) { @@ -886,12 +1000,12 @@ android_glDeleteFramebuffers__ILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *framebuffers = (GLuint *) 0; - framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining, &_bufferOffset); + framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -899,7 +1013,7 @@ android_glDeleteFramebuffers__ILjava_nio_IntBuffer_2 goto exit; } if (framebuffers == NULL) { - char * _framebuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _framebuffersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset); } glDeleteFramebuffers( @@ -909,7 +1023,7 @@ android_glDeleteFramebuffers__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, framebuffers, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)framebuffers, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -956,7 +1070,7 @@ android_glDeleteRenderbuffers__I_3II goto exit; } renderbuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(renderbuffers_ref, (jboolean *)0); renderbuffers = renderbuffers_base + offset; glDeleteRenderbuffers( @@ -966,7 +1080,7 @@ android_glDeleteRenderbuffers__I_3II exit: if (renderbuffers_base) { - _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base, + _env->ReleaseIntArrayElements(renderbuffers_ref, (jint*)renderbuffers_base, JNI_ABORT); } if (_exception) { @@ -981,12 +1095,12 @@ android_glDeleteRenderbuffers__ILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *renderbuffers = (GLuint *) 0; - renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining, &_bufferOffset); + renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -994,7 +1108,7 @@ android_glDeleteRenderbuffers__ILjava_nio_IntBuffer_2 goto exit; } if (renderbuffers == NULL) { - char * _renderbuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _renderbuffersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset); } glDeleteRenderbuffers( @@ -1004,7 +1118,7 @@ android_glDeleteRenderbuffers__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, renderbuffers, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)renderbuffers, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -1051,7 +1165,7 @@ android_glDeleteTextures__I_3II goto exit; } textures_base = (GLuint *) - _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); + _env->GetIntArrayElements(textures_ref, (jboolean *)0); textures = textures_base + offset; glDeleteTextures( @@ -1061,7 +1175,7 @@ android_glDeleteTextures__I_3II exit: if (textures_base) { - _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, + _env->ReleaseIntArrayElements(textures_ref, (jint*)textures_base, JNI_ABORT); } if (_exception) { @@ -1076,12 +1190,12 @@ android_glDeleteTextures__ILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *textures = (GLuint *) 0; - textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); + textures = (GLuint *)getPointer(_env, textures_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -1089,7 +1203,7 @@ android_glDeleteTextures__ILjava_nio_IntBuffer_2 goto exit; } if (textures == NULL) { - char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _texturesBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); textures = (GLuint *) (_texturesBase + _bufferOffset); } glDeleteTextures( @@ -1099,7 +1213,7 @@ android_glDeleteTextures__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, textures, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)textures, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -1203,7 +1317,7 @@ android_glDrawElements__IIILjava_nio_Buffer_2 jint _remaining; GLvoid *indices = (GLvoid *) 0; - indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset); + indices = (GLvoid *)getPointer(_env, indices_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count) { _exception = 1; _exceptionType = "java/lang/ArrayIndexOutOfBoundsException"; @@ -1327,7 +1441,7 @@ android_glGenBuffers__I_3II goto exit; } buffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); + _env->GetIntArrayElements(buffers_ref, (jboolean *)0); buffers = buffers_base + offset; glGenBuffers( @@ -1337,7 +1451,7 @@ android_glGenBuffers__I_3II exit: if (buffers_base) { - _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, + _env->ReleaseIntArrayElements(buffers_ref, (jint*)buffers_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1352,12 +1466,12 @@ android_glGenBuffers__ILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *buffers = (GLuint *) 0; - buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset); + buffers = (GLuint *)getPointer(_env, buffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -1365,7 +1479,7 @@ android_glGenBuffers__ILjava_nio_IntBuffer_2 goto exit; } if (buffers == NULL) { - char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _buffersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); buffers = (GLuint *) (_buffersBase + _bufferOffset); } glGenBuffers( @@ -1375,7 +1489,7 @@ android_glGenBuffers__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)buffers, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -1422,7 +1536,7 @@ android_glGenFramebuffers__I_3II goto exit; } framebuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(framebuffers_ref, (jboolean *)0); framebuffers = framebuffers_base + offset; glGenFramebuffers( @@ -1432,7 +1546,7 @@ android_glGenFramebuffers__I_3II exit: if (framebuffers_base) { - _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base, + _env->ReleaseIntArrayElements(framebuffers_ref, (jint*)framebuffers_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1447,12 +1561,12 @@ android_glGenFramebuffers__ILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *framebuffers = (GLuint *) 0; - framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining, &_bufferOffset); + framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -1460,7 +1574,7 @@ android_glGenFramebuffers__ILjava_nio_IntBuffer_2 goto exit; } if (framebuffers == NULL) { - char * _framebuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _framebuffersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset); } glGenFramebuffers( @@ -1470,7 +1584,7 @@ android_glGenFramebuffers__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, framebuffers, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)framebuffers, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -1508,7 +1622,7 @@ android_glGenRenderbuffers__I_3II goto exit; } renderbuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(renderbuffers_ref, (jboolean *)0); renderbuffers = renderbuffers_base + offset; glGenRenderbuffers( @@ -1518,7 +1632,7 @@ android_glGenRenderbuffers__I_3II exit: if (renderbuffers_base) { - _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base, + _env->ReleaseIntArrayElements(renderbuffers_ref, (jint*)renderbuffers_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1533,12 +1647,12 @@ android_glGenRenderbuffers__ILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *renderbuffers = (GLuint *) 0; - renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining, &_bufferOffset); + renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -1546,7 +1660,7 @@ android_glGenRenderbuffers__ILjava_nio_IntBuffer_2 goto exit; } if (renderbuffers == NULL) { - char * _renderbuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _renderbuffersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset); } glGenRenderbuffers( @@ -1556,7 +1670,7 @@ android_glGenRenderbuffers__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, renderbuffers, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)renderbuffers, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -1594,7 +1708,7 @@ android_glGenTextures__I_3II goto exit; } textures_base = (GLuint *) - _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); + _env->GetIntArrayElements(textures_ref, (jboolean *)0); textures = textures_base + offset; glGenTextures( @@ -1604,7 +1718,7 @@ android_glGenTextures__I_3II exit: if (textures_base) { - _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, + _env->ReleaseIntArrayElements(textures_ref, (jint*)textures_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1619,12 +1733,12 @@ android_glGenTextures__ILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *textures = (GLuint *) 0; - textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); + textures = (GLuint *)getPointer(_env, textures_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < n) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -1632,7 +1746,7 @@ android_glGenTextures__ILjava_nio_IntBuffer_2 goto exit; } if (textures == NULL) { - char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _texturesBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); textures = (GLuint *) (_texturesBase + _bufferOffset); } glGenTextures( @@ -1642,7 +1756,7 @@ android_glGenTextures__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)textures, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -1683,7 +1797,7 @@ android_glGetActiveAttrib__III_3II_3II_3II_3BI } _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; length_base = (GLsizei *) - _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0); + _env->GetIntArrayElements(length_ref, (jboolean *)0); length = length_base + lengthOffset; if (!size_ref) { @@ -1700,7 +1814,7 @@ android_glGetActiveAttrib__III_3II_3II_3II_3BI } _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; size_base = (GLint *) - _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); + _env->GetIntArrayElements(size_ref, (jboolean *)0); size = size_base + sizeOffset; if (!type_ref) { @@ -1717,7 +1831,7 @@ android_glGetActiveAttrib__III_3II_3II_3II_3BI } _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; type_base = (GLenum *) - _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); + _env->GetIntArrayElements(type_ref, (jboolean *)0); type = type_base + typeOffset; if (!name_ref) { @@ -1734,7 +1848,7 @@ android_glGetActiveAttrib__III_3II_3II_3II_3BI } _nameRemaining = _env->GetArrayLength(name_ref) - nameOffset; name_base = (char *) - _env->GetPrimitiveArrayCritical(name_ref, (jboolean *)0); + _env->GetByteArrayElements(name_ref, (jboolean *)0); name = name_base + nameOffset; glGetActiveAttrib( @@ -1749,19 +1863,19 @@ android_glGetActiveAttrib__III_3II_3II_3II_3BI exit: if (name_base) { - _env->ReleasePrimitiveArrayCritical(name_ref, name_base, + _env->ReleaseByteArrayElements(name_ref, (jbyte*)name_base, _exception ? JNI_ABORT: 0); } if (type_base) { - _env->ReleasePrimitiveArrayCritical(type_ref, type_base, + _env->ReleaseIntArrayElements(type_ref, (jint*)type_base, _exception ? JNI_ABORT: 0); } if (size_base) { - _env->ReleasePrimitiveArrayCritical(size_ref, size_base, + _env->ReleaseIntArrayElements(size_ref, (jint*)size_base, _exception ? JNI_ABORT: 0); } if (length_base) { - _env->ReleasePrimitiveArrayCritical(length_ref, length_base, + _env->ReleaseIntArrayElements(length_ref, (jint*)length_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1773,11 +1887,11 @@ exit: static void android_glGetActiveAttrib__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jbyte name) { - jarray _lengthArray = (jarray) 0; + jintArray _lengthArray = (jintArray) 0; jint _lengthBufferOffset = (jint) 0; - jarray _sizeArray = (jarray) 0; + jintArray _sizeArray = (jintArray) 0; jint _sizeBufferOffset = (jint) 0; - jarray _typeArray = (jarray) 0; + jintArray _typeArray = (jintArray) 0; jint _typeBufferOffset = (jint) 0; jint _lengthRemaining; GLsizei *length = (GLsizei *) 0; @@ -1786,19 +1900,19 @@ android_glGetActiveAttrib__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_ni jint _typeRemaining; GLenum *type = (GLenum *) 0; - length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset); - size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); - type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); + length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset); + size = (GLint *)getPointer(_env, size_buf, (jarray*)&_sizeArray, &_sizeRemaining, &_sizeBufferOffset); + type = (GLenum *)getPointer(_env, type_buf, (jarray*)&_typeArray, &_typeRemaining, &_typeBufferOffset); if (length == NULL) { - char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean *) 0); + char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0); length = (GLsizei *) (_lengthBase + _lengthBufferOffset); } if (size == NULL) { - char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); + char * _sizeBase = (char *)_env->GetIntArrayElements(_sizeArray, (jboolean *) 0); size = (GLint *) (_sizeBase + _sizeBufferOffset); } if (type == NULL) { - char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); + char * _typeBase = (char *)_env->GetIntArrayElements(_typeArray, (jboolean *) 0); type = (GLenum *) (_typeBase + _typeBufferOffset); } glGetActiveAttrib( @@ -1811,13 +1925,13 @@ android_glGetActiveAttrib__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_ni reinterpret_cast<char *>(name) ); if (_typeArray) { - releasePointer(_env, _typeArray, type, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _typeArray, (jint*)type, JNI_TRUE); } if (_sizeArray) { - releasePointer(_env, _sizeArray, size, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _sizeArray, (jint*)size, JNI_TRUE); } if (_lengthArray) { - releasePointer(_env, _lengthArray, length, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _lengthArray, (jint*)length, JNI_TRUE); } } @@ -1862,7 +1976,7 @@ android_glGetActiveAttrib1 } _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; size_base = (GLint *) - _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); + _env->GetIntArrayElements(size_ref, (jboolean *)0); size = size_base + sizeOffset; if (!type_ref) { @@ -1879,7 +1993,7 @@ android_glGetActiveAttrib1 } _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; type_base = (GLenum *) - _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); + _env->GetIntArrayElements(type_ref, (jboolean *)0); type = type_base + typeOffset; glGetActiveAttrib( @@ -1893,11 +2007,11 @@ android_glGetActiveAttrib1 ); exit: if (type_base) { - _env->ReleasePrimitiveArrayCritical(type_ref, type_base, + _env->ReleaseIntArrayElements(type_ref, (jint*)type_base, _exception ? JNI_ABORT: 0); } if (size_base) { - _env->ReleasePrimitiveArrayCritical(size_ref, size_base, + _env->ReleaseIntArrayElements(size_ref, (jint*)size_base, _exception ? JNI_ABORT: 0); } if (_exception != 1) { @@ -1920,9 +2034,9 @@ exit: static jstring android_glGetActiveAttrib2 (JNIEnv *_env, jobject _this, jint program, jint index, jobject size_buf, jobject type_buf) { - jarray _sizeArray = (jarray) 0; + jintArray _sizeArray = (jintArray) 0; jint _sizeBufferOffset = (jint) 0; - jarray _typeArray = (jarray) 0; + jintArray _typeArray = (jintArray) 0; jint _typeBufferOffset = (jint) 0; jint _lengthRemaining; GLsizei *length = (GLsizei *) 0; @@ -1945,14 +2059,14 @@ android_glGetActiveAttrib2 return NULL; } - size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); - type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); + size = (GLint *)getPointer(_env, size_buf, (jarray*)&_sizeArray, &_sizeRemaining, &_sizeBufferOffset); + type = (GLenum *)getPointer(_env, type_buf, (jarray*)&_typeArray, &_typeRemaining, &_typeBufferOffset); if (size == NULL) { - char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); + char * _sizeBase = (char *)_env->GetIntArrayElements(_sizeArray, (jboolean *) 0); size = (GLint *) (_sizeBase + _sizeBufferOffset); } if (type == NULL) { - char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); + char * _typeBase = (char *)_env->GetIntArrayElements(_typeArray, (jboolean *) 0); type = (GLenum *) (_typeBase + _typeBufferOffset); } glGetActiveAttrib( @@ -1966,10 +2080,10 @@ android_glGetActiveAttrib2 ); if (_typeArray) { - releasePointer(_env, _typeArray, type, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _typeArray, (jint*)type, JNI_TRUE); } if (_sizeArray) { - releasePointer(_env, _sizeArray, size, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _sizeArray, (jint*)size, JNI_TRUE); } result = _env->NewStringUTF(buf); if (buf) { @@ -2011,7 +2125,7 @@ android_glGetActiveUniform__III_3II_3II_3II_3BI } _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; length_base = (GLsizei *) - _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0); + _env->GetIntArrayElements(length_ref, (jboolean *)0); length = length_base + lengthOffset; if (!size_ref) { @@ -2028,7 +2142,7 @@ android_glGetActiveUniform__III_3II_3II_3II_3BI } _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; size_base = (GLint *) - _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); + _env->GetIntArrayElements(size_ref, (jboolean *)0); size = size_base + sizeOffset; if (!type_ref) { @@ -2045,7 +2159,7 @@ android_glGetActiveUniform__III_3II_3II_3II_3BI } _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; type_base = (GLenum *) - _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); + _env->GetIntArrayElements(type_ref, (jboolean *)0); type = type_base + typeOffset; if (!name_ref) { @@ -2062,7 +2176,7 @@ android_glGetActiveUniform__III_3II_3II_3II_3BI } _nameRemaining = _env->GetArrayLength(name_ref) - nameOffset; name_base = (char *) - _env->GetPrimitiveArrayCritical(name_ref, (jboolean *)0); + _env->GetByteArrayElements(name_ref, (jboolean *)0); name = name_base + nameOffset; glGetActiveUniform( @@ -2077,19 +2191,19 @@ android_glGetActiveUniform__III_3II_3II_3II_3BI exit: if (name_base) { - _env->ReleasePrimitiveArrayCritical(name_ref, name_base, + _env->ReleaseByteArrayElements(name_ref, (jbyte*)name_base, _exception ? JNI_ABORT: 0); } if (type_base) { - _env->ReleasePrimitiveArrayCritical(type_ref, type_base, + _env->ReleaseIntArrayElements(type_ref, (jint*)type_base, _exception ? JNI_ABORT: 0); } if (size_base) { - _env->ReleasePrimitiveArrayCritical(size_ref, size_base, + _env->ReleaseIntArrayElements(size_ref, (jint*)size_base, _exception ? JNI_ABORT: 0); } if (length_base) { - _env->ReleasePrimitiveArrayCritical(length_ref, length_base, + _env->ReleaseIntArrayElements(length_ref, (jint*)length_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2101,11 +2215,11 @@ exit: static void android_glGetActiveUniform__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jbyte name) { - jarray _lengthArray = (jarray) 0; + jintArray _lengthArray = (jintArray) 0; jint _lengthBufferOffset = (jint) 0; - jarray _sizeArray = (jarray) 0; + jintArray _sizeArray = (jintArray) 0; jint _sizeBufferOffset = (jint) 0; - jarray _typeArray = (jarray) 0; + jintArray _typeArray = (jintArray) 0; jint _typeBufferOffset = (jint) 0; jint _lengthRemaining; GLsizei *length = (GLsizei *) 0; @@ -2114,19 +2228,19 @@ android_glGetActiveUniform__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_n jint _typeRemaining; GLenum *type = (GLenum *) 0; - length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset); - size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); - type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); + length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset); + size = (GLint *)getPointer(_env, size_buf, (jarray*)&_sizeArray, &_sizeRemaining, &_sizeBufferOffset); + type = (GLenum *)getPointer(_env, type_buf, (jarray*)&_typeArray, &_typeRemaining, &_typeBufferOffset); if (length == NULL) { - char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean *) 0); + char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0); length = (GLsizei *) (_lengthBase + _lengthBufferOffset); } if (size == NULL) { - char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); + char * _sizeBase = (char *)_env->GetIntArrayElements(_sizeArray, (jboolean *) 0); size = (GLint *) (_sizeBase + _sizeBufferOffset); } if (type == NULL) { - char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); + char * _typeBase = (char *)_env->GetIntArrayElements(_typeArray, (jboolean *) 0); type = (GLenum *) (_typeBase + _typeBufferOffset); } glGetActiveUniform( @@ -2139,13 +2253,13 @@ android_glGetActiveUniform__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_n reinterpret_cast<char *>(name) ); if (_typeArray) { - releasePointer(_env, _typeArray, type, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _typeArray, (jint*)type, JNI_TRUE); } if (_sizeArray) { - releasePointer(_env, _sizeArray, size, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _sizeArray, (jint*)size, JNI_TRUE); } if (_lengthArray) { - releasePointer(_env, _lengthArray, length, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _lengthArray, (jint*)length, JNI_TRUE); } } @@ -2193,7 +2307,7 @@ android_glGetActiveUniform1 } _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; size_base = (GLint *) - _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); + _env->GetIntArrayElements(size_ref, (jboolean *)0); size = size_base + sizeOffset; if (!type_ref) { @@ -2210,7 +2324,7 @@ android_glGetActiveUniform1 } _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; type_base = (GLenum *) - _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); + _env->GetIntArrayElements(type_ref, (jboolean *)0); type = type_base + typeOffset; glGetActiveUniform( @@ -2225,11 +2339,11 @@ android_glGetActiveUniform1 exit: if (type_base) { - _env->ReleasePrimitiveArrayCritical(type_ref, type_base, + _env->ReleaseIntArrayElements(type_ref, (jint*)type_base, _exception ? JNI_ABORT: 0); } if (size_base) { - _env->ReleasePrimitiveArrayCritical(size_ref, size_base, + _env->ReleaseIntArrayElements(size_ref, (jint*)size_base, _exception ? JNI_ABORT: 0); } if (_exception != 1) { @@ -2251,9 +2365,9 @@ exit: static jstring android_glGetActiveUniform2 (JNIEnv *_env, jobject _this, jint program, jint index, jobject size_buf, jobject type_buf) { - jarray _sizeArray = (jarray) 0; + jintArray _sizeArray = (jintArray) 0; jint _sizeBufferOffset = (jint) 0; - jarray _typeArray = (jarray) 0; + jintArray _typeArray = (jintArray) 0; jint _typeBufferOffset = (jint) 0; jint _sizeRemaining; GLint *size = (GLint *) 0; @@ -2273,15 +2387,15 @@ android_glGetActiveUniform2 return NULL; } - size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); - type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); + size = (GLint *)getPointer(_env, size_buf, (jarray*)&_sizeArray, &_sizeRemaining, &_sizeBufferOffset); + type = (GLenum *)getPointer(_env, type_buf, (jarray*)&_typeArray, &_typeRemaining, &_typeBufferOffset); if (size == NULL) { - char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); + char * _sizeBase = (char *)_env->GetIntArrayElements(_sizeArray, (jboolean *) 0); size = (GLint *) (_sizeBase + _sizeBufferOffset); } if (type == NULL) { - char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); + char * _typeBase = (char *)_env->GetIntArrayElements(_typeArray, (jboolean *) 0); type = (GLenum *) (_typeBase + _typeBufferOffset); } glGetActiveUniform( @@ -2295,10 +2409,10 @@ android_glGetActiveUniform2 ); if (_typeArray) { - releasePointer(_env, _typeArray, type, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _typeArray, (jint*)type, JNI_TRUE); } if (_sizeArray) { - releasePointer(_env, _sizeArray, size, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _sizeArray, (jint*)size, JNI_TRUE); } result = _env->NewStringUTF(buf); if (buf) { @@ -2340,7 +2454,7 @@ android_glGetAttachedShaders__II_3II_3II goto exit; } count_base = (GLsizei *) - _env->GetPrimitiveArrayCritical(count_ref, (jboolean *)0); + _env->GetIntArrayElements(count_ref, (jboolean *)0); count = count_base + countOffset; if (!shaders_ref) { @@ -2363,7 +2477,7 @@ android_glGetAttachedShaders__II_3II_3II goto exit; } shaders_base = (GLuint *) - _env->GetPrimitiveArrayCritical(shaders_ref, (jboolean *)0); + _env->GetIntArrayElements(shaders_ref, (jboolean *)0); shaders = shaders_base + shadersOffset; glGetAttachedShaders( @@ -2375,11 +2489,11 @@ android_glGetAttachedShaders__II_3II_3II exit: if (shaders_base) { - _env->ReleasePrimitiveArrayCritical(shaders_ref, shaders_base, + _env->ReleaseIntArrayElements(shaders_ref, (jint*)shaders_base, _exception ? JNI_ABORT: 0); } if (count_base) { - _env->ReleasePrimitiveArrayCritical(count_ref, count_base, + _env->ReleaseIntArrayElements(count_ref, (jint*)count_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2394,9 +2508,9 @@ android_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _countArray = (jarray) 0; + jintArray _countArray = (jintArray) 0; jint _countBufferOffset = (jint) 0; - jarray _shadersArray = (jarray) 0; + jintArray _shadersArray = (jintArray) 0; jint _shadersBufferOffset = (jint) 0; jint _countRemaining; GLsizei *count = (GLsizei *) 0; @@ -2404,7 +2518,7 @@ android_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 GLuint *shaders = (GLuint *) 0; if (count_buf) { - count = (GLsizei *)getPointer(_env, count_buf, &_countArray, &_countRemaining, &_countBufferOffset); + count = (GLsizei *)getPointer(_env, count_buf, (jarray*)&_countArray, &_countRemaining, &_countBufferOffset); if (_countRemaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -2413,7 +2527,7 @@ android_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 } } if (shaders_buf) { - shaders = (GLuint *)getPointer(_env, shaders_buf, &_shadersArray, &_shadersRemaining, &_shadersBufferOffset); + shaders = (GLuint *)getPointer(_env, shaders_buf, (jarray*)&_shadersArray, &_shadersRemaining, &_shadersBufferOffset); if (_shadersRemaining < maxcount) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -2422,11 +2536,11 @@ android_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 } } if (count_buf && count == NULL) { - char * _countBase = (char *)_env->GetPrimitiveArrayCritical(_countArray, (jboolean *) 0); + char * _countBase = (char *)_env->GetIntArrayElements(_countArray, (jboolean *) 0); count = (GLsizei *) (_countBase + _countBufferOffset); } if (shaders_buf && shaders == NULL) { - char * _shadersBase = (char *)_env->GetPrimitiveArrayCritical(_shadersArray, (jboolean *) 0); + char * _shadersBase = (char *)_env->GetIntArrayElements(_shadersArray, (jboolean *) 0); shaders = (GLuint *) (_shadersBase + _shadersBufferOffset); } glGetAttachedShaders( @@ -2438,10 +2552,10 @@ android_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 exit: if (_shadersArray) { - releasePointer(_env, _shadersArray, shaders, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_shadersArray, (jint*)shaders, _exception ? JNI_ABORT : 0); } if (_countArray) { - releasePointer(_env, _countArray, count, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_countArray, (jint*)count, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -2486,14 +2600,16 @@ exit: static void android_glGetBooleanv__I_3ZI (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) { - get<jbooleanArray, GLboolean, glGetBooleanv>(_env, _this, pname, params_ref, offset); + get<jbooleanArray, BooleanArrayGetter, jboolean*, BooleanArrayReleaser, GLboolean, glGetBooleanv>( + _env, _this, pname, params_ref, offset); } /* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ static void android_glGetBooleanv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - getarray<GLboolean, glGetBooleanv>(_env, _this, pname, params_buf); + getarray<GLboolean, jintArray, IntArrayGetter, jint*, IntArrayReleaser, glGetBooleanv>( + _env, _this, pname, params_buf); } /* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ static void @@ -2526,7 +2642,7 @@ android_glGetBufferParameteriv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetBufferParameteriv( @@ -2537,7 +2653,7 @@ android_glGetBufferParameteriv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2552,12 +2668,12 @@ android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; - params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -2565,7 +2681,7 @@ android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetBufferParameteriv( @@ -2576,7 +2692,7 @@ android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -2596,14 +2712,16 @@ android_glGetError__ static void android_glGetFloatv__I_3FI (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { - get<jfloatArray, GLfloat, glGetFloatv>(_env, _this, pname, params_ref, offset); + get<jfloatArray, FloatArrayGetter, jfloat*, FloatArrayReleaser, GLfloat, glGetFloatv>( + _env, _this, pname, params_ref, offset); } /* void glGetFloatv ( GLenum pname, GLfloat *params ) */ static void android_glGetFloatv__ILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - getarray<GLfloat, glGetFloatv>(_env, _this, pname, params_buf); + getarray<GLfloat, jfloatArray, FloatArrayGetter, jfloat*, FloatArrayReleaser, glGetFloatv>( + _env, _this, pname, params_buf); } /* void glGetFramebufferAttachmentParameteriv ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */ static void @@ -2630,7 +2748,7 @@ android_glGetFramebufferAttachmentParameteriv__III_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetFramebufferAttachmentParameteriv( @@ -2642,7 +2760,7 @@ android_glGetFramebufferAttachmentParameteriv__III_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2654,14 +2772,14 @@ exit: static void android_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; - params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetFramebufferAttachmentParameteriv( @@ -2671,7 +2789,7 @@ android_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -2679,16 +2797,17 @@ android_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2 static void android_glGetIntegerv__I_3II (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { - get<jintArray, GLint, glGetIntegerv>(_env, _this, pname, params_ref, offset); + get<jintArray, IntArrayGetter, jint*, IntArrayReleaser, GLint, glGetIntegerv>( + _env, _this, pname, params_ref, offset); } /* void glGetIntegerv ( GLenum pname, GLint *params ) */ static void android_glGetIntegerv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - getarray<GLint, glGetIntegerv>(_env, _this, pname, params_buf); + getarray<GLint, jintArray, IntArrayGetter, jint*, IntArrayReleaser, glGetIntegerv>( + _env, _this, pname, params_buf); } - /* void glGetProgramiv ( GLuint program, GLenum pname, GLint *params ) */ static void android_glGetProgramiv__II_3II @@ -2720,7 +2839,7 @@ android_glGetProgramiv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetProgramiv( @@ -2731,7 +2850,7 @@ android_glGetProgramiv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2746,12 +2865,12 @@ android_glGetProgramiv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; - params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -2759,7 +2878,7 @@ android_glGetProgramiv__IILjava_nio_IntBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetProgramiv( @@ -2770,7 +2889,7 @@ android_glGetProgramiv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -2827,7 +2946,7 @@ android_glGetRenderbufferParameteriv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetRenderbufferParameteriv( @@ -2838,7 +2957,7 @@ android_glGetRenderbufferParameteriv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2853,12 +2972,12 @@ android_glGetRenderbufferParameteriv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; - params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -2866,7 +2985,7 @@ android_glGetRenderbufferParameteriv__IILjava_nio_IntBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetRenderbufferParameteriv( @@ -2877,7 +2996,7 @@ android_glGetRenderbufferParameteriv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -2915,7 +3034,7 @@ android_glGetShaderiv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetShaderiv( @@ -2926,7 +3045,7 @@ android_glGetShaderiv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2941,12 +3060,12 @@ android_glGetShaderiv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; - params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -2954,7 +3073,7 @@ android_glGetShaderiv__IILjava_nio_IntBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetShaderiv( @@ -2965,7 +3084,7 @@ android_glGetShaderiv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -3025,7 +3144,7 @@ android_glGetShaderPrecisionFormat__II_3II_3II goto exit; } range_base = (GLint *) - _env->GetPrimitiveArrayCritical(range_ref, (jboolean *)0); + _env->GetIntArrayElements(range_ref, (jboolean *)0); range = range_base + rangeOffset; if (!precision_ref) { @@ -3048,7 +3167,7 @@ android_glGetShaderPrecisionFormat__II_3II_3II goto exit; } precision_base = (GLint *) - _env->GetPrimitiveArrayCritical(precision_ref, (jboolean *)0); + _env->GetIntArrayElements(precision_ref, (jboolean *)0); precision = precision_base + precisionOffset; glGetShaderPrecisionFormat( @@ -3060,11 +3179,11 @@ android_glGetShaderPrecisionFormat__II_3II_3II exit: if (precision_base) { - _env->ReleasePrimitiveArrayCritical(precision_ref, precision_base, + _env->ReleaseIntArrayElements(precision_ref, (jint*)precision_base, _exception ? JNI_ABORT: 0); } if (range_base) { - _env->ReleasePrimitiveArrayCritical(range_ref, range_base, + _env->ReleaseIntArrayElements(range_ref, (jint*)range_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3079,23 +3198,23 @@ android_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _rangeArray = (jarray) 0; + jintArray _rangeArray = (jintArray) 0; jint _rangeBufferOffset = (jint) 0; - jarray _precisionArray = (jarray) 0; + jintArray _precisionArray = (jintArray) 0; jint _precisionBufferOffset = (jint) 0; jint _rangeRemaining; GLint *range = (GLint *) 0; jint _precisionRemaining; GLint *precision = (GLint *) 0; - range = (GLint *)getPointer(_env, range_buf, &_rangeArray, &_rangeRemaining, &_rangeBufferOffset); + range = (GLint *)getPointer(_env, range_buf, (jarray*)&_rangeArray, &_rangeRemaining, &_rangeBufferOffset); if (_rangeRemaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "remaining() < 1 < needed"; goto exit; } - precision = (GLint *)getPointer(_env, precision_buf, &_precisionArray, &_precisionRemaining, &_precisionBufferOffset); + precision = (GLint *)getPointer(_env, precision_buf, (jarray*)&_precisionArray, &_precisionRemaining, &_precisionBufferOffset); if (_precisionRemaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -3103,11 +3222,11 @@ android_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 goto exit; } if (range == NULL) { - char * _rangeBase = (char *)_env->GetPrimitiveArrayCritical(_rangeArray, (jboolean *) 0); + char * _rangeBase = (char *)_env->GetIntArrayElements(_rangeArray, (jboolean *) 0); range = (GLint *) (_rangeBase + _rangeBufferOffset); } if (precision == NULL) { - char * _precisionBase = (char *)_env->GetPrimitiveArrayCritical(_precisionArray, (jboolean *) 0); + char * _precisionBase = (char *)_env->GetIntArrayElements(_precisionArray, (jboolean *) 0); precision = (GLint *) (_precisionBase + _precisionBufferOffset); } glGetShaderPrecisionFormat( @@ -3119,10 +3238,10 @@ android_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 exit: if (_precisionArray) { - releasePointer(_env, _precisionArray, precision, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_precisionArray, (jint*)precision, _exception ? JNI_ABORT : 0); } if (_rangeArray) { - releasePointer(_env, _rangeArray, range, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_rangeArray, (jint*)range, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -3157,7 +3276,7 @@ android_glGetShaderSource__II_3II_3BI } _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; length_base = (GLsizei *) - _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0); + _env->GetIntArrayElements(length_ref, (jboolean *)0); length = length_base + lengthOffset; if (!source_ref) { @@ -3174,7 +3293,7 @@ android_glGetShaderSource__II_3II_3BI } _sourceRemaining = _env->GetArrayLength(source_ref) - sourceOffset; source_base = (char *) - _env->GetPrimitiveArrayCritical(source_ref, (jboolean *)0); + _env->GetByteArrayElements(source_ref, (jboolean *)0); source = source_base + sourceOffset; glGetShaderSource( @@ -3186,11 +3305,11 @@ android_glGetShaderSource__II_3II_3BI exit: if (source_base) { - _env->ReleasePrimitiveArrayCritical(source_ref, source_base, + _env->ReleaseByteArrayElements(source_ref, (jbyte*)source_base, _exception ? JNI_ABORT: 0); } if (length_base) { - _env->ReleasePrimitiveArrayCritical(length_ref, length_base, + _env->ReleaseIntArrayElements(length_ref, (jint*)length_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3202,14 +3321,14 @@ exit: static void android_glGetShaderSource__IILjava_nio_IntBuffer_2B (JNIEnv *_env, jobject _this, jint shader, jint bufsize, jobject length_buf, jbyte source) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLsizei *length = (GLsizei *) 0; - length = (GLsizei *)getPointer(_env, length_buf, &_array, &_remaining, &_bufferOffset); + length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (length == NULL) { - char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _lengthBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); length = (GLsizei *) (_lengthBase + _bufferOffset); } glGetShaderSource( @@ -3219,7 +3338,7 @@ android_glGetShaderSource__IILjava_nio_IntBuffer_2B reinterpret_cast<char *>(source) ); if (_array) { - releasePointer(_env, _array, length, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _array, (jint*)length, JNI_TRUE); } } @@ -3276,7 +3395,7 @@ android_glGetTexParameterfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexParameterfv( @@ -3287,7 +3406,7 @@ android_glGetTexParameterfv__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3302,12 +3421,12 @@ android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; - params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -3315,7 +3434,7 @@ android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glGetTexParameterfv( @@ -3326,7 +3445,7 @@ android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -3364,7 +3483,7 @@ android_glGetTexParameteriv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexParameteriv( @@ -3375,7 +3494,7 @@ android_glGetTexParameteriv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3390,12 +3509,12 @@ android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; - params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -3403,7 +3522,7 @@ android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetTexParameteriv( @@ -3414,7 +3533,7 @@ android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -3452,7 +3571,7 @@ android_glGetUniformfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetUniformfv( @@ -3463,7 +3582,7 @@ android_glGetUniformfv__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3478,12 +3597,12 @@ android_glGetUniformfv__IILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; - params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -3491,7 +3610,7 @@ android_glGetUniformfv__IILjava_nio_FloatBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glGetUniformfv( @@ -3502,7 +3621,7 @@ android_glGetUniformfv__IILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -3540,7 +3659,7 @@ android_glGetUniformiv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetUniformiv( @@ -3551,7 +3670,7 @@ android_glGetUniformiv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3566,12 +3685,12 @@ android_glGetUniformiv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; - params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -3579,7 +3698,7 @@ android_glGetUniformiv__IILjava_nio_IntBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetUniformiv( @@ -3590,7 +3709,7 @@ android_glGetUniformiv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -3673,7 +3792,7 @@ android_glGetVertexAttribfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetVertexAttribfv( @@ -3684,7 +3803,7 @@ android_glGetVertexAttribfv__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3699,12 +3818,12 @@ android_glGetVertexAttribfv__IILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; - params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_CURRENT_VERTEX_ATTRIB) @@ -3723,7 +3842,7 @@ android_glGetVertexAttribfv__IILjava_nio_FloatBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glGetVertexAttribfv( @@ -3734,7 +3853,7 @@ android_glGetVertexAttribfv__IILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -3783,7 +3902,7 @@ android_glGetVertexAttribiv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetVertexAttribiv( @@ -3794,7 +3913,7 @@ android_glGetVertexAttribiv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3809,12 +3928,12 @@ android_glGetVertexAttribiv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; - params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_CURRENT_VERTEX_ATTRIB) @@ -3833,7 +3952,7 @@ android_glGetVertexAttribiv__IILjava_nio_IntBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetVertexAttribiv( @@ -3844,7 +3963,7 @@ android_glGetVertexAttribiv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -3985,7 +4104,7 @@ android_glReadPixels__IIIIIILjava_nio_Buffer_2 jint _remaining; GLvoid *pixels = (GLvoid *) 0; - pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); + pixels = (GLvoid *)getPointer(_env, pixels_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pixels == NULL) { char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); pixels = (GLvoid *) (_pixelsBase + _bufferOffset); @@ -4074,10 +4193,10 @@ android_glShaderBinary__I_3IIILjava_nio_Buffer_2I } _shadersRemaining = _env->GetArrayLength(shaders_ref) - offset; shaders_base = (GLuint *) - _env->GetPrimitiveArrayCritical(shaders_ref, (jboolean *)0); + _env->GetIntArrayElements(shaders_ref, (jboolean *)0); shaders = shaders_base + offset; - binary = (GLvoid *)getPointer(_env, binary_buf, &_array, &_binaryRemaining, &_bufferOffset); + binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_array, &_binaryRemaining, &_bufferOffset); if (_binaryRemaining < length) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4101,7 +4220,7 @@ exit: releasePointer(_env, _array, binary, JNI_FALSE); } if (shaders_base) { - _env->ReleasePrimitiveArrayCritical(shaders_ref, shaders_base, + _env->ReleaseIntArrayElements(shaders_ref, (jint*)shaders_base, JNI_ABORT); } if (_exception) { @@ -4116,17 +4235,17 @@ android_glShaderBinary__ILjava_nio_IntBuffer_2ILjava_nio_Buffer_2I jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _shadersArray = (jarray) 0; + jintArray _shadersArray = (jintArray) 0; jint _shadersBufferOffset = (jint) 0; - jarray _binaryArray = (jarray) 0; + jintArray _binaryArray = (jintArray) 0; jint _binaryBufferOffset = (jint) 0; jint _shadersRemaining; GLuint *shaders = (GLuint *) 0; jint _binaryRemaining; GLvoid *binary = (GLvoid *) 0; - shaders = (GLuint *)getPointer(_env, shaders_buf, &_shadersArray, &_shadersRemaining, &_shadersBufferOffset); - binary = (GLvoid *)getPointer(_env, binary_buf, &_binaryArray, &_binaryRemaining, &_binaryBufferOffset); + shaders = (GLuint *)getPointer(_env, shaders_buf, (jarray*)&_shadersArray, &_shadersRemaining, &_shadersBufferOffset); + binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_binaryArray, &_binaryRemaining, &_binaryBufferOffset); if (_binaryRemaining < length) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4134,7 +4253,7 @@ android_glShaderBinary__ILjava_nio_IntBuffer_2ILjava_nio_Buffer_2I goto exit; } if (shaders == NULL) { - char * _shadersBase = (char *)_env->GetPrimitiveArrayCritical(_shadersArray, (jboolean *) 0); + char * _shadersBase = (char *)_env->GetIntArrayElements(_shadersArray, (jboolean *) 0); shaders = (GLuint *) (_shadersBase + _shadersBufferOffset); } if (binary == NULL) { @@ -4154,7 +4273,7 @@ exit: releasePointer(_env, _binaryArray, binary, JNI_FALSE); } if (_shadersArray) { - releasePointer(_env, _shadersArray, shaders, JNI_FALSE); + _env->ReleaseIntArrayElements(_shadersArray, (jint*)shaders, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -4253,7 +4372,7 @@ android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 GLvoid *pixels = (GLvoid *) 0; if (pixels_buf) { - pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); + pixels = (GLvoid *)getPointer(_env, pixels_buf, (jarray*)&_array, &_remaining, &_bufferOffset); } if (pixels_buf && pixels == NULL) { char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -4317,7 +4436,7 @@ android_glTexParameterfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexParameterfv( @@ -4328,7 +4447,7 @@ android_glTexParameterfv__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -4343,12 +4462,12 @@ android_glTexParameterfv__IILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; - params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4356,7 +4475,7 @@ android_glTexParameterfv__IILjava_nio_FloatBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glTexParameterfv( @@ -4367,7 +4486,7 @@ android_glTexParameterfv__IILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -4416,7 +4535,7 @@ android_glTexParameteriv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexParameteriv( @@ -4427,7 +4546,7 @@ android_glTexParameteriv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -4442,12 +4561,12 @@ android_glTexParameteriv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; - params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4455,7 +4574,7 @@ android_glTexParameteriv__IILjava_nio_IntBuffer_2 goto exit; } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glTexParameteriv( @@ -4466,7 +4585,7 @@ android_glTexParameteriv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -4483,7 +4602,7 @@ android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 GLvoid *pixels = (GLvoid *) 0; if (pixels_buf) { - pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); + pixels = (GLvoid *)getPointer(_env, pixels_buf, (jarray*)&_array, &_remaining, &_bufferOffset); } if (pixels_buf && pixels == NULL) { char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); @@ -4546,7 +4665,7 @@ android_glUniform1fv__II_3FI goto exit; } v_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); + _env->GetFloatArrayElements(v_ref, (jboolean *)0); v = v_base + offset; glUniform1fv( @@ -4557,7 +4676,7 @@ android_glUniform1fv__II_3FI exit: if (v_base) { - _env->ReleasePrimitiveArrayCritical(v_ref, v_base, + _env->ReleaseFloatArrayElements(v_ref, (jfloat*)v_base, JNI_ABORT); } if (_exception) { @@ -4572,12 +4691,12 @@ android_glUniform1fv__IILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *v = (GLfloat *) 0; - v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); + v = (GLfloat *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4585,7 +4704,7 @@ android_glUniform1fv__IILjava_nio_FloatBuffer_2 goto exit; } if (v == NULL) { - char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _vBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); v = (GLfloat *) (_vBase + _bufferOffset); } glUniform1fv( @@ -4596,7 +4715,7 @@ android_glUniform1fv__IILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, v, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)v, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -4644,7 +4763,7 @@ android_glUniform1iv__II_3II goto exit; } v_base = (GLint *) - _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); + _env->GetIntArrayElements(v_ref, (jboolean *)0); v = v_base + offset; glUniform1iv( @@ -4655,7 +4774,7 @@ android_glUniform1iv__II_3II exit: if (v_base) { - _env->ReleasePrimitiveArrayCritical(v_ref, v_base, + _env->ReleaseIntArrayElements(v_ref, (jint*)v_base, JNI_ABORT); } if (_exception) { @@ -4670,12 +4789,12 @@ android_glUniform1iv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *v = (GLint *) 0; - v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); + v = (GLint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4683,7 +4802,7 @@ android_glUniform1iv__IILjava_nio_IntBuffer_2 goto exit; } if (v == NULL) { - char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _vBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); v = (GLint *) (_vBase + _bufferOffset); } glUniform1iv( @@ -4694,7 +4813,7 @@ android_glUniform1iv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, v, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)v, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -4743,7 +4862,7 @@ android_glUniform2fv__II_3FI goto exit; } v_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); + _env->GetFloatArrayElements(v_ref, (jboolean *)0); v = v_base + offset; glUniform2fv( @@ -4754,7 +4873,7 @@ android_glUniform2fv__II_3FI exit: if (v_base) { - _env->ReleasePrimitiveArrayCritical(v_ref, v_base, + _env->ReleaseFloatArrayElements(v_ref, (jfloat*)v_base, JNI_ABORT); } if (_exception) { @@ -4769,12 +4888,12 @@ android_glUniform2fv__IILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *v = (GLfloat *) 0; - v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); + v = (GLfloat *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*2) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4782,7 +4901,7 @@ android_glUniform2fv__IILjava_nio_FloatBuffer_2 goto exit; } if (v == NULL) { - char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _vBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); v = (GLfloat *) (_vBase + _bufferOffset); } glUniform2fv( @@ -4793,7 +4912,7 @@ android_glUniform2fv__IILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, v, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)v, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -4842,7 +4961,7 @@ android_glUniform2iv__II_3II goto exit; } v_base = (GLint *) - _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); + _env->GetIntArrayElements(v_ref, (jboolean *)0); v = v_base + offset; glUniform2iv( @@ -4853,7 +4972,7 @@ android_glUniform2iv__II_3II exit: if (v_base) { - _env->ReleasePrimitiveArrayCritical(v_ref, v_base, + _env->ReleaseIntArrayElements(v_ref, (jint*)v_base, JNI_ABORT); } if (_exception) { @@ -4868,12 +4987,12 @@ android_glUniform2iv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *v = (GLint *) 0; - v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); + v = (GLint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*2) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4881,7 +5000,7 @@ android_glUniform2iv__IILjava_nio_IntBuffer_2 goto exit; } if (v == NULL) { - char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _vBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); v = (GLint *) (_vBase + _bufferOffset); } glUniform2iv( @@ -4892,7 +5011,7 @@ android_glUniform2iv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, v, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)v, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -4942,7 +5061,7 @@ android_glUniform3fv__II_3FI goto exit; } v_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); + _env->GetFloatArrayElements(v_ref, (jboolean *)0); v = v_base + offset; glUniform3fv( @@ -4953,7 +5072,7 @@ android_glUniform3fv__II_3FI exit: if (v_base) { - _env->ReleasePrimitiveArrayCritical(v_ref, v_base, + _env->ReleaseFloatArrayElements(v_ref, (jfloat*)v_base, JNI_ABORT); } if (_exception) { @@ -4968,12 +5087,12 @@ android_glUniform3fv__IILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *v = (GLfloat *) 0; - v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); + v = (GLfloat *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*3) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4981,7 +5100,7 @@ android_glUniform3fv__IILjava_nio_FloatBuffer_2 goto exit; } if (v == NULL) { - char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _vBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); v = (GLfloat *) (_vBase + _bufferOffset); } glUniform3fv( @@ -4992,7 +5111,7 @@ android_glUniform3fv__IILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, v, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)v, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -5042,7 +5161,7 @@ android_glUniform3iv__II_3II goto exit; } v_base = (GLint *) - _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); + _env->GetIntArrayElements(v_ref, (jboolean *)0); v = v_base + offset; glUniform3iv( @@ -5053,7 +5172,7 @@ android_glUniform3iv__II_3II exit: if (v_base) { - _env->ReleasePrimitiveArrayCritical(v_ref, v_base, + _env->ReleaseIntArrayElements(v_ref, (jint*)v_base, JNI_ABORT); } if (_exception) { @@ -5068,12 +5187,12 @@ android_glUniform3iv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *v = (GLint *) 0; - v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); + v = (GLint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*3) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -5081,7 +5200,7 @@ android_glUniform3iv__IILjava_nio_IntBuffer_2 goto exit; } if (v == NULL) { - char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _vBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); v = (GLint *) (_vBase + _bufferOffset); } glUniform3iv( @@ -5092,7 +5211,7 @@ android_glUniform3iv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, v, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)v, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -5143,7 +5262,7 @@ android_glUniform4fv__II_3FI goto exit; } v_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); + _env->GetFloatArrayElements(v_ref, (jboolean *)0); v = v_base + offset; glUniform4fv( @@ -5154,7 +5273,7 @@ android_glUniform4fv__II_3FI exit: if (v_base) { - _env->ReleasePrimitiveArrayCritical(v_ref, v_base, + _env->ReleaseFloatArrayElements(v_ref, (jfloat*)v_base, JNI_ABORT); } if (_exception) { @@ -5169,12 +5288,12 @@ android_glUniform4fv__IILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *v = (GLfloat *) 0; - v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); + v = (GLfloat *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*4) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -5182,7 +5301,7 @@ android_glUniform4fv__IILjava_nio_FloatBuffer_2 goto exit; } if (v == NULL) { - char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _vBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); v = (GLfloat *) (_vBase + _bufferOffset); } glUniform4fv( @@ -5193,7 +5312,7 @@ android_glUniform4fv__IILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, v, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)v, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -5244,7 +5363,7 @@ android_glUniform4iv__II_3II goto exit; } v_base = (GLint *) - _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); + _env->GetIntArrayElements(v_ref, (jboolean *)0); v = v_base + offset; glUniform4iv( @@ -5255,7 +5374,7 @@ android_glUniform4iv__II_3II exit: if (v_base) { - _env->ReleasePrimitiveArrayCritical(v_ref, v_base, + _env->ReleaseIntArrayElements(v_ref, (jint*)v_base, JNI_ABORT); } if (_exception) { @@ -5270,12 +5389,12 @@ android_glUniform4iv__IILjava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *v = (GLint *) 0; - v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); + v = (GLint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*4) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -5283,7 +5402,7 @@ android_glUniform4iv__IILjava_nio_IntBuffer_2 goto exit; } if (v == NULL) { - char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _vBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); v = (GLint *) (_vBase + _bufferOffset); } glUniform4iv( @@ -5294,7 +5413,7 @@ android_glUniform4iv__IILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, v, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)v, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -5332,7 +5451,7 @@ android_glUniformMatrix2fv__IIZ_3FI goto exit; } value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniformMatrix2fv( @@ -5344,7 +5463,7 @@ android_glUniformMatrix2fv__IIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -5359,12 +5478,12 @@ android_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; - value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*4) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -5372,7 +5491,7 @@ android_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2 goto exit; } if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glUniformMatrix2fv( @@ -5384,7 +5503,7 @@ android_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -5422,7 +5541,7 @@ android_glUniformMatrix3fv__IIZ_3FI goto exit; } value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniformMatrix3fv( @@ -5434,7 +5553,7 @@ android_glUniformMatrix3fv__IIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -5449,12 +5568,12 @@ android_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; - value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*9) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -5462,7 +5581,7 @@ android_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2 goto exit; } if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glUniformMatrix3fv( @@ -5474,7 +5593,7 @@ android_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -5512,7 +5631,7 @@ android_glUniformMatrix4fv__IIZ_3FI goto exit; } value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniformMatrix4fv( @@ -5524,7 +5643,7 @@ android_glUniformMatrix4fv__IIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -5539,12 +5658,12 @@ android_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; - value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < count*16) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -5552,7 +5671,7 @@ android_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2 goto exit; } if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glUniformMatrix4fv( @@ -5564,7 +5683,7 @@ android_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -5630,7 +5749,7 @@ android_glVertexAttrib1fv__I_3FI goto exit; } values_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); + _env->GetFloatArrayElements(values_ref, (jboolean *)0); values = values_base + offset; glVertexAttrib1fv( @@ -5640,7 +5759,7 @@ android_glVertexAttrib1fv__I_3FI exit: if (values_base) { - _env->ReleasePrimitiveArrayCritical(values_ref, values_base, + _env->ReleaseFloatArrayElements(values_ref, (jfloat*)values_base, JNI_ABORT); } if (_exception) { @@ -5655,12 +5774,12 @@ android_glVertexAttrib1fv__ILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *values = (GLfloat *) 0; - values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); + values = (GLfloat *)getPointer(_env, values_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -5668,7 +5787,7 @@ android_glVertexAttrib1fv__ILjava_nio_FloatBuffer_2 goto exit; } if (values == NULL) { - char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valuesBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); values = (GLfloat *) (_valuesBase + _bufferOffset); } glVertexAttrib1fv( @@ -5678,7 +5797,7 @@ android_glVertexAttrib1fv__ILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, values, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)values, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -5727,7 +5846,7 @@ android_glVertexAttrib2fv__I_3FI goto exit; } values_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); + _env->GetFloatArrayElements(values_ref, (jboolean *)0); values = values_base + offset; glVertexAttrib2fv( @@ -5737,7 +5856,7 @@ android_glVertexAttrib2fv__I_3FI exit: if (values_base) { - _env->ReleasePrimitiveArrayCritical(values_ref, values_base, + _env->ReleaseFloatArrayElements(values_ref, (jfloat*)values_base, JNI_ABORT); } if (_exception) { @@ -5752,12 +5871,12 @@ android_glVertexAttrib2fv__ILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *values = (GLfloat *) 0; - values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); + values = (GLfloat *)getPointer(_env, values_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 2) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -5765,7 +5884,7 @@ android_glVertexAttrib2fv__ILjava_nio_FloatBuffer_2 goto exit; } if (values == NULL) { - char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valuesBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); values = (GLfloat *) (_valuesBase + _bufferOffset); } glVertexAttrib2fv( @@ -5775,7 +5894,7 @@ android_glVertexAttrib2fv__ILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, values, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)values, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -5825,7 +5944,7 @@ android_glVertexAttrib3fv__I_3FI goto exit; } values_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); + _env->GetFloatArrayElements(values_ref, (jboolean *)0); values = values_base + offset; glVertexAttrib3fv( @@ -5835,7 +5954,7 @@ android_glVertexAttrib3fv__I_3FI exit: if (values_base) { - _env->ReleasePrimitiveArrayCritical(values_ref, values_base, + _env->ReleaseFloatArrayElements(values_ref, (jfloat*)values_base, JNI_ABORT); } if (_exception) { @@ -5850,12 +5969,12 @@ android_glVertexAttrib3fv__ILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *values = (GLfloat *) 0; - values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); + values = (GLfloat *)getPointer(_env, values_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 3) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -5863,7 +5982,7 @@ android_glVertexAttrib3fv__ILjava_nio_FloatBuffer_2 goto exit; } if (values == NULL) { - char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valuesBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); values = (GLfloat *) (_valuesBase + _bufferOffset); } glVertexAttrib3fv( @@ -5873,7 +5992,7 @@ android_glVertexAttrib3fv__ILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, values, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)values, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -5924,7 +6043,7 @@ android_glVertexAttrib4fv__I_3FI goto exit; } values_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); + _env->GetFloatArrayElements(values_ref, (jboolean *)0); values = values_base + offset; glVertexAttrib4fv( @@ -5934,7 +6053,7 @@ android_glVertexAttrib4fv__I_3FI exit: if (values_base) { - _env->ReleasePrimitiveArrayCritical(values_ref, values_base, + _env->ReleaseFloatArrayElements(values_ref, (jfloat*)values_base, JNI_ABORT); } if (_exception) { @@ -5949,12 +6068,12 @@ android_glVertexAttrib4fv__ILjava_nio_FloatBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *values = (GLfloat *) 0; - values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); + values = (GLfloat *)getPointer(_env, values_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -5962,7 +6081,7 @@ android_glVertexAttrib4fv__ILjava_nio_FloatBuffer_2 goto exit; } if (values == NULL) { - char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valuesBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); values = (GLfloat *) (_valuesBase + _bufferOffset); } glVertexAttrib4fv( @@ -5972,7 +6091,7 @@ android_glVertexAttrib4fv__ILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, values, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)values, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); |