diff options
-rw-r--r-- | core/jni/android/opengl/util.cpp | 112 | ||||
-rw-r--r-- | core/jni/android_opengl_EGL14.cpp | 53 | ||||
-rw-r--r-- | core/jni/android_opengl_GLES10.cpp | 345 | ||||
-rw-r--r-- | core/jni/android_opengl_GLES10Ext.cpp | 158 | ||||
-rw-r--r-- | core/jni/android_opengl_GLES11.cpp | 438 | ||||
-rw-r--r-- | core/jni/android_opengl_GLES11Ext.cpp | 546 | ||||
-rw-r--r-- | core/jni/android_opengl_GLES20.cpp | 811 | ||||
-rw-r--r-- | core/jni/android_opengl_GLES30.cpp | 808 | ||||
-rw-r--r-- | core/jni/android_opengl_GLES31.cpp | 530 | ||||
-rw-r--r-- | core/jni/android_opengl_GLES31Ext.cpp | 242 | ||||
-rw-r--r-- | core/jni/com_google_android_gles_jni_GLImpl.cpp | 724 |
11 files changed, 2892 insertions, 1875 deletions
diff --git a/core/jni/android/opengl/util.cpp b/core/jni/android/opengl/util.cpp index bce2b33..40029bb 100644 --- a/core/jni/android/opengl/util.cpp +++ b/core/jni/android/opengl/util.cpp @@ -150,7 +150,105 @@ int visibilityTest(float* pWS, float* pPositions, int positionsLength, return result; } -template<class JArray, class T> +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); + } +}; + +class ByteArrayReleaser { +public: + static void Release(JNIEnv* _env, jbyteArray array, jbyte* data, jint mode) { + _env->ReleaseByteArrayElements(array, data, mode); + } +}; +class BooleanArrayReleaser { +public: + static void Release(JNIEnv* _env, jbooleanArray array, jboolean* data, jint mode) { + _env->ReleaseBooleanArrayElements(array, data, mode); + } +}; +class CharArrayReleaser { +public: + static void Release(JNIEnv* _env, jcharArray array, jchar* data, jint mode) { + _env->ReleaseCharArrayElements(array, data, mode); + } +}; +class ShortArrayReleaser { +public: + static void Release(JNIEnv* _env, jshortArray array, jshort* data, jint mode) { + _env->ReleaseShortArrayElements(array, data, mode); + } +}; +class IntArrayReleaser { +public: + static void Release(JNIEnv* _env, jintArray array, jint* data, jint mode) { + _env->ReleaseIntArrayElements(array, data, mode); + } +}; +class LongArrayReleaser { +public: + static void Release(JNIEnv* _env, jlongArray array, jlong* data, jint mode) { + _env->ReleaseLongArrayElements(array, data, mode); + } +}; +class FloatArrayReleaser { +public: + static void Release(JNIEnv* _env, jfloatArray array, jfloat* data, jint mode) { + _env->ReleaseFloatArrayElements(array, data, mode); + } +}; +class DoubleArrayReleaser { +public: + static void Release(JNIEnv* _env, jdoubleArray array, jdouble* data, jint mode) { + _env->ReleaseDoubleArrayElements(array, data, mode); + } +}; + +template<class JArray, class T, class ArrayGetter, class ArrayReleaser> class ArrayHelper { public: ArrayHelper(JNIEnv* env, JArray ref, jint offset, jint minSize) { @@ -164,7 +262,7 @@ public: ~ArrayHelper() { if (mBase) { - mEnv->ReleasePrimitiveArrayCritical(mRef, mBase, mReleaseParam); + ArrayReleaser::Release(mEnv, mRef, mBase, mReleaseParam); } } @@ -195,7 +293,7 @@ public: // Bind the array. void bind() { - mBase = (T*) mEnv->GetPrimitiveArrayCritical(mRef, (jboolean *) 0); + mBase = (T*) ArrayGetter::Get(mEnv, mRef, (jboolean *) 0); mData = mBase + mOffset; } @@ -215,10 +313,10 @@ private: int mReleaseParam; }; -typedef ArrayHelper<jfloatArray, float> FloatArrayHelper; -typedef ArrayHelper<jcharArray, unsigned short> UnsignedShortArrayHelper; -typedef ArrayHelper<jintArray, int> IntArrayHelper; -typedef ArrayHelper<jbyteArray, unsigned char> ByteArrayHelper; +typedef ArrayHelper<jfloatArray, float, FloatArrayGetter, FloatArrayReleaser> FloatArrayHelper; +typedef ArrayHelper<jcharArray, unsigned short, CharArrayGetter, CharArrayReleaser> UnsignedShortArrayHelper; +typedef ArrayHelper<jintArray, int, IntArrayGetter, IntArrayReleaser> IntArrayHelper; +typedef ArrayHelper<jbyteArray, unsigned char, ByteArrayGetter, ByteArrayReleaser> ByteArrayHelper; inline float distance2(float x, float y, float z) { return x * x + y * y + z * z; diff --git a/core/jni/android_opengl_EGL14.cpp b/core/jni/android_opengl_EGL14.cpp index 36f7963..9f5b3bc 100644 --- a/core/jni/android_opengl_EGL14.cpp +++ b/core/jni/android_opengl_EGL14.cpp @@ -204,7 +204,7 @@ android_eglInitialize goto exit; } major_base = (EGLint *) - _env->GetPrimitiveArrayCritical(major_ref, (jboolean *)0); + _env->GetIntArrayElements(major_ref, (jboolean *)0); major = major_base + majorOffset; if (!minor_ref) { @@ -227,7 +227,7 @@ android_eglInitialize goto exit; } minor_base = (EGLint *) - _env->GetPrimitiveArrayCritical(minor_ref, (jboolean *)0); + _env->GetIntArrayElements(minor_ref, (jboolean *)0); minor = minor_base + minorOffset; _returnValue = eglInitialize( @@ -238,11 +238,11 @@ android_eglInitialize exit: if (minor_base) { - _env->ReleasePrimitiveArrayCritical(minor_ref, minor_base, + _env->ReleaseIntArrayElements(minor_ref, (jint*)minor_base, _exception ? JNI_ABORT: 0); } if (major_base) { - _env->ReleasePrimitiveArrayCritical(major_ref, major_base, + _env->ReleaseIntArrayElements(major_ref, (jint*)major_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -324,7 +324,7 @@ android_eglGetConfigs } _num_configRemaining = _env->GetArrayLength(num_config_ref) - num_configOffset; num_config_base = (EGLint *) - _env->GetPrimitiveArrayCritical(num_config_ref, (jboolean *)0); + _env->GetIntArrayElements(num_config_ref, (jboolean *)0); num_config = num_config_base + num_configOffset; _returnValue = eglGetConfigs( @@ -336,7 +336,7 @@ android_eglGetConfigs exit: if (num_config_base) { - _env->ReleasePrimitiveArrayCritical(num_config_ref, num_config_base, + _env->ReleaseIntArrayElements(num_config_ref, (jint*)num_config_base, _exception ? JNI_ABORT: 0); } if (configs) { @@ -385,7 +385,7 @@ android_eglChooseConfig } _attrib_listRemaining = _env->GetArrayLength(attrib_list_ref) - attrib_listOffset; attrib_list_base = (EGLint *) - _env->GetPrimitiveArrayCritical(attrib_list_ref, (jboolean *)0); + _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0); attrib_list = attrib_list_base + attrib_listOffset; attrib_list_sentinel = false; for (int i = _attrib_listRemaining - 1; i >= 0; i--) { @@ -442,7 +442,7 @@ android_eglChooseConfig goto exit; } num_config_base = (EGLint *) - _env->GetPrimitiveArrayCritical(num_config_ref, (jboolean *)0); + _env->GetIntArrayElements(num_config_ref, (jboolean *)0); num_config = num_config_base + num_configOffset; _returnValue = eglChooseConfig( @@ -455,11 +455,11 @@ android_eglChooseConfig exit: if (num_config_base) { - _env->ReleasePrimitiveArrayCritical(num_config_ref, num_config_base, + _env->ReleaseIntArrayElements(num_config_ref, (jint*)num_config_base, _exception ? JNI_ABORT: 0); } if (attrib_list_base) { - _env->ReleasePrimitiveArrayCritical(attrib_list_ref, attrib_list_base, + _env->ReleaseIntArrayElements(attrib_list_ref, (jint*)attrib_list_base, JNI_ABORT); } if (configs) { @@ -509,7 +509,7 @@ android_eglGetConfigAttrib goto exit; } value_base = (EGLint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; _returnValue = eglGetConfigAttrib( @@ -521,7 +521,7 @@ android_eglGetConfigAttrib exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -573,7 +573,7 @@ not_valid_surface: _remaining = _env->GetArrayLength(attrib_list_ref) - offset; attrib_list_base = (EGLint *) - _env->GetPrimitiveArrayCritical(attrib_list_ref, (jboolean *)0); + _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0); attrib_list = attrib_list_base + offset; attrib_list_sentinel = 0; for (int i = _remaining - 1; i >= 0; i--) { @@ -598,7 +598,7 @@ not_valid_surface: exit: if (attrib_list_base) { - _env->ReleasePrimitiveArrayCritical(attrib_list_ref, attrib_list_base, + _env->ReleaseIntArrayElements(attrib_list_ref, attrib_list_base, JNI_ABORT); } if (_exception) { @@ -655,7 +655,7 @@ not_valid_surface: _remaining = _env->GetArrayLength(attrib_list_ref) - offset; attrib_list_base = (EGLint *) - _env->GetPrimitiveArrayCritical(attrib_list_ref, (jboolean *)0); + _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0); attrib_list = attrib_list_base + offset; attrib_list_sentinel = 0; for (int i = _remaining - 1; i >= 0; i--) { @@ -680,7 +680,7 @@ not_valid_surface: exit: if (attrib_list_base) { - _env->ReleasePrimitiveArrayCritical(attrib_list_ref, attrib_list_base, + _env->ReleaseIntArrayElements(attrib_list_ref, attrib_list_base, JNI_ABORT); } if (_exception) { @@ -717,7 +717,7 @@ android_eglCreatePbufferSurface } _remaining = _env->GetArrayLength(attrib_list_ref) - offset; attrib_list_base = (EGLint *) - _env->GetPrimitiveArrayCritical(attrib_list_ref, (jboolean *)0); + _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0); attrib_list = attrib_list_base + offset; attrib_list_sentinel = false; for (int i = _remaining - 1; i >= 0; i--) { @@ -741,7 +741,7 @@ android_eglCreatePbufferSurface exit: if (attrib_list_base) { - _env->ReleasePrimitiveArrayCritical(attrib_list_ref, attrib_list_base, + _env->ReleaseIntArrayElements(attrib_list_ref, (jint*)attrib_list_base, JNI_ABORT); } if (_exception) { @@ -808,7 +808,7 @@ android_eglQuerySurface goto exit; } value_base = (EGLint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; _returnValue = eglQuerySurface( @@ -820,7 +820,7 @@ android_eglQuerySurface exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -896,7 +896,7 @@ android_eglCreatePbufferFromClientBuffer } _remaining = _env->GetArrayLength(attrib_list_ref) - offset; attrib_list_base = (EGLint *) - _env->GetPrimitiveArrayCritical(attrib_list_ref, (jboolean *)0); + _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0); attrib_list = attrib_list_base + offset; attrib_list_sentinel = false; for (int i = _remaining - 1; i >= 0; i--) { @@ -922,7 +922,7 @@ android_eglCreatePbufferFromClientBuffer exit: if (attrib_list_base) { - _env->ReleasePrimitiveArrayCritical(attrib_list_ref, attrib_list_base, + _env->ReleaseIntArrayElements(attrib_list_ref, attrib_list_base, JNI_ABORT); } if (_exception) { @@ -940,7 +940,6 @@ android_eglCreatePbufferFromClientBufferInt } return android_eglCreatePbufferFromClientBuffer(_env, _this, dpy, buftype, buffer, config, attrib_list_ref, offset); } - /* EGLBoolean eglSurfaceAttrib ( EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value ) */ static jboolean android_eglSurfaceAttrib @@ -1034,7 +1033,7 @@ android_eglCreateContext } _remaining = _env->GetArrayLength(attrib_list_ref) - offset; attrib_list_base = (EGLint *) - _env->GetPrimitiveArrayCritical(attrib_list_ref, (jboolean *)0); + _env->GetIntArrayElements(attrib_list_ref, (jboolean *)0); attrib_list = attrib_list_base + offset; attrib_list_sentinel = false; for (int i = _remaining - 1; i >= 0; i--) { @@ -1059,7 +1058,7 @@ android_eglCreateContext exit: if (attrib_list_base) { - _env->ReleasePrimitiveArrayCritical(attrib_list_ref, attrib_list_base, + _env->ReleaseIntArrayElements(attrib_list_ref, (jint*)attrib_list_base, JNI_ABORT); } if (_exception) { @@ -1165,7 +1164,7 @@ android_eglQueryContext goto exit; } value_base = (EGLint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; _returnValue = eglQueryContext( @@ -1177,7 +1176,7 @@ android_eglQueryContext exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, _exception ? JNI_ABORT: 0); } if (_exception) { diff --git a/core/jni/android_opengl_GLES10.cpp b/core/jni/android_opengl_GLES10.cpp index c9b68bf..dac98de 100644 --- a/core/jni/android_opengl_GLES10.cpp +++ b/core/jni/android_opengl_GLES10.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); @@ -515,7 +629,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); @@ -544,7 +658,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); @@ -637,7 +751,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( @@ -647,7 +761,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) { @@ -662,12 +776,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"; @@ -675,7 +789,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( @@ -685,7 +799,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); @@ -771,7 +885,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"; @@ -882,7 +996,7 @@ android_glFogfv__I_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glFogfv( @@ -892,7 +1006,7 @@ android_glFogfv__I_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -907,12 +1021,12 @@ android_glFogfv__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 *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_FOG_COLOR) @@ -931,7 +1045,7 @@ android_glFogfv__ILjava_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); } glFogfv( @@ -941,7 +1055,7 @@ android_glFogfv__ILjava_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); @@ -1000,7 +1114,7 @@ android_glFogxv__I_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glFogxv( @@ -1010,7 +1124,7 @@ android_glFogxv__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -1025,12 +1139,12 @@ android_glFogxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_FOG_COLOR) @@ -1049,7 +1163,7 @@ android_glFogxv__ILjava_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 = (GLfixed *) (_paramsBase + _bufferOffset); } glFogxv( @@ -1059,7 +1173,7 @@ android_glFogxv__ILjava_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); @@ -1134,7 +1248,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( @@ -1144,7 +1258,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) { @@ -1159,12 +1273,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"; @@ -1172,7 +1286,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( @@ -1182,7 +1296,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); @@ -1202,16 +1316,17 @@ android_glGetError__ 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); } - /* const GLubyte * glGetString ( GLenum name ) */ static jstring android_glGetString(JNIEnv* _env, jobject, jint name) { const char* chars = (const char*) glGetString((GLenum) name); @@ -1279,7 +1394,7 @@ android_glLightModelfv__I_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glLightModelfv( @@ -1289,7 +1404,7 @@ android_glLightModelfv__I_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -1304,12 +1419,12 @@ android_glLightModelfv__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 *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_LIGHT_MODEL_AMBIENT) @@ -1328,7 +1443,7 @@ android_glLightModelfv__ILjava_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); } glLightModelfv( @@ -1338,7 +1453,7 @@ android_glLightModelfv__ILjava_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); @@ -1397,7 +1512,7 @@ android_glLightModelxv__I_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glLightModelxv( @@ -1407,7 +1522,7 @@ android_glLightModelxv__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -1422,12 +1537,12 @@ android_glLightModelxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_LIGHT_MODEL_AMBIENT) @@ -1446,7 +1561,7 @@ android_glLightModelxv__ILjava_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 = (GLfixed *) (_paramsBase + _bufferOffset); } glLightModelxv( @@ -1456,7 +1571,7 @@ android_glLightModelxv__ILjava_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); @@ -1530,7 +1645,7 @@ android_glLightfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glLightfv( @@ -1541,7 +1656,7 @@ android_glLightfv__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -1556,12 +1671,12 @@ android_glLightfv__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_SPOT_DIRECTION) @@ -1594,7 +1709,7 @@ android_glLightfv__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); } glLightfv( @@ -1605,7 +1720,7 @@ android_glLightfv__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); @@ -1679,7 +1794,7 @@ android_glLightxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glLightxv( @@ -1690,7 +1805,7 @@ android_glLightxv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -1705,12 +1820,12 @@ android_glLightxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_SPOT_DIRECTION) @@ -1743,7 +1858,7 @@ android_glLightxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glLightxv( @@ -1754,7 +1869,7 @@ android_glLightxv__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); @@ -1811,7 +1926,7 @@ android_glLoadMatrixf___3FI } _remaining = _env->GetArrayLength(m_ref) - offset; m_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); + _env->GetFloatArrayElements(m_ref, (jboolean *)0); m = m_base + offset; glLoadMatrixf( @@ -1820,7 +1935,7 @@ android_glLoadMatrixf___3FI exit: if (m_base) { - _env->ReleasePrimitiveArrayCritical(m_ref, m_base, + _env->ReleaseFloatArrayElements(m_ref, (jfloat*)m_base, JNI_ABORT); } if (_exception) { @@ -1832,21 +1947,21 @@ exit: static void android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *m = (GLfloat *) 0; - m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); + m = (GLfloat *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { - char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _mBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); m = (GLfloat *) (_mBase + _bufferOffset); } glLoadMatrixf( (GLfloat *)m ); if (_array) { - releasePointer(_env, _array, m, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)m, JNI_ABORT); } } @@ -1875,7 +1990,7 @@ android_glLoadMatrixx___3II } _remaining = _env->GetArrayLength(m_ref) - offset; m_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); + _env->GetIntArrayElements(m_ref, (jboolean *)0); m = m_base + offset; glLoadMatrixx( @@ -1884,7 +1999,7 @@ android_glLoadMatrixx___3II exit: if (m_base) { - _env->ReleasePrimitiveArrayCritical(m_ref, m_base, + _env->ReleaseIntArrayElements(m_ref, (jint*)m_base, JNI_ABORT); } if (_exception) { @@ -1896,21 +2011,21 @@ exit: static void android_glLoadMatrixx__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; - m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); + m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { - char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); m = (GLfixed *) (_mBase + _bufferOffset); } glLoadMatrixx( (GLfixed *)m ); if (_array) { - releasePointer(_env, _array, m, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } } @@ -1988,7 +2103,7 @@ android_glMaterialfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glMaterialfv( @@ -1999,7 +2114,7 @@ android_glMaterialfv__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -2014,12 +2129,12 @@ android_glMaterialfv__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_AMBIENT) @@ -2050,7 +2165,7 @@ android_glMaterialfv__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); } glMaterialfv( @@ -2061,7 +2176,7 @@ android_glMaterialfv__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); @@ -2133,7 +2248,7 @@ android_glMaterialxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glMaterialxv( @@ -2144,7 +2259,7 @@ android_glMaterialxv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -2159,12 +2274,12 @@ android_glMaterialxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_AMBIENT) @@ -2195,7 +2310,7 @@ android_glMaterialxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glMaterialxv( @@ -2206,7 +2321,7 @@ android_glMaterialxv__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); @@ -2247,7 +2362,7 @@ android_glMultMatrixf___3FI } _remaining = _env->GetArrayLength(m_ref) - offset; m_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); + _env->GetFloatArrayElements(m_ref, (jboolean *)0); m = m_base + offset; glMultMatrixf( @@ -2256,7 +2371,7 @@ android_glMultMatrixf___3FI exit: if (m_base) { - _env->ReleasePrimitiveArrayCritical(m_ref, m_base, + _env->ReleaseFloatArrayElements(m_ref, (jfloat*)m_base, JNI_ABORT); } if (_exception) { @@ -2268,21 +2383,21 @@ exit: static void android_glMultMatrixf__Ljava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *m = (GLfloat *) 0; - m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); + m = (GLfloat *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { - char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _mBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); m = (GLfloat *) (_mBase + _bufferOffset); } glMultMatrixf( (GLfloat *)m ); if (_array) { - releasePointer(_env, _array, m, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)m, JNI_ABORT); } } @@ -2311,7 +2426,7 @@ android_glMultMatrixx___3II } _remaining = _env->GetArrayLength(m_ref) - offset; m_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); + _env->GetIntArrayElements(m_ref, (jboolean *)0); m = m_base + offset; glMultMatrixx( @@ -2320,7 +2435,7 @@ android_glMultMatrixx___3II exit: if (m_base) { - _env->ReleasePrimitiveArrayCritical(m_ref, m_base, + _env->ReleaseIntArrayElements(m_ref, (jint*)m_base, JNI_ABORT); } if (_exception) { @@ -2332,21 +2447,21 @@ exit: static void android_glMultMatrixx__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; - m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); + m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { - char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); m = (GLfixed *) (_mBase + _bufferOffset); } glMultMatrixx( (GLfixed *)m ); if (_array) { - releasePointer(_env, _array, m, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } } @@ -2520,7 +2635,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); @@ -2734,7 +2849,7 @@ android_glTexEnvfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexEnvfv( @@ -2745,7 +2860,7 @@ android_glTexEnvfv__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -2760,12 +2875,12 @@ android_glTexEnvfv__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_TEXTURE_ENV_COLOR) @@ -2784,7 +2899,7 @@ android_glTexEnvfv__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); } glTexEnvfv( @@ -2795,7 +2910,7 @@ android_glTexEnvfv__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); @@ -2855,7 +2970,7 @@ android_glTexEnvxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexEnvxv( @@ -2866,7 +2981,7 @@ android_glTexEnvxv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -2881,12 +2996,12 @@ android_glTexEnvxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_TEXTURE_ENV_COLOR) @@ -2905,7 +3020,7 @@ android_glTexEnvxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glTexEnvxv( @@ -2916,7 +3031,7 @@ android_glTexEnvxv__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); @@ -2933,7 +3048,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); @@ -2987,7 +3102,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); diff --git a/core/jni/android_opengl_GLES10Ext.cpp b/core/jni/android_opengl_GLES10Ext.cpp index 4f1eaa5..95be11b 100644 --- a/core/jni/android_opengl_GLES10Ext.cpp +++ b/core/jni/android_opengl_GLES10Ext.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); @@ -363,7 +477,7 @@ android_glQueryMatrixxOES___3II_3II goto exit; } mantissa_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(mantissa_ref, (jboolean *)0); + _env->GetIntArrayElements(mantissa_ref, (jboolean *)0); mantissa = mantissa_base + mantissaOffset; if (!exponent_ref) { @@ -386,7 +500,7 @@ android_glQueryMatrixxOES___3II_3II goto exit; } exponent_base = (GLint *) - _env->GetPrimitiveArrayCritical(exponent_ref, (jboolean *)0); + _env->GetIntArrayElements(exponent_ref, (jboolean *)0); exponent = exponent_base + exponentOffset; _returnValue = glQueryMatrixxOES( @@ -396,11 +510,11 @@ android_glQueryMatrixxOES___3II_3II exit: if (exponent_base) { - _env->ReleasePrimitiveArrayCritical(exponent_ref, exponent_base, + _env->ReleaseIntArrayElements(exponent_ref, (jint*)exponent_base, _exception ? JNI_ABORT: 0); } if (mantissa_base) { - _env->ReleasePrimitiveArrayCritical(mantissa_ref, mantissa_base, + _env->ReleaseIntArrayElements(mantissa_ref, (jint*)mantissa_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -416,9 +530,9 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _mantissaArray = (jarray) 0; + jintArray _mantissaArray = (jintArray) 0; jint _mantissaBufferOffset = (jint) 0; - jarray _exponentArray = (jarray) 0; + jintArray _exponentArray = (jintArray) 0; jint _exponentBufferOffset = (jint) 0; GLbitfield _returnValue = -1; jint _mantissaRemaining; @@ -426,14 +540,14 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 jint _exponentRemaining; GLint *exponent = (GLint *) 0; - mantissa = (GLfixed *)getPointer(_env, mantissa_buf, &_mantissaArray, &_mantissaRemaining, &_mantissaBufferOffset); + mantissa = (GLfixed *)getPointer(_env, mantissa_buf, (jarray*)&_mantissaArray, &_mantissaRemaining, &_mantissaBufferOffset); if (_mantissaRemaining < 16) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "remaining() < 16 < needed"; goto exit; } - exponent = (GLint *)getPointer(_env, exponent_buf, &_exponentArray, &_exponentRemaining, &_exponentBufferOffset); + exponent = (GLint *)getPointer(_env, exponent_buf, (jarray*)&_exponentArray, &_exponentRemaining, &_exponentBufferOffset); if (_exponentRemaining < 16) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -441,11 +555,11 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 goto exit; } if (mantissa == NULL) { - char * _mantissaBase = (char *)_env->GetPrimitiveArrayCritical(_mantissaArray, (jboolean *) 0); + char * _mantissaBase = (char *)_env->GetIntArrayElements(_mantissaArray, (jboolean *) 0); mantissa = (GLfixed *) (_mantissaBase + _mantissaBufferOffset); } if (exponent == NULL) { - char * _exponentBase = (char *)_env->GetPrimitiveArrayCritical(_exponentArray, (jboolean *) 0); + char * _exponentBase = (char *)_env->GetIntArrayElements(_exponentArray, (jboolean *) 0); exponent = (GLint *) (_exponentBase + _exponentBufferOffset); } _returnValue = glQueryMatrixxOES( @@ -455,10 +569,10 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 exit: if (_exponentArray) { - releasePointer(_env, _exponentArray, exponent, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_exponentArray, (jint*)exponent, _exception ? JNI_ABORT : 0); } if (_mantissaArray) { - releasePointer(_env, _mantissaArray, mantissa, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_mantissaArray, (jint*)mantissa, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); diff --git a/core/jni/android_opengl_GLES11.cpp b/core/jni/android_opengl_GLES11.cpp index 08c4740..6970a3c 100644 --- a/core/jni/android_opengl_GLES11.cpp +++ b/core/jni/android_opengl_GLES11.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); @@ -351,7 +465,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"; @@ -391,7 +505,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"; @@ -443,7 +557,7 @@ android_glClipPlanef__I_3FI } _remaining = _env->GetArrayLength(equation_ref) - offset; equation_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); + _env->GetFloatArrayElements(equation_ref, (jboolean *)0); equation = equation_base + offset; glClipPlanef( @@ -453,7 +567,7 @@ android_glClipPlanef__I_3FI exit: if (equation_base) { - _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, + _env->ReleaseFloatArrayElements(equation_ref, (jfloat*)equation_base, JNI_ABORT); } if (_exception) { @@ -468,14 +582,14 @@ android_glClipPlanef__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 *equation = (GLfloat *) 0; - equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset); + equation = (GLfloat *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (equation == NULL) { - char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _equationBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); equation = (GLfloat *) (_equationBase + _bufferOffset); } glClipPlanef( @@ -483,7 +597,7 @@ android_glClipPlanef__ILjava_nio_FloatBuffer_2 (GLfloat *)equation ); if (_array) { - releasePointer(_env, _array, equation, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)equation, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -515,7 +629,7 @@ android_glClipPlanex__I_3II } _remaining = _env->GetArrayLength(equation_ref) - offset; equation_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); + _env->GetIntArrayElements(equation_ref, (jboolean *)0); equation = equation_base + offset; glClipPlanex( @@ -525,7 +639,7 @@ android_glClipPlanex__I_3II exit: if (equation_base) { - _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, + _env->ReleaseIntArrayElements(equation_ref, (jint*)equation_base, JNI_ABORT); } if (_exception) { @@ -540,14 +654,14 @@ android_glClipPlanex__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; GLfixed *equation = (GLfixed *) 0; - equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset); + equation = (GLfixed *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (equation == NULL) { - char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _equationBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); equation = (GLfixed *) (_equationBase + _bufferOffset); } glClipPlanex( @@ -555,7 +669,7 @@ android_glClipPlanex__ILjava_nio_IntBuffer_2 (GLfixed *)equation ); if (_array) { - releasePointer(_env, _array, equation, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)equation, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -617,7 +731,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( @@ -627,7 +741,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) { @@ -642,12 +756,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"; @@ -655,7 +769,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( @@ -665,7 +779,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); @@ -721,7 +835,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( @@ -731,7 +845,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) { @@ -746,12 +860,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"; @@ -759,7 +873,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( @@ -769,7 +883,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); @@ -780,14 +894,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 @@ -820,7 +936,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( @@ -831,7 +947,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) { @@ -846,12 +962,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"; @@ -859,7 +975,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( @@ -870,7 +986,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); @@ -908,7 +1024,7 @@ android_glGetClipPlanef__I_3FI goto exit; } eqn_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); + _env->GetFloatArrayElements(eqn_ref, (jboolean *)0); eqn = eqn_base + offset; glGetClipPlanef( @@ -918,7 +1034,7 @@ android_glGetClipPlanef__I_3FI exit: if (eqn_base) { - _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, + _env->ReleaseFloatArrayElements(eqn_ref, (jfloat*)eqn_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -933,12 +1049,12 @@ android_glGetClipPlanef__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 *eqn = (GLfloat *) 0; - eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset); + eqn = (GLfloat *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -946,7 +1062,7 @@ android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 goto exit; } if (eqn == NULL) { - char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _eqnBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); eqn = (GLfloat *) (_eqnBase + _bufferOffset); } glGetClipPlanef( @@ -956,7 +1072,7 @@ android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)eqn, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -994,7 +1110,7 @@ android_glGetClipPlanex__I_3II goto exit; } eqn_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); + _env->GetIntArrayElements(eqn_ref, (jboolean *)0); eqn = eqn_base + offset; glGetClipPlanex( @@ -1004,7 +1120,7 @@ android_glGetClipPlanex__I_3II exit: if (eqn_base) { - _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, + _env->ReleaseIntArrayElements(eqn_ref, (jint*)eqn_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1019,12 +1135,12 @@ android_glGetClipPlanex__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; GLfixed *eqn = (GLfixed *) 0; - eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset); + eqn = (GLfixed *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -1032,7 +1148,7 @@ android_glGetClipPlanex__ILjava_nio_IntBuffer_2 goto exit; } if (eqn == NULL) { - char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _eqnBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); eqn = (GLfixed *) (_eqnBase + _bufferOffset); } glGetClipPlanex( @@ -1042,7 +1158,7 @@ android_glGetClipPlanex__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)eqn, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -1074,7 +1190,7 @@ android_glGetFixedv__I_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetFixedv( @@ -1084,7 +1200,7 @@ android_glGetFixedv__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1096,14 +1212,14 @@ exit: static void android_glGetFixedv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetFixedv( @@ -1111,7 +1227,7 @@ android_glGetFixedv__ILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -1119,14 +1235,16 @@ android_glGetFixedv__ILjava_nio_IntBuffer_2 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 glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */ static void @@ -1184,7 +1302,7 @@ android_glGetLightfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetLightfv( @@ -1195,7 +1313,7 @@ android_glGetLightfv__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) { @@ -1210,12 +1328,12 @@ android_glGetLightfv__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_SPOT_DIRECTION) @@ -1248,7 +1366,7 @@ android_glGetLightfv__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); } glGetLightfv( @@ -1259,7 +1377,7 @@ android_glGetLightfv__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); @@ -1322,7 +1440,7 @@ android_glGetLightxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetLightxv( @@ -1333,7 +1451,7 @@ android_glGetLightxv__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) { @@ -1348,12 +1466,12 @@ android_glGetLightxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_SPOT_DIRECTION) @@ -1386,7 +1504,7 @@ android_glGetLightxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetLightxv( @@ -1397,7 +1515,7 @@ android_glGetLightxv__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); @@ -1458,7 +1576,7 @@ android_glGetMaterialfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetMaterialfv( @@ -1469,7 +1587,7 @@ android_glGetMaterialfv__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) { @@ -1484,12 +1602,12 @@ android_glGetMaterialfv__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_AMBIENT) @@ -1520,7 +1638,7 @@ android_glGetMaterialfv__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); } glGetMaterialfv( @@ -1531,7 +1649,7 @@ android_glGetMaterialfv__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); @@ -1592,7 +1710,7 @@ android_glGetMaterialxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetMaterialxv( @@ -1603,7 +1721,7 @@ android_glGetMaterialxv__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) { @@ -1618,12 +1736,12 @@ android_glGetMaterialxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_AMBIENT) @@ -1654,7 +1772,7 @@ android_glGetMaterialxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetMaterialxv( @@ -1665,7 +1783,7 @@ android_glGetMaterialxv__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); @@ -1714,7 +1832,7 @@ android_glGetTexEnvfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexEnvfv( @@ -1725,7 +1843,7 @@ android_glGetTexEnvfv__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) { @@ -1740,12 +1858,12 @@ android_glGetTexEnvfv__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_TEXTURE_ENV_COLOR) @@ -1764,7 +1882,7 @@ android_glGetTexEnvfv__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); } glGetTexEnvfv( @@ -1775,7 +1893,7 @@ android_glGetTexEnvfv__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); @@ -1824,7 +1942,7 @@ android_glGetTexEnviv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexEnviv( @@ -1835,7 +1953,7 @@ android_glGetTexEnviv__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) { @@ -1850,12 +1968,12 @@ android_glGetTexEnviv__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_TEXTURE_ENV_COLOR) @@ -1874,7 +1992,7 @@ android_glGetTexEnviv__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); } glGetTexEnviv( @@ -1885,7 +2003,7 @@ android_glGetTexEnviv__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); @@ -1934,7 +2052,7 @@ android_glGetTexEnvxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexEnvxv( @@ -1945,7 +2063,7 @@ android_glGetTexEnvxv__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) { @@ -1960,12 +2078,12 @@ android_glGetTexEnvxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_TEXTURE_ENV_COLOR) @@ -1984,7 +2102,7 @@ android_glGetTexEnvxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetTexEnvxv( @@ -1995,7 +2113,7 @@ android_glGetTexEnvxv__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); @@ -2033,7 +2151,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( @@ -2044,7 +2162,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) { @@ -2059,12 +2177,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"; @@ -2072,7 +2190,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( @@ -2083,7 +2201,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); @@ -2121,7 +2239,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( @@ -2132,7 +2250,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) { @@ -2147,12 +2265,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"; @@ -2160,7 +2278,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( @@ -2171,7 +2289,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); @@ -2209,7 +2327,7 @@ android_glGetTexParameterxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexParameterxv( @@ -2220,7 +2338,7 @@ android_glGetTexParameterxv__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) { @@ -2235,12 +2353,12 @@ android_glGetTexParameterxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -2248,7 +2366,7 @@ android_glGetTexParameterxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetTexParameterxv( @@ -2259,7 +2377,7 @@ android_glGetTexParameterxv__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); @@ -2351,7 +2469,7 @@ android_glPointParameterfv__I_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glPointParameterfv( @@ -2361,7 +2479,7 @@ android_glPointParameterfv__I_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -2376,12 +2494,12 @@ android_glPointParameterfv__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 *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"; @@ -2389,7 +2507,7 @@ android_glPointParameterfv__ILjava_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); } glPointParameterfv( @@ -2399,7 +2517,7 @@ android_glPointParameterfv__ILjava_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); @@ -2447,7 +2565,7 @@ android_glPointParameterxv__I_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glPointParameterxv( @@ -2457,7 +2575,7 @@ android_glPointParameterxv__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -2472,12 +2590,12 @@ android_glPointParameterxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -2485,7 +2603,7 @@ android_glPointParameterxv__ILjava_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 = (GLfixed *) (_paramsBase + _bufferOffset); } glPointParameterxv( @@ -2495,7 +2613,7 @@ android_glPointParameterxv__ILjava_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); @@ -2590,7 +2708,7 @@ android_glTexEnviv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexEnviv( @@ -2601,7 +2719,7 @@ android_glTexEnviv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -2616,12 +2734,12 @@ android_glTexEnviv__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_TEXTURE_ENV_COLOR) @@ -2640,7 +2758,7 @@ android_glTexEnviv__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); } glTexEnviv( @@ -2651,7 +2769,7 @@ android_glTexEnviv__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); @@ -2689,7 +2807,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( @@ -2700,7 +2818,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) { @@ -2715,12 +2833,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"; @@ -2728,7 +2846,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( @@ -2739,7 +2857,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); @@ -2788,7 +2906,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( @@ -2799,7 +2917,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) { @@ -2814,12 +2932,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"; @@ -2827,7 +2945,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( @@ -2838,7 +2956,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); @@ -2876,7 +2994,7 @@ android_glTexParameterxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexParameterxv( @@ -2887,7 +3005,7 @@ android_glTexParameterxv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -2902,12 +3020,12 @@ android_glTexParameterxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -2915,7 +3033,7 @@ android_glTexParameterxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glTexParameterxv( @@ -2926,7 +3044,7 @@ android_glTexParameterxv__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); diff --git a/core/jni/android_opengl_GLES11Ext.cpp b/core/jni/android_opengl_GLES11Ext.cpp index 21e5670f..6422ff2 100644 --- a/core/jni/android_opengl_GLES11Ext.cpp +++ b/core/jni/android_opengl_GLES11Ext.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); @@ -429,7 +543,7 @@ android_glDrawTexsvOES___3SI goto exit; } coords_base = (GLshort *) - _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0); + _env->GetShortArrayElements(coords_ref, (jboolean *)0); coords = coords_base + offset; glDrawTexsvOES( @@ -438,7 +552,7 @@ android_glDrawTexsvOES___3SI exit: if (coords_base) { - _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base, + _env->ReleaseShortArrayElements(coords_ref, (jshort*)coords_base, JNI_ABORT); } if (_exception) { @@ -453,12 +567,12 @@ android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jshortArray _array = (jshortArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLshort *coords = (GLshort *) 0; - coords = (GLshort *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset); + coords = (GLshort *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -466,7 +580,7 @@ android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 goto exit; } if (coords == NULL) { - char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _coordsBase = (char *)_env->GetShortArrayElements(_array, (jboolean *) 0); coords = (GLshort *) (_coordsBase + _bufferOffset); } glDrawTexsvOES( @@ -475,7 +589,7 @@ android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 exit: if (_array) { - releasePointer(_env, _array, coords, JNI_FALSE); + _env->ReleaseShortArrayElements(_array, (jshort*)coords, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -513,7 +627,7 @@ android_glDrawTexivOES___3II goto exit; } coords_base = (GLint *) - _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0); + _env->GetIntArrayElements(coords_ref, (jboolean *)0); coords = coords_base + offset; glDrawTexivOES( @@ -522,7 +636,7 @@ android_glDrawTexivOES___3II exit: if (coords_base) { - _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base, + _env->ReleaseIntArrayElements(coords_ref, (jint*)coords_base, JNI_ABORT); } if (_exception) { @@ -537,12 +651,12 @@ android_glDrawTexivOES__Ljava_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 *coords = (GLint *) 0; - coords = (GLint *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset); + coords = (GLint *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -550,7 +664,7 @@ android_glDrawTexivOES__Ljava_nio_IntBuffer_2 goto exit; } if (coords == NULL) { - char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _coordsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); coords = (GLint *) (_coordsBase + _bufferOffset); } glDrawTexivOES( @@ -559,7 +673,7 @@ android_glDrawTexivOES__Ljava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, coords, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)coords, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -597,7 +711,7 @@ android_glDrawTexxvOES___3II goto exit; } coords_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0); + _env->GetIntArrayElements(coords_ref, (jboolean *)0); coords = coords_base + offset; glDrawTexxvOES( @@ -606,7 +720,7 @@ android_glDrawTexxvOES___3II exit: if (coords_base) { - _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base, + _env->ReleaseIntArrayElements(coords_ref, (jint*)coords_base, JNI_ABORT); } if (_exception) { @@ -621,12 +735,12 @@ android_glDrawTexxvOES__Ljava_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; GLfixed *coords = (GLfixed *) 0; - coords = (GLfixed *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset); + coords = (GLfixed *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -634,7 +748,7 @@ android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 goto exit; } if (coords == NULL) { - char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _coordsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); coords = (GLfixed *) (_coordsBase + _bufferOffset); } glDrawTexxvOES( @@ -643,7 +757,7 @@ android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, coords, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)coords, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -694,7 +808,7 @@ android_glDrawTexfvOES___3FI goto exit; } coords_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0); + _env->GetFloatArrayElements(coords_ref, (jboolean *)0); coords = coords_base + offset; glDrawTexfvOES( @@ -703,7 +817,7 @@ android_glDrawTexfvOES___3FI exit: if (coords_base) { - _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base, + _env->ReleaseFloatArrayElements(coords_ref, (jfloat*)coords_base, JNI_ABORT); } if (_exception) { @@ -718,12 +832,12 @@ android_glDrawTexfvOES__Ljava_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 *coords = (GLfloat *) 0; - coords = (GLfloat *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset); + coords = (GLfloat *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -731,7 +845,7 @@ android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 goto exit; } if (coords == NULL) { - char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _coordsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); coords = (GLfloat *) (_coordsBase + _bufferOffset); } glDrawTexfvOES( @@ -740,7 +854,7 @@ android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, coords, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)coords, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -756,7 +870,7 @@ android_glEGLImageTargetTexture2DOES__ILjava_nio_Buffer_2 jint _remaining; GLeglImageOES image = (GLeglImageOES) 0; - image = (GLeglImageOES)getPointer(_env, image_buf, &_array, &_remaining, &_bufferOffset); + image = (GLeglImageOES)getPointer(_env, image_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (image == NULL) { char * _imageBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); image = (GLeglImageOES) (_imageBase + _bufferOffset); @@ -779,7 +893,7 @@ android_glEGLImageTargetRenderbufferStorageOES__ILjava_nio_Buffer_2 jint _remaining; GLeglImageOES image = (GLeglImageOES) 0; - image = (GLeglImageOES)getPointer(_env, image_buf, &_array, &_remaining, &_bufferOffset); + image = (GLeglImageOES)getPointer(_env, image_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (image == NULL) { char * _imageBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); image = (GLeglImageOES) (_imageBase + _bufferOffset); @@ -849,7 +963,7 @@ android_glClipPlanexOES__I_3II } _remaining = _env->GetArrayLength(equation_ref) - offset; equation_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); + _env->GetIntArrayElements(equation_ref, (jboolean *)0); equation = equation_base + offset; glClipPlanexOES( @@ -859,7 +973,7 @@ android_glClipPlanexOES__I_3II exit: if (equation_base) { - _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, + _env->ReleaseIntArrayElements(equation_ref, (jint*)equation_base, JNI_ABORT); } if (_exception) { @@ -871,14 +985,14 @@ exit: static void android_glClipPlanexOES__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *equation = (GLfixed *) 0; - equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset); + equation = (GLfixed *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (equation == NULL) { - char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _equationBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); equation = (GLfixed *) (_equationBase + _bufferOffset); } glClipPlanexOES( @@ -886,7 +1000,7 @@ android_glClipPlanexOES__ILjava_nio_IntBuffer_2 (GLfixed *)equation ); if (_array) { - releasePointer(_env, _array, equation, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)equation, JNI_ABORT); } } @@ -947,7 +1061,7 @@ android_glFogxvOES__I_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glFogxvOES( @@ -957,7 +1071,7 @@ android_glFogxvOES__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -969,14 +1083,14 @@ exit: static void android_glFogxvOES__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glFogxvOES( @@ -984,7 +1098,7 @@ android_glFogxvOES__ILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -1033,7 +1147,7 @@ android_glGetClipPlanexOES__I_3II goto exit; } eqn_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); + _env->GetIntArrayElements(eqn_ref, (jboolean *)0); eqn = eqn_base + offset; glGetClipPlanexOES( @@ -1043,7 +1157,7 @@ android_glGetClipPlanexOES__I_3II exit: if (eqn_base) { - _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, + _env->ReleaseIntArrayElements(eqn_ref, (jint*)eqn_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1058,12 +1172,12 @@ android_glGetClipPlanexOES__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; GLfixed *eqn = (GLfixed *) 0; - eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset); + eqn = (GLfixed *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -1071,7 +1185,7 @@ android_glGetClipPlanexOES__ILjava_nio_IntBuffer_2 goto exit; } if (eqn == NULL) { - char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _eqnBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); eqn = (GLfixed *) (_eqnBase + _bufferOffset); } glGetClipPlanexOES( @@ -1081,7 +1195,7 @@ android_glGetClipPlanexOES__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)eqn, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -1113,7 +1227,7 @@ android_glGetFixedvOES__I_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetFixedvOES( @@ -1123,7 +1237,7 @@ android_glGetFixedvOES__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1135,14 +1249,14 @@ exit: static void android_glGetFixedvOES__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetFixedvOES( @@ -1150,7 +1264,7 @@ android_glGetFixedvOES__ILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -1179,7 +1293,7 @@ android_glGetLightxvOES__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetLightxvOES( @@ -1190,7 +1304,7 @@ android_glGetLightxvOES__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) { @@ -1202,14 +1316,14 @@ exit: static void android_glGetLightxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetLightxvOES( @@ -1218,7 +1332,7 @@ android_glGetLightxvOES__IILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -1247,7 +1361,7 @@ android_glGetMaterialxvOES__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetMaterialxvOES( @@ -1258,7 +1372,7 @@ android_glGetMaterialxvOES__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) { @@ -1270,14 +1384,14 @@ exit: static void android_glGetMaterialxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetMaterialxvOES( @@ -1286,7 +1400,7 @@ android_glGetMaterialxvOES__IILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -1315,7 +1429,7 @@ android_glGetTexEnvxvOES__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexEnvxvOES( @@ -1326,7 +1440,7 @@ android_glGetTexEnvxvOES__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) { @@ -1338,14 +1452,14 @@ exit: static void android_glGetTexEnvxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetTexEnvxvOES( @@ -1354,7 +1468,7 @@ android_glGetTexEnvxvOES__IILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -1383,7 +1497,7 @@ android_glGetTexParameterxvOES__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexParameterxvOES( @@ -1394,7 +1508,7 @@ android_glGetTexParameterxvOES__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) { @@ -1406,14 +1520,14 @@ exit: static void android_glGetTexParameterxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetTexParameterxvOES( @@ -1422,7 +1536,7 @@ android_glGetTexParameterxvOES__IILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -1461,7 +1575,7 @@ android_glLightModelxvOES__I_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glLightModelxvOES( @@ -1471,7 +1585,7 @@ android_glLightModelxvOES__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -1483,14 +1597,14 @@ exit: static void android_glLightModelxvOES__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glLightModelxvOES( @@ -1498,7 +1612,7 @@ android_glLightModelxvOES__ILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -1538,7 +1652,7 @@ android_glLightxvOES__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glLightxvOES( @@ -1549,7 +1663,7 @@ android_glLightxvOES__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -1561,14 +1675,14 @@ exit: static void android_glLightxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glLightxvOES( @@ -1577,7 +1691,7 @@ android_glLightxvOES__IILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -1615,7 +1729,7 @@ android_glLoadMatrixxOES___3II } _remaining = _env->GetArrayLength(m_ref) - offset; m_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); + _env->GetIntArrayElements(m_ref, (jboolean *)0); m = m_base + offset; glLoadMatrixxOES( @@ -1624,7 +1738,7 @@ android_glLoadMatrixxOES___3II exit: if (m_base) { - _env->ReleasePrimitiveArrayCritical(m_ref, m_base, + _env->ReleaseIntArrayElements(m_ref, (jint*)m_base, JNI_ABORT); } if (_exception) { @@ -1636,21 +1750,21 @@ exit: static void android_glLoadMatrixxOES__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; - m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); + m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { - char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); m = (GLfixed *) (_mBase + _bufferOffset); } glLoadMatrixxOES( (GLfixed *)m ); if (_array) { - releasePointer(_env, _array, m, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } } @@ -1690,7 +1804,7 @@ android_glMaterialxvOES__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glMaterialxvOES( @@ -1701,7 +1815,7 @@ android_glMaterialxvOES__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -1713,14 +1827,14 @@ exit: static void android_glMaterialxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glMaterialxvOES( @@ -1729,7 +1843,7 @@ android_glMaterialxvOES__IILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -1758,7 +1872,7 @@ android_glMultMatrixxOES___3II } _remaining = _env->GetArrayLength(m_ref) - offset; m_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); + _env->GetIntArrayElements(m_ref, (jboolean *)0); m = m_base + offset; glMultMatrixxOES( @@ -1767,7 +1881,7 @@ android_glMultMatrixxOES___3II exit: if (m_base) { - _env->ReleasePrimitiveArrayCritical(m_ref, m_base, + _env->ReleaseIntArrayElements(m_ref, (jint*)m_base, JNI_ABORT); } if (_exception) { @@ -1779,21 +1893,21 @@ exit: static void android_glMultMatrixxOES__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; - m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); + m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { - char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); m = (GLfixed *) (_mBase + _bufferOffset); } glMultMatrixxOES( (GLfixed *)m ); if (_array) { - releasePointer(_env, _array, m, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } } @@ -1870,7 +1984,7 @@ android_glPointParameterxvOES__I_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glPointParameterxvOES( @@ -1880,7 +1994,7 @@ android_glPointParameterxvOES__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -1892,14 +2006,14 @@ exit: static void android_glPointParameterxvOES__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glPointParameterxvOES( @@ -1907,7 +2021,7 @@ android_glPointParameterxvOES__ILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -1999,7 +2113,7 @@ android_glTexEnvxvOES__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexEnvxvOES( @@ -2010,7 +2124,7 @@ android_glTexEnvxvOES__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -2022,14 +2136,14 @@ exit: static void android_glTexEnvxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glTexEnvxvOES( @@ -2038,7 +2152,7 @@ android_glTexEnvxvOES__IILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -2078,7 +2192,7 @@ android_glTexParameterxvOES__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexParameterxvOES( @@ -2089,7 +2203,7 @@ android_glTexParameterxvOES__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -2101,14 +2215,14 @@ exit: static void android_glTexParameterxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glTexParameterxvOES( @@ -2117,7 +2231,7 @@ android_glTexParameterxvOES__IILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -2184,7 +2298,7 @@ android_glDeleteRenderbuffersOES__I_3II goto exit; } renderbuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(renderbuffers_ref, (jboolean *)0); renderbuffers = renderbuffers_base + offset; glDeleteRenderbuffersOES( @@ -2194,7 +2308,7 @@ android_glDeleteRenderbuffersOES__I_3II exit: if (renderbuffers_base) { - _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base, + _env->ReleaseIntArrayElements(renderbuffers_ref, (jint*)renderbuffers_base, JNI_ABORT); } if (_exception) { @@ -2209,12 +2323,12 @@ android_glDeleteRenderbuffersOES__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"; @@ -2222,7 +2336,7 @@ android_glDeleteRenderbuffersOES__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); } glDeleteRenderbuffersOES( @@ -2232,7 +2346,7 @@ android_glDeleteRenderbuffersOES__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); @@ -2270,7 +2384,7 @@ android_glGenRenderbuffersOES__I_3II goto exit; } renderbuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(renderbuffers_ref, (jboolean *)0); renderbuffers = renderbuffers_base + offset; glGenRenderbuffersOES( @@ -2280,7 +2394,7 @@ android_glGenRenderbuffersOES__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) { @@ -2295,12 +2409,12 @@ android_glGenRenderbuffersOES__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"; @@ -2308,7 +2422,7 @@ android_glGenRenderbuffersOES__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); } glGenRenderbuffersOES( @@ -2318,7 +2432,7 @@ android_glGenRenderbuffersOES__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); @@ -2368,7 +2482,7 @@ android_glGetRenderbufferParameterivOES__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetRenderbufferParameterivOES( @@ -2379,7 +2493,7 @@ android_glGetRenderbufferParameterivOES__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) { @@ -2394,12 +2508,12 @@ android_glGetRenderbufferParameterivOES__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"; @@ -2407,7 +2521,7 @@ android_glGetRenderbufferParameterivOES__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); } glGetRenderbufferParameterivOES( @@ -2418,7 +2532,7 @@ android_glGetRenderbufferParameterivOES__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); @@ -2477,7 +2591,7 @@ android_glDeleteFramebuffersOES__I_3II goto exit; } framebuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(framebuffers_ref, (jboolean *)0); framebuffers = framebuffers_base + offset; glDeleteFramebuffersOES( @@ -2487,7 +2601,7 @@ android_glDeleteFramebuffersOES__I_3II exit: if (framebuffers_base) { - _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base, + _env->ReleaseIntArrayElements(framebuffers_ref, (jint*)framebuffers_base, JNI_ABORT); } if (_exception) { @@ -2502,12 +2616,12 @@ android_glDeleteFramebuffersOES__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"; @@ -2515,7 +2629,7 @@ android_glDeleteFramebuffersOES__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); } glDeleteFramebuffersOES( @@ -2525,7 +2639,7 @@ android_glDeleteFramebuffersOES__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); @@ -2563,7 +2677,7 @@ android_glGenFramebuffersOES__I_3II goto exit; } framebuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(framebuffers_ref, (jboolean *)0); framebuffers = framebuffers_base + offset; glGenFramebuffersOES( @@ -2573,7 +2687,7 @@ android_glGenFramebuffersOES__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) { @@ -2588,12 +2702,12 @@ android_glGenFramebuffersOES__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"; @@ -2601,7 +2715,7 @@ android_glGenFramebuffersOES__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); } glGenFramebuffersOES( @@ -2611,7 +2725,7 @@ android_glGenFramebuffersOES__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); @@ -2685,7 +2799,7 @@ android_glGetFramebufferAttachmentParameterivOES__III_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetFramebufferAttachmentParameterivOES( @@ -2697,7 +2811,7 @@ android_glGetFramebufferAttachmentParameterivOES__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) { @@ -2712,12 +2826,12 @@ android_glGetFramebufferAttachmentParameterivOES__IIILjava_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"; @@ -2725,7 +2839,7 @@ android_glGetFramebufferAttachmentParameterivOES__IIILjava_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); } glGetFramebufferAttachmentParameterivOES( @@ -2737,7 +2851,7 @@ android_glGetFramebufferAttachmentParameterivOES__IIILjava_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); @@ -2880,7 +2994,7 @@ android_glClipPlanefOES__I_3FI } _remaining = _env->GetArrayLength(equation_ref) - offset; equation_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); + _env->GetFloatArrayElements(equation_ref, (jboolean *)0); equation = equation_base + offset; glClipPlanefOES( @@ -2890,7 +3004,7 @@ android_glClipPlanefOES__I_3FI exit: if (equation_base) { - _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, + _env->ReleaseFloatArrayElements(equation_ref, (jfloat*)equation_base, JNI_ABORT); } if (_exception) { @@ -2902,14 +3016,14 @@ exit: static void android_glClipPlanefOES__ILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) { - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *equation = (GLfloat *) 0; - equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset); + equation = (GLfloat *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (equation == NULL) { - char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _equationBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); equation = (GLfloat *) (_equationBase + _bufferOffset); } glClipPlanefOES( @@ -2917,7 +3031,7 @@ android_glClipPlanefOES__ILjava_nio_FloatBuffer_2 (GLfloat *)equation ); if (_array) { - releasePointer(_env, _array, equation, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)equation, JNI_ABORT); } } @@ -2952,7 +3066,7 @@ android_glGetClipPlanefOES__I_3FI goto exit; } eqn_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); + _env->GetFloatArrayElements(eqn_ref, (jboolean *)0); eqn = eqn_base + offset; glGetClipPlanefOES( @@ -2962,7 +3076,7 @@ android_glGetClipPlanefOES__I_3FI exit: if (eqn_base) { - _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, + _env->ReleaseFloatArrayElements(eqn_ref, (jfloat*)eqn_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2977,12 +3091,12 @@ android_glGetClipPlanefOES__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 *eqn = (GLfloat *) 0; - eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset); + eqn = (GLfloat *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -2990,7 +3104,7 @@ android_glGetClipPlanefOES__ILjava_nio_FloatBuffer_2 goto exit; } if (eqn == NULL) { - char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _eqnBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); eqn = (GLfloat *) (_eqnBase + _bufferOffset); } glGetClipPlanefOES( @@ -3000,7 +3114,7 @@ android_glGetClipPlanefOES__ILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)eqn, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -3052,7 +3166,7 @@ android_glTexGenfvOES__II_3FI } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexGenfvOES( @@ -3063,7 +3177,7 @@ android_glTexGenfvOES__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -3075,14 +3189,14 @@ exit: static void android_glTexGenfvOES__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) { - 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 (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glTexGenfvOES( @@ -3091,7 +3205,7 @@ android_glTexGenfvOES__IILjava_nio_FloatBuffer_2 (GLfloat *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, JNI_ABORT); } } @@ -3131,7 +3245,7 @@ android_glTexGenivOES__II_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; glTexGenivOES( @@ -3142,7 +3256,7 @@ android_glTexGenivOES__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -3154,14 +3268,14 @@ exit: static void android_glTexGenivOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint coord, 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); } glTexGenivOES( @@ -3170,7 +3284,7 @@ android_glTexGenivOES__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -3210,7 +3324,7 @@ android_glTexGenxvOES__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexGenxvOES( @@ -3221,7 +3335,7 @@ android_glTexGenxvOES__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -3233,14 +3347,14 @@ exit: static void android_glTexGenxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glTexGenxvOES( @@ -3249,7 +3363,7 @@ android_glTexGenxvOES__IILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -3278,7 +3392,7 @@ android_glGetTexGenfvOES__II_3FI } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexGenfvOES( @@ -3289,7 +3403,7 @@ android_glGetTexGenfvOES__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) { @@ -3301,14 +3415,14 @@ exit: static void android_glGetTexGenfvOES__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) { - 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 (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glGetTexGenfvOES( @@ -3317,7 +3431,7 @@ android_glGetTexGenfvOES__IILjava_nio_FloatBuffer_2 (GLfloat *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); } } @@ -3346,7 +3460,7 @@ android_glGetTexGenivOES__II_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; glGetTexGenivOES( @@ -3357,7 +3471,7 @@ android_glGetTexGenivOES__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) { @@ -3369,14 +3483,14 @@ exit: static void android_glGetTexGenivOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint coord, 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); } glGetTexGenivOES( @@ -3385,7 +3499,7 @@ android_glGetTexGenivOES__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -3414,7 +3528,7 @@ android_glGetTexGenxvOES__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexGenxvOES( @@ -3425,7 +3539,7 @@ android_glGetTexGenxvOES__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) { @@ -3437,14 +3551,14 @@ exit: static void android_glGetTexGenxvOES__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetTexGenxvOES( @@ -3453,7 +3567,7 @@ android_glGetTexGenxvOES__IILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } 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); diff --git a/core/jni/android_opengl_GLES30.cpp b/core/jni/android_opengl_GLES30.cpp index 226162d..1d92cd4 100644 --- a/core/jni/android_opengl_GLES30.cpp +++ b/core/jni/android_opengl_GLES30.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); @@ -346,7 +460,7 @@ android_glDrawRangeElements__IIIIILjava_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 (indices == NULL) { char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); indices = (GLvoid *) (_indicesBase + _bufferOffset); @@ -387,7 +501,7 @@ android_glTexImage3D__IIIIIIIIILjava_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); @@ -436,7 +550,7 @@ android_glTexSubImage3D__IIIIIIIIIILjava_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); @@ -504,7 +618,7 @@ android_glCompressedTexImage3D__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); @@ -551,7 +665,7 @@ android_glCompressedTexSubImage3D__IIIIIIIIIILjava_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); @@ -618,7 +732,7 @@ android_glGenQueries__I_3II } _remaining = _env->GetArrayLength(ids_ref) - offset; ids_base = (GLuint *) - _env->GetPrimitiveArrayCritical(ids_ref, (jboolean *)0); + _env->GetIntArrayElements(ids_ref, (jboolean *)0); ids = ids_base + offset; glGenQueries( @@ -628,7 +742,7 @@ android_glGenQueries__I_3II exit: if (ids_base) { - _env->ReleasePrimitiveArrayCritical(ids_ref, ids_base, + _env->ReleaseIntArrayElements(ids_ref, (jint*)ids_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -640,14 +754,14 @@ exit: static void android_glGenQueries__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject ids_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *ids = (GLuint *) 0; - ids = (GLuint *)getPointer(_env, ids_buf, &_array, &_remaining, &_bufferOffset); + ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (ids == NULL) { - char * _idsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); ids = (GLuint *) (_idsBase + _bufferOffset); } glGenQueries( @@ -655,7 +769,7 @@ android_glGenQueries__ILjava_nio_IntBuffer_2 (GLuint *)ids ); if (_array) { - releasePointer(_env, _array, ids, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)ids, 0); } } @@ -684,7 +798,7 @@ android_glDeleteQueries__I_3II } _remaining = _env->GetArrayLength(ids_ref) - offset; ids_base = (GLuint *) - _env->GetPrimitiveArrayCritical(ids_ref, (jboolean *)0); + _env->GetIntArrayElements(ids_ref, (jboolean *)0); ids = ids_base + offset; glDeleteQueries( @@ -694,7 +808,7 @@ android_glDeleteQueries__I_3II exit: if (ids_base) { - _env->ReleasePrimitiveArrayCritical(ids_ref, ids_base, + _env->ReleaseIntArrayElements(ids_ref, (jint*)ids_base, JNI_ABORT); } if (_exception) { @@ -706,14 +820,14 @@ exit: static void android_glDeleteQueries__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject ids_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *ids = (GLuint *) 0; - ids = (GLuint *)getPointer(_env, ids_buf, &_array, &_remaining, &_bufferOffset); + ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (ids == NULL) { - char * _idsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); ids = (GLuint *) (_idsBase + _bufferOffset); } glDeleteQueries( @@ -721,7 +835,7 @@ android_glDeleteQueries__ILjava_nio_IntBuffer_2 (GLuint *)ids ); if (_array) { - releasePointer(_env, _array, ids, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)ids, JNI_ABORT); } } @@ -780,7 +894,7 @@ android_glGetQueryiv__II_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; glGetQueryiv( @@ -791,7 +905,7 @@ android_glGetQueryiv__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) { @@ -803,14 +917,14 @@ exit: static void android_glGetQueryiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, 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); } glGetQueryiv( @@ -819,7 +933,7 @@ android_glGetQueryiv__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -848,7 +962,7 @@ android_glGetQueryObjectuiv__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLuint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetQueryObjectuiv( @@ -859,7 +973,7 @@ android_glGetQueryObjectuiv__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) { @@ -871,14 +985,14 @@ exit: static void android_glGetQueryObjectuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint id, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; - params = (GLuint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLuint *)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 = (GLuint *) (_paramsBase + _bufferOffset); } glGetQueryObjectuiv( @@ -887,7 +1001,7 @@ android_glGetQueryObjectuiv__IILjava_nio_IntBuffer_2 (GLuint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -938,7 +1052,7 @@ android_glDrawBuffers__I_3II } _remaining = _env->GetArrayLength(bufs_ref) - offset; bufs_base = (GLenum *) - _env->GetPrimitiveArrayCritical(bufs_ref, (jboolean *)0); + _env->GetIntArrayElements(bufs_ref, (jboolean *)0); bufs = bufs_base + offset; glDrawBuffers( @@ -948,7 +1062,7 @@ android_glDrawBuffers__I_3II exit: if (bufs_base) { - _env->ReleasePrimitiveArrayCritical(bufs_ref, bufs_base, + _env->ReleaseIntArrayElements(bufs_ref, (jint*)bufs_base, JNI_ABORT); } if (_exception) { @@ -960,14 +1074,14 @@ exit: static void android_glDrawBuffers__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject bufs_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLenum *bufs = (GLenum *) 0; - bufs = (GLenum *)getPointer(_env, bufs_buf, &_array, &_remaining, &_bufferOffset); + bufs = (GLenum *)getPointer(_env, bufs_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (bufs == NULL) { - char * _bufsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _bufsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); bufs = (GLenum *) (_bufsBase + _bufferOffset); } glDrawBuffers( @@ -975,7 +1089,7 @@ android_glDrawBuffers__ILjava_nio_IntBuffer_2 (GLenum *)bufs ); if (_array) { - releasePointer(_env, _array, bufs, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)bufs, JNI_ABORT); } } @@ -1004,7 +1118,7 @@ android_glUniformMatrix2x3fv__IIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniformMatrix2x3fv( @@ -1016,7 +1130,7 @@ android_glUniformMatrix2x3fv__IIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -1028,14 +1142,14 @@ exit: static void android_glUniformMatrix2x3fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glUniformMatrix2x3fv( @@ -1045,7 +1159,7 @@ android_glUniformMatrix2x3fv__IIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -1074,7 +1188,7 @@ android_glUniformMatrix3x2fv__IIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniformMatrix3x2fv( @@ -1086,7 +1200,7 @@ android_glUniformMatrix3x2fv__IIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -1098,14 +1212,14 @@ exit: static void android_glUniformMatrix3x2fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glUniformMatrix3x2fv( @@ -1115,7 +1229,7 @@ android_glUniformMatrix3x2fv__IIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -1144,7 +1258,7 @@ android_glUniformMatrix2x4fv__IIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniformMatrix2x4fv( @@ -1156,7 +1270,7 @@ android_glUniformMatrix2x4fv__IIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -1168,14 +1282,14 @@ exit: static void android_glUniformMatrix2x4fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glUniformMatrix2x4fv( @@ -1185,7 +1299,7 @@ android_glUniformMatrix2x4fv__IIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -1214,7 +1328,7 @@ android_glUniformMatrix4x2fv__IIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniformMatrix4x2fv( @@ -1226,7 +1340,7 @@ android_glUniformMatrix4x2fv__IIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -1238,14 +1352,14 @@ exit: static void android_glUniformMatrix4x2fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glUniformMatrix4x2fv( @@ -1255,7 +1369,7 @@ android_glUniformMatrix4x2fv__IIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -1284,7 +1398,7 @@ android_glUniformMatrix3x4fv__IIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniformMatrix3x4fv( @@ -1296,7 +1410,7 @@ android_glUniformMatrix3x4fv__IIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -1308,14 +1422,14 @@ exit: static void android_glUniformMatrix3x4fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glUniformMatrix3x4fv( @@ -1325,7 +1439,7 @@ android_glUniformMatrix3x4fv__IIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -1354,7 +1468,7 @@ android_glUniformMatrix4x3fv__IIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniformMatrix4x3fv( @@ -1366,7 +1480,7 @@ android_glUniformMatrix4x3fv__IIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -1378,14 +1492,14 @@ exit: static void android_glUniformMatrix4x3fv__IIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glUniformMatrix4x3fv( @@ -1395,7 +1509,7 @@ android_glUniformMatrix4x3fv__IIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -1501,7 +1615,7 @@ android_glDeleteVertexArrays__I_3II } _remaining = _env->GetArrayLength(arrays_ref) - offset; arrays_base = (GLuint *) - _env->GetPrimitiveArrayCritical(arrays_ref, (jboolean *)0); + _env->GetIntArrayElements(arrays_ref, (jboolean *)0); arrays = arrays_base + offset; glDeleteVertexArrays( @@ -1511,7 +1625,7 @@ android_glDeleteVertexArrays__I_3II exit: if (arrays_base) { - _env->ReleasePrimitiveArrayCritical(arrays_ref, arrays_base, + _env->ReleaseIntArrayElements(arrays_ref, (jint*)arrays_base, JNI_ABORT); } if (_exception) { @@ -1523,14 +1637,14 @@ exit: static void android_glDeleteVertexArrays__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject arrays_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *arrays = (GLuint *) 0; - arrays = (GLuint *)getPointer(_env, arrays_buf, &_array, &_remaining, &_bufferOffset); + arrays = (GLuint *)getPointer(_env, arrays_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (arrays == NULL) { - char * _arraysBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _arraysBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); arrays = (GLuint *) (_arraysBase + _bufferOffset); } glDeleteVertexArrays( @@ -1538,7 +1652,7 @@ android_glDeleteVertexArrays__ILjava_nio_IntBuffer_2 (GLuint *)arrays ); if (_array) { - releasePointer(_env, _array, arrays, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)arrays, JNI_ABORT); } } @@ -1567,7 +1681,7 @@ android_glGenVertexArrays__I_3II } _remaining = _env->GetArrayLength(arrays_ref) - offset; arrays_base = (GLuint *) - _env->GetPrimitiveArrayCritical(arrays_ref, (jboolean *)0); + _env->GetIntArrayElements(arrays_ref, (jboolean *)0); arrays = arrays_base + offset; glGenVertexArrays( @@ -1577,7 +1691,7 @@ android_glGenVertexArrays__I_3II exit: if (arrays_base) { - _env->ReleasePrimitiveArrayCritical(arrays_ref, arrays_base, + _env->ReleaseIntArrayElements(arrays_ref, (jint*)arrays_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1589,14 +1703,14 @@ exit: static void android_glGenVertexArrays__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject arrays_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *arrays = (GLuint *) 0; - arrays = (GLuint *)getPointer(_env, arrays_buf, &_array, &_remaining, &_bufferOffset); + arrays = (GLuint *)getPointer(_env, arrays_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (arrays == NULL) { - char * _arraysBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _arraysBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); arrays = (GLuint *) (_arraysBase + _bufferOffset); } glGenVertexArrays( @@ -1604,7 +1718,7 @@ android_glGenVertexArrays__ILjava_nio_IntBuffer_2 (GLuint *)arrays ); if (_array) { - releasePointer(_env, _array, arrays, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)arrays, 0); } } @@ -1644,7 +1758,7 @@ android_glGetIntegeri_v__II_3II } _remaining = _env->GetArrayLength(data_ref) - offset; data_base = (GLint *) - _env->GetPrimitiveArrayCritical(data_ref, (jboolean *)0); + _env->GetIntArrayElements(data_ref, (jboolean *)0); data = data_base + offset; glGetIntegeri_v( @@ -1655,7 +1769,7 @@ android_glGetIntegeri_v__II_3II exit: if (data_base) { - _env->ReleasePrimitiveArrayCritical(data_ref, data_base, + _env->ReleaseIntArrayElements(data_ref, (jint*)data_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1667,14 +1781,14 @@ exit: static void android_glGetIntegeri_v__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint index, jobject data_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *data = (GLint *) 0; - data = (GLint *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); + data = (GLint *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { - char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _dataBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); data = (GLint *) (_dataBase + _bufferOffset); } glGetIntegeri_v( @@ -1683,7 +1797,7 @@ android_glGetIntegeri_v__IILjava_nio_IntBuffer_2 (GLint *)data ); if (_array) { - releasePointer(_env, _array, data, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)data, 0); } } @@ -1810,7 +1924,7 @@ android_glGetTransformFeedbackVarying__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) { @@ -1827,7 +1941,7 @@ android_glGetTransformFeedbackVarying__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) { @@ -1844,7 +1958,7 @@ android_glGetTransformFeedbackVarying__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) { @@ -1861,7 +1975,7 @@ android_glGetTransformFeedbackVarying__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; glGetTransformFeedbackVarying( @@ -1876,19 +1990,19 @@ android_glGetTransformFeedbackVarying__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) { @@ -1900,11 +2014,11 @@ exit: static void android_glGetTransformFeedbackVarying__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; @@ -1913,19 +2027,19 @@ android_glGetTransformFeedbackVarying__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuff 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); } glGetTransformFeedbackVarying( @@ -1942,13 +2056,13 @@ android_glGetTransformFeedbackVarying__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuff (char *)static_cast<uintptr_t>(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); } } @@ -1993,7 +2107,7 @@ android_glGetTransformFeedbackVarying1 } _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) { @@ -2010,7 +2124,7 @@ android_glGetTransformFeedbackVarying1 } _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; glGetTransformFeedbackVarying( @@ -2024,11 +2138,11 @@ android_glGetTransformFeedbackVarying1 ); 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) { @@ -2051,9 +2165,9 @@ exit: static jstring android_glGetTransformFeedbackVarying2 (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; @@ -2076,14 +2190,14 @@ android_glGetTransformFeedbackVarying2 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); } glGetTransformFeedbackVarying( @@ -2097,10 +2211,10 @@ android_glGetTransformFeedbackVarying2 ); 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) { @@ -2171,7 +2285,7 @@ android_glGetVertexAttribIiv__II_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; glGetVertexAttribIiv( @@ -2182,7 +2296,7 @@ android_glGetVertexAttribIiv__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) { @@ -2194,14 +2308,14 @@ exit: static void android_glGetVertexAttribIiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint index, 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); } glGetVertexAttribIiv( @@ -2210,7 +2324,7 @@ android_glGetVertexAttribIiv__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -2239,7 +2353,7 @@ android_glGetVertexAttribIuiv__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLuint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetVertexAttribIuiv( @@ -2250,7 +2364,7 @@ android_glGetVertexAttribIuiv__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) { @@ -2262,14 +2376,14 @@ exit: static void android_glGetVertexAttribIuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint index, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; - params = (GLuint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLuint *)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 = (GLuint *) (_paramsBase + _bufferOffset); } glGetVertexAttribIuiv( @@ -2278,7 +2392,7 @@ android_glGetVertexAttribIuiv__IILjava_nio_IntBuffer_2 (GLuint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -2333,7 +2447,7 @@ android_glVertexAttribI4iv__I_3II } _remaining = _env->GetArrayLength(v_ref) - offset; v_base = (GLint *) - _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); + _env->GetIntArrayElements(v_ref, (jboolean *)0); v = v_base + offset; glVertexAttribI4iv( @@ -2343,7 +2457,7 @@ android_glVertexAttribI4iv__I_3II exit: if (v_base) { - _env->ReleasePrimitiveArrayCritical(v_ref, v_base, + _env->ReleaseIntArrayElements(v_ref, (jint*)v_base, JNI_ABORT); } if (_exception) { @@ -2355,14 +2469,14 @@ exit: static void android_glVertexAttribI4iv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint index, jobject v_buf) { - 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 (v == NULL) { - char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _vBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); v = (GLint *) (_vBase + _bufferOffset); } glVertexAttribI4iv( @@ -2370,7 +2484,7 @@ android_glVertexAttribI4iv__ILjava_nio_IntBuffer_2 (GLint *)v ); if (_array) { - releasePointer(_env, _array, v, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)v, JNI_ABORT); } } @@ -2399,7 +2513,7 @@ android_glVertexAttribI4uiv__I_3II } _remaining = _env->GetArrayLength(v_ref) - offset; v_base = (GLuint *) - _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); + _env->GetIntArrayElements(v_ref, (jboolean *)0); v = v_base + offset; glVertexAttribI4uiv( @@ -2409,7 +2523,7 @@ android_glVertexAttribI4uiv__I_3II exit: if (v_base) { - _env->ReleasePrimitiveArrayCritical(v_ref, v_base, + _env->ReleaseIntArrayElements(v_ref, (jint*)v_base, JNI_ABORT); } if (_exception) { @@ -2421,14 +2535,14 @@ exit: static void android_glVertexAttribI4uiv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint index, jobject v_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *v = (GLuint *) 0; - v = (GLuint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); + v = (GLuint *)getPointer(_env, v_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (v == NULL) { - char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _vBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); v = (GLuint *) (_vBase + _bufferOffset); } glVertexAttribI4uiv( @@ -2436,7 +2550,7 @@ android_glVertexAttribI4uiv__ILjava_nio_IntBuffer_2 (GLuint *)v ); if (_array) { - releasePointer(_env, _array, v, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)v, JNI_ABORT); } } @@ -2465,7 +2579,7 @@ android_glGetUniformuiv__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLuint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetUniformuiv( @@ -2476,7 +2590,7 @@ android_glGetUniformuiv__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) { @@ -2488,14 +2602,14 @@ exit: static void android_glGetUniformuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; - params = (GLuint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLuint *)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 = (GLuint *) (_paramsBase + _bufferOffset); } glGetUniformuiv( @@ -2504,7 +2618,7 @@ android_glGetUniformuiv__IILjava_nio_IntBuffer_2 (GLuint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -2613,7 +2727,7 @@ android_glUniform1uiv__II_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniform1uiv( @@ -2624,7 +2738,7 @@ android_glUniform1uiv__II_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -2636,14 +2750,14 @@ exit: static void android_glUniform1uiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; - value = (GLuint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glUniform1uiv( @@ -2652,7 +2766,7 @@ android_glUniform1uiv__IILjava_nio_IntBuffer_2 (GLuint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -2681,7 +2795,7 @@ android_glUniform2uiv__II_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniform2uiv( @@ -2692,7 +2806,7 @@ android_glUniform2uiv__II_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -2704,14 +2818,14 @@ exit: static void android_glUniform2uiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; - value = (GLuint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glUniform2uiv( @@ -2720,7 +2834,7 @@ android_glUniform2uiv__IILjava_nio_IntBuffer_2 (GLuint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -2749,7 +2863,7 @@ android_glUniform3uiv__II_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniform3uiv( @@ -2760,7 +2874,7 @@ android_glUniform3uiv__II_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -2772,14 +2886,14 @@ exit: static void android_glUniform3uiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; - value = (GLuint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glUniform3uiv( @@ -2788,7 +2902,7 @@ android_glUniform3uiv__IILjava_nio_IntBuffer_2 (GLuint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -2817,7 +2931,7 @@ android_glUniform4uiv__II_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glUniform4uiv( @@ -2828,7 +2942,7 @@ android_glUniform4uiv__II_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -2840,14 +2954,14 @@ exit: static void android_glUniform4uiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; - value = (GLuint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glUniform4uiv( @@ -2856,7 +2970,7 @@ android_glUniform4uiv__IILjava_nio_IntBuffer_2 (GLuint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -2885,7 +2999,7 @@ android_glClearBufferiv__II_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glClearBufferiv( @@ -2896,7 +3010,7 @@ android_glClearBufferiv__II_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -2908,14 +3022,14 @@ exit: static void android_glClearBufferiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint buffer, jint drawbuffer, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; - value = (GLint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLint *) (_valueBase + _bufferOffset); } glClearBufferiv( @@ -2924,7 +3038,7 @@ android_glClearBufferiv__IILjava_nio_IntBuffer_2 (GLint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -2953,7 +3067,7 @@ android_glClearBufferuiv__II_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glClearBufferuiv( @@ -2964,7 +3078,7 @@ android_glClearBufferuiv__II_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -2976,14 +3090,14 @@ exit: static void android_glClearBufferuiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint buffer, jint drawbuffer, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; - value = (GLuint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glClearBufferuiv( @@ -2992,7 +3106,7 @@ android_glClearBufferuiv__IILjava_nio_IntBuffer_2 (GLuint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -3021,7 +3135,7 @@ android_glClearBufferfv__II_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glClearBufferfv( @@ -3032,7 +3146,7 @@ android_glClearBufferfv__II_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -3044,14 +3158,14 @@ exit: static void android_glClearBufferfv__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint buffer, jint drawbuffer, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glClearBufferfv( @@ -3060,7 +3174,7 @@ android_glClearBufferfv__IILjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -3148,7 +3262,7 @@ android_glGetUniformIndices_array _exceptionMessage = "not enough space in uniformIndices"; goto exit; } - _indices_base = (GLuint*)_env->GetPrimitiveArrayCritical( + _indices_base = (GLuint*)_env->GetIntArrayElements( uniformIndices_ref, 0); _indices = _indices_base + uniformIndicesOffset; @@ -3156,8 +3270,8 @@ android_glGetUniformIndices_array exit: if (_indices_base) { - _env->ReleasePrimitiveArrayCritical(uniformIndices_ref, _indices_base, - _exception ? JNI_ABORT : 0); + _env->ReleaseIntArrayElements(uniformIndices_ref, (jint*)_indices_base, + _exception ? JNI_ABORT : 0); } for (_i = _count - 1; _i >= 0; _i--) { if (_names[_i]) { @@ -3184,7 +3298,7 @@ android_glGetUniformIndices_buffer jint _count = 0; jint _i; const char** _names = NULL; - jarray _uniformIndicesArray = (jarray)0; + jintArray _uniformIndicesArray = (jintArray)0; jint _uniformIndicesRemaining; jint _uniformIndicesOffset = 0; GLuint* _indices = NULL; @@ -3217,11 +3331,11 @@ android_glGetUniformIndices_buffer } _indices = (GLuint*)getPointer(_env, uniformIndices_buf, - &_uniformIndicesArray, &_uniformIndicesRemaining, + (jarray*)&_uniformIndicesArray, &_uniformIndicesRemaining, &_uniformIndicesOffset); if (!_indices) { - _indicesBase = (char*)_env->GetPrimitiveArrayCritical( - _uniformIndicesArray, 0); + _indicesBase = (char*)_env->GetIntArrayElements( + _uniformIndicesArray, 0); _indices = (GLuint*)(_indicesBase + _uniformIndicesOffset); } if (_uniformIndicesRemaining < _count) { @@ -3235,7 +3349,8 @@ android_glGetUniformIndices_buffer exit: if (_uniformIndicesArray) { - releasePointer(_env, _uniformIndicesArray, _indicesBase, JNI_TRUE); + releaseArrayPointer<jintArray, jint*, IntArrayReleaser>( + _env, _uniformIndicesArray, (jint*)_indicesBase, JNI_TRUE); } for (_i = _count - 1; _i >= 0; _i--) { if (_names[_i]) { @@ -3250,7 +3365,6 @@ exit: jniThrowException(_env, _exceptionType, _exceptionMessage); } } - /* void glGetActiveUniformsiv ( GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params ) */ static void android_glGetActiveUniformsiv__II_3III_3II @@ -3279,7 +3393,7 @@ android_glGetActiveUniformsiv__II_3III_3II } _uniformIndicesRemaining = _env->GetArrayLength(uniformIndices_ref) - uniformIndicesOffset; uniformIndices_base = (GLuint *) - _env->GetPrimitiveArrayCritical(uniformIndices_ref, (jboolean *)0); + _env->GetIntArrayElements(uniformIndices_ref, (jboolean *)0); uniformIndices = uniformIndices_base + uniformIndicesOffset; if (!params_ref) { @@ -3296,7 +3410,7 @@ android_glGetActiveUniformsiv__II_3III_3II } _paramsRemaining = _env->GetArrayLength(params_ref) - paramsOffset; params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + paramsOffset; glGetActiveUniformsiv( @@ -3309,11 +3423,11 @@ android_glGetActiveUniformsiv__II_3III_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (uniformIndices_base) { - _env->ReleasePrimitiveArrayCritical(uniformIndices_ref, uniformIndices_base, + _env->ReleaseIntArrayElements(uniformIndices_ref, (jint*)uniformIndices_base, JNI_ABORT); } if (_exception) { @@ -3325,23 +3439,23 @@ exit: static void android_glGetActiveUniformsiv__IILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint uniformCount, jobject uniformIndices_buf, jint pname, jobject params_buf) { - jarray _uniformIndicesArray = (jarray) 0; + jintArray _uniformIndicesArray = (jintArray) 0; jint _uniformIndicesBufferOffset = (jint) 0; - jarray _paramsArray = (jarray) 0; + jintArray _paramsArray = (jintArray) 0; jint _paramsBufferOffset = (jint) 0; jint _uniformIndicesRemaining; GLuint *uniformIndices = (GLuint *) 0; jint _paramsRemaining; GLint *params = (GLint *) 0; - uniformIndices = (GLuint *)getPointer(_env, uniformIndices_buf, &_uniformIndicesArray, &_uniformIndicesRemaining, &_uniformIndicesBufferOffset); - params = (GLint *)getPointer(_env, params_buf, &_paramsArray, &_paramsRemaining, &_paramsBufferOffset); + uniformIndices = (GLuint *)getPointer(_env, uniformIndices_buf, (jarray*)&_uniformIndicesArray, &_uniformIndicesRemaining, &_uniformIndicesBufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_paramsArray, &_paramsRemaining, &_paramsBufferOffset); if (uniformIndices == NULL) { - char * _uniformIndicesBase = (char *)_env->GetPrimitiveArrayCritical(_uniformIndicesArray, (jboolean *) 0); + char * _uniformIndicesBase = (char *)_env->GetIntArrayElements(_uniformIndicesArray, (jboolean *) 0); uniformIndices = (GLuint *) (_uniformIndicesBase + _uniformIndicesBufferOffset); } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_paramsArray, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_paramsArray, (jboolean *) 0); params = (GLint *) (_paramsBase + _paramsBufferOffset); } glGetActiveUniformsiv( @@ -3352,10 +3466,10 @@ android_glGetActiveUniformsiv__IILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2 (GLint *)params ); if (_paramsArray) { - releasePointer(_env, _paramsArray, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_paramsArray, (jint*)params, 0); } if (_uniformIndicesArray) { - releasePointer(_env, _uniformIndicesArray, uniformIndices, JNI_FALSE); + _env->ReleaseIntArrayElements(_uniformIndicesArray, (jint*)uniformIndices, JNI_ABORT); } } @@ -3418,7 +3532,7 @@ android_glGetActiveUniformBlockiv__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; glGetActiveUniformBlockiv( @@ -3430,7 +3544,7 @@ android_glGetActiveUniformBlockiv__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) { @@ -3442,14 +3556,14 @@ exit: static void android_glGetActiveUniformBlockiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint uniformBlockIndex, 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); } glGetActiveUniformBlockiv( @@ -3459,7 +3573,7 @@ android_glGetActiveUniformBlockiv__IIILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -3490,7 +3604,7 @@ android_glGetActiveUniformBlockName_III_3II_3BI goto exit; } _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; - _length_base = (GLsizei*)_env->GetPrimitiveArrayCritical( + _length_base = (GLsizei*)_env->GetIntArrayElements( length_ref, (jboolean*)0); _length = _length_base + lengthOffset; @@ -3507,7 +3621,7 @@ android_glGetActiveUniformBlockName_III_3II_3BI goto exit; } _nameRemaining = _env->GetArrayLength(name_ref) - nameOffset; - _name_base = (GLchar*)_env->GetPrimitiveArrayCritical( + _name_base = (GLchar*)_env->GetByteArrayElements( name_ref, (jboolean*)0); _name = _name_base + nameOffset; @@ -3521,11 +3635,11 @@ android_glGetActiveUniformBlockName_III_3II_3BI exit: if (_name_base) { - _env->ReleasePrimitiveArrayCritical(name_ref, _name_base, + _env->ReleaseByteArrayElements(name_ref, (jbyte*)_name_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) { @@ -3589,7 +3703,6 @@ android_glGetActiveUniformBlockName_II free(name); return result; } - /* void glUniformBlockBinding ( GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding ) */ static void android_glUniformBlockBinding__III @@ -3651,7 +3764,6 @@ android_glDrawElementsInstanced__IIIII (GLsizei)instanceCount ); } - /* GLsync glFenceSync ( GLenum condition, GLbitfield flags ) */ static jlong android_glFenceSync__II @@ -3733,7 +3845,7 @@ android_glGetInteger64v__I_3JI } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLint64 *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetLongArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetInteger64v( @@ -3743,7 +3855,7 @@ android_glGetInteger64v__I_3JI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseLongArrayElements(params_ref, (jlong*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3755,14 +3867,14 @@ exit: static void android_glGetInteger64v__ILjava_nio_LongBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jlongArray _array = (jlongArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint64 *params = (GLint64 *) 0; - params = (GLint64 *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint64 *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetLongArrayElements(_array, (jboolean *) 0); params = (GLint64 *) (_paramsBase + _bufferOffset); } glGetInteger64v( @@ -3770,7 +3882,7 @@ android_glGetInteger64v__ILjava_nio_LongBuffer_2 (GLint64 *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseLongArrayElements(_array, (jlong*)params, 0); } } @@ -3802,7 +3914,7 @@ android_glGetSynciv__JII_3II_3II } _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 (!values_ref) { @@ -3819,7 +3931,7 @@ android_glGetSynciv__JII_3II_3II } _valuesRemaining = _env->GetArrayLength(values_ref) - valuesOffset; values_base = (GLint *) - _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); + _env->GetIntArrayElements(values_ref, (jboolean *)0); values = values_base + valuesOffset; glGetSynciv( @@ -3832,11 +3944,11 @@ android_glGetSynciv__JII_3II_3II exit: if (values_base) { - _env->ReleasePrimitiveArrayCritical(values_ref, values_base, + _env->ReleaseIntArrayElements(values_ref, (jint*)values_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) { @@ -3848,23 +3960,23 @@ exit: static void android_glGetSynciv__JIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jlong sync, jint pname, jint bufSize, jobject length_buf, jobject values_buf) { - jarray _lengthArray = (jarray) 0; + jintArray _lengthArray = (jintArray) 0; jint _lengthBufferOffset = (jint) 0; - jarray _valuesArray = (jarray) 0; + jintArray _valuesArray = (jintArray) 0; jint _valuesBufferOffset = (jint) 0; jint _lengthRemaining; GLsizei *length = (GLsizei *) 0; jint _valuesRemaining; GLint *values = (GLint *) 0; - length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset); - values = (GLint *)getPointer(_env, values_buf, &_valuesArray, &_valuesRemaining, &_valuesBufferOffset); + length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset); + values = (GLint *)getPointer(_env, values_buf, (jarray*)&_valuesArray, &_valuesRemaining, &_valuesBufferOffset); if (length == NULL) { - char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean *) 0); + char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0); length = (GLsizei *) (_lengthBase + _lengthBufferOffset); } if (values == NULL) { - char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_valuesArray, (jboolean *) 0); + char * _valuesBase = (char *)_env->GetIntArrayElements(_valuesArray, (jboolean *) 0); values = (GLint *) (_valuesBase + _valuesBufferOffset); } glGetSynciv( @@ -3875,10 +3987,10 @@ android_glGetSynciv__JIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 (GLint *)values ); if (_valuesArray) { - releasePointer(_env, _valuesArray, values, JNI_TRUE); + _env->ReleaseIntArrayElements(_valuesArray, (jint*)values, 0); } if (_lengthArray) { - releasePointer(_env, _lengthArray, length, JNI_TRUE); + _env->ReleaseIntArrayElements(_lengthArray, (jint*)length, 0); } } @@ -3907,7 +4019,7 @@ android_glGetInteger64i_v__II_3JI } _remaining = _env->GetArrayLength(data_ref) - offset; data_base = (GLint64 *) - _env->GetPrimitiveArrayCritical(data_ref, (jboolean *)0); + _env->GetLongArrayElements(data_ref, (jboolean *)0); data = data_base + offset; glGetInteger64i_v( @@ -3918,7 +4030,7 @@ android_glGetInteger64i_v__II_3JI exit: if (data_base) { - _env->ReleasePrimitiveArrayCritical(data_ref, data_base, + _env->ReleaseLongArrayElements(data_ref, (jlong*)data_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3930,14 +4042,14 @@ exit: static void android_glGetInteger64i_v__IILjava_nio_LongBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint index, jobject data_buf) { - jarray _array = (jarray) 0; + jlongArray _array = (jlongArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint64 *data = (GLint64 *) 0; - data = (GLint64 *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); + data = (GLint64 *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { - char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _dataBase = (char *)_env->GetLongArrayElements(_array, (jboolean *) 0); data = (GLint64 *) (_dataBase + _bufferOffset); } glGetInteger64i_v( @@ -3946,7 +4058,7 @@ android_glGetInteger64i_v__IILjava_nio_LongBuffer_2 (GLint64 *)data ); if (_array) { - releasePointer(_env, _array, data, JNI_TRUE); + _env->ReleaseLongArrayElements(_array, (jlong*)data, 0); } } @@ -3975,7 +4087,7 @@ android_glGetBufferParameteri64v__II_3JI } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLint64 *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetLongArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetBufferParameteri64v( @@ -3986,7 +4098,7 @@ android_glGetBufferParameteri64v__II_3JI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseLongArrayElements(params_ref, (jlong*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -3998,14 +4110,14 @@ exit: static void android_glGetBufferParameteri64v__IILjava_nio_LongBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jlongArray _array = (jlongArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint64 *params = (GLint64 *) 0; - params = (GLint64 *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLint64 *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetLongArrayElements(_array, (jboolean *) 0); params = (GLint64 *) (_paramsBase + _bufferOffset); } glGetBufferParameteri64v( @@ -4014,7 +4126,7 @@ android_glGetBufferParameteri64v__IILjava_nio_LongBuffer_2 (GLint64 *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseLongArrayElements(_array, (jlong*)params, 0); } } @@ -4043,7 +4155,7 @@ android_glGenSamplers__I_3II } _remaining = _env->GetArrayLength(samplers_ref) - offset; samplers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(samplers_ref, (jboolean *)0); + _env->GetIntArrayElements(samplers_ref, (jboolean *)0); samplers = samplers_base + offset; glGenSamplers( @@ -4053,7 +4165,7 @@ android_glGenSamplers__I_3II exit: if (samplers_base) { - _env->ReleasePrimitiveArrayCritical(samplers_ref, samplers_base, + _env->ReleaseIntArrayElements(samplers_ref, (jint*)samplers_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -4065,14 +4177,14 @@ exit: static void android_glGenSamplers__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint count, jobject samplers_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *samplers = (GLuint *) 0; - samplers = (GLuint *)getPointer(_env, samplers_buf, &_array, &_remaining, &_bufferOffset); + samplers = (GLuint *)getPointer(_env, samplers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (samplers == NULL) { - char * _samplersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _samplersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); samplers = (GLuint *) (_samplersBase + _bufferOffset); } glGenSamplers( @@ -4080,7 +4192,7 @@ android_glGenSamplers__ILjava_nio_IntBuffer_2 (GLuint *)samplers ); if (_array) { - releasePointer(_env, _array, samplers, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)samplers, 0); } } @@ -4109,7 +4221,7 @@ android_glDeleteSamplers__I_3II } _remaining = _env->GetArrayLength(samplers_ref) - offset; samplers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(samplers_ref, (jboolean *)0); + _env->GetIntArrayElements(samplers_ref, (jboolean *)0); samplers = samplers_base + offset; glDeleteSamplers( @@ -4119,7 +4231,7 @@ android_glDeleteSamplers__I_3II exit: if (samplers_base) { - _env->ReleasePrimitiveArrayCritical(samplers_ref, samplers_base, + _env->ReleaseIntArrayElements(samplers_ref, (jint*)samplers_base, JNI_ABORT); } if (_exception) { @@ -4131,14 +4243,14 @@ exit: static void android_glDeleteSamplers__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint count, jobject samplers_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *samplers = (GLuint *) 0; - samplers = (GLuint *)getPointer(_env, samplers_buf, &_array, &_remaining, &_bufferOffset); + samplers = (GLuint *)getPointer(_env, samplers_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (samplers == NULL) { - char * _samplersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _samplersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); samplers = (GLuint *) (_samplersBase + _bufferOffset); } glDeleteSamplers( @@ -4146,7 +4258,7 @@ android_glDeleteSamplers__ILjava_nio_IntBuffer_2 (GLuint *)samplers ); if (_array) { - releasePointer(_env, _array, samplers, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)samplers, JNI_ABORT); } } @@ -4207,7 +4319,7 @@ android_glSamplerParameteriv__II_3II } _remaining = _env->GetArrayLength(param_ref) - offset; param_base = (GLint *) - _env->GetPrimitiveArrayCritical(param_ref, (jboolean *)0); + _env->GetIntArrayElements(param_ref, (jboolean *)0); param = param_base + offset; glSamplerParameteriv( @@ -4218,7 +4330,7 @@ android_glSamplerParameteriv__II_3II exit: if (param_base) { - _env->ReleasePrimitiveArrayCritical(param_ref, param_base, + _env->ReleaseIntArrayElements(param_ref, (jint*)param_base, JNI_ABORT); } if (_exception) { @@ -4230,14 +4342,14 @@ exit: static void android_glSamplerParameteriv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *param = (GLint *) 0; - param = (GLint *)getPointer(_env, param_buf, &_array, &_remaining, &_bufferOffset); + param = (GLint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (param == NULL) { - char * _paramBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); param = (GLint *) (_paramBase + _bufferOffset); } glSamplerParameteriv( @@ -4246,7 +4358,7 @@ android_glSamplerParameteriv__IILjava_nio_IntBuffer_2 (GLint *)param ); if (_array) { - releasePointer(_env, _array, param, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT); } } @@ -4286,7 +4398,7 @@ android_glSamplerParameterfv__II_3FI } _remaining = _env->GetArrayLength(param_ref) - offset; param_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(param_ref, (jboolean *)0); + _env->GetFloatArrayElements(param_ref, (jboolean *)0); param = param_base + offset; glSamplerParameterfv( @@ -4297,7 +4409,7 @@ android_glSamplerParameterfv__II_3FI exit: if (param_base) { - _env->ReleasePrimitiveArrayCritical(param_ref, param_base, + _env->ReleaseFloatArrayElements(param_ref, (jfloat*)param_base, JNI_ABORT); } if (_exception) { @@ -4309,14 +4421,14 @@ exit: static void android_glSamplerParameterfv__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) { - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *param = (GLfloat *) 0; - param = (GLfloat *)getPointer(_env, param_buf, &_array, &_remaining, &_bufferOffset); + param = (GLfloat *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (param == NULL) { - char * _paramBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); param = (GLfloat *) (_paramBase + _bufferOffset); } glSamplerParameterfv( @@ -4325,7 +4437,7 @@ android_glSamplerParameterfv__IILjava_nio_FloatBuffer_2 (GLfloat *)param ); if (_array) { - releasePointer(_env, _array, param, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)param, JNI_ABORT); } } @@ -4354,7 +4466,7 @@ android_glGetSamplerParameteriv__II_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; glGetSamplerParameteriv( @@ -4365,7 +4477,7 @@ android_glGetSamplerParameteriv__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) { @@ -4377,14 +4489,14 @@ exit: static void android_glGetSamplerParameteriv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, 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); } glGetSamplerParameteriv( @@ -4393,7 +4505,7 @@ android_glGetSamplerParameteriv__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -4422,7 +4534,7 @@ android_glGetSamplerParameterfv__II_3FI } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetSamplerParameterfv( @@ -4433,7 +4545,7 @@ android_glGetSamplerParameterfv__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) { @@ -4445,14 +4557,14 @@ exit: static void android_glGetSamplerParameterfv__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) { - 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 (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glGetSamplerParameterfv( @@ -4461,7 +4573,7 @@ android_glGetSamplerParameterfv__IILjava_nio_FloatBuffer_2 (GLfloat *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); } } @@ -4510,7 +4622,7 @@ android_glDeleteTransformFeedbacks__I_3II } _remaining = _env->GetArrayLength(ids_ref) - offset; ids_base = (GLuint *) - _env->GetPrimitiveArrayCritical(ids_ref, (jboolean *)0); + _env->GetIntArrayElements(ids_ref, (jboolean *)0); ids = ids_base + offset; glDeleteTransformFeedbacks( @@ -4520,7 +4632,7 @@ android_glDeleteTransformFeedbacks__I_3II exit: if (ids_base) { - _env->ReleasePrimitiveArrayCritical(ids_ref, ids_base, + _env->ReleaseIntArrayElements(ids_ref, (jint*)ids_base, JNI_ABORT); } if (_exception) { @@ -4532,14 +4644,14 @@ exit: static void android_glDeleteTransformFeedbacks__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject ids_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *ids = (GLuint *) 0; - ids = (GLuint *)getPointer(_env, ids_buf, &_array, &_remaining, &_bufferOffset); + ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (ids == NULL) { - char * _idsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); ids = (GLuint *) (_idsBase + _bufferOffset); } glDeleteTransformFeedbacks( @@ -4547,7 +4659,7 @@ android_glDeleteTransformFeedbacks__ILjava_nio_IntBuffer_2 (GLuint *)ids ); if (_array) { - releasePointer(_env, _array, ids, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)ids, JNI_ABORT); } } @@ -4576,7 +4688,7 @@ android_glGenTransformFeedbacks__I_3II } _remaining = _env->GetArrayLength(ids_ref) - offset; ids_base = (GLuint *) - _env->GetPrimitiveArrayCritical(ids_ref, (jboolean *)0); + _env->GetIntArrayElements(ids_ref, (jboolean *)0); ids = ids_base + offset; glGenTransformFeedbacks( @@ -4586,7 +4698,7 @@ android_glGenTransformFeedbacks__I_3II exit: if (ids_base) { - _env->ReleasePrimitiveArrayCritical(ids_ref, ids_base, + _env->ReleaseIntArrayElements(ids_ref, (jint*)ids_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -4598,14 +4710,14 @@ exit: static void android_glGenTransformFeedbacks__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject ids_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *ids = (GLuint *) 0; - ids = (GLuint *)getPointer(_env, ids_buf, &_array, &_remaining, &_bufferOffset); + ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (ids == NULL) { - char * _idsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); ids = (GLuint *) (_idsBase + _bufferOffset); } glGenTransformFeedbacks( @@ -4613,7 +4725,7 @@ android_glGenTransformFeedbacks__ILjava_nio_IntBuffer_2 (GLuint *)ids ); if (_array) { - releasePointer(_env, _array, ids, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)ids, 0); } } @@ -4674,7 +4786,7 @@ android_glGetProgramBinary__II_3II_3IILjava_nio_Buffer_2 } _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 (!binaryFormat_ref) { @@ -4691,10 +4803,10 @@ android_glGetProgramBinary__II_3II_3IILjava_nio_Buffer_2 } _binaryFormatRemaining = _env->GetArrayLength(binaryFormat_ref) - binaryFormatOffset; binaryFormat_base = (GLenum *) - _env->GetPrimitiveArrayCritical(binaryFormat_ref, (jboolean *)0); + _env->GetIntArrayElements(binaryFormat_ref, (jboolean *)0); binaryFormat = binaryFormat_base + binaryFormatOffset; - binary = (GLvoid *)getPointer(_env, binary_buf, &_array, &_binaryRemaining, &_bufferOffset); + binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_array, &_binaryRemaining, &_bufferOffset); if (binary == NULL) { char * _binaryBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); binary = (GLvoid *) (_binaryBase + _bufferOffset); @@ -4712,11 +4824,11 @@ exit: releasePointer(_env, _array, binary, _exception ? JNI_FALSE : JNI_TRUE); } if (binaryFormat_base) { - _env->ReleasePrimitiveArrayCritical(binaryFormat_ref, binaryFormat_base, + _env->ReleaseIntArrayElements(binaryFormat_ref, (jint*)binaryFormat_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) { @@ -4728,11 +4840,11 @@ exit: static void android_glGetProgramBinary__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_Buffer_2 (JNIEnv *_env, jobject _this, jint program, jint bufSize, jobject length_buf, jobject binaryFormat_buf, jobject binary_buf) { - jarray _lengthArray = (jarray) 0; + jintArray _lengthArray = (jintArray) 0; jint _lengthBufferOffset = (jint) 0; - jarray _binaryFormatArray = (jarray) 0; + jintArray _binaryFormatArray = (jintArray) 0; jint _binaryFormatBufferOffset = (jint) 0; - jarray _binaryArray = (jarray) 0; + jintArray _binaryArray = (jintArray) 0; jint _binaryBufferOffset = (jint) 0; jint _lengthRemaining; GLsizei *length = (GLsizei *) 0; @@ -4741,15 +4853,15 @@ android_glGetProgramBinary__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_ni jint _binaryRemaining; GLvoid *binary = (GLvoid *) 0; - length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset); - binaryFormat = (GLenum *)getPointer(_env, binaryFormat_buf, &_binaryFormatArray, &_binaryFormatRemaining, &_binaryFormatBufferOffset); - binary = (GLvoid *)getPointer(_env, binary_buf, &_binaryArray, &_binaryRemaining, &_binaryBufferOffset); + length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset); + binaryFormat = (GLenum *)getPointer(_env, binaryFormat_buf, (jarray*)&_binaryFormatArray, &_binaryFormatRemaining, &_binaryFormatBufferOffset); + binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_binaryArray, &_binaryRemaining, &_binaryBufferOffset); if (length == NULL) { - char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean *) 0); + char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0); length = (GLsizei *) (_lengthBase + _lengthBufferOffset); } if (binaryFormat == NULL) { - char * _binaryFormatBase = (char *)_env->GetPrimitiveArrayCritical(_binaryFormatArray, (jboolean *) 0); + char * _binaryFormatBase = (char *)_env->GetIntArrayElements(_binaryFormatArray, (jboolean *) 0); binaryFormat = (GLenum *) (_binaryFormatBase + _binaryFormatBufferOffset); } if (binary == NULL) { @@ -4767,10 +4879,10 @@ android_glGetProgramBinary__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_ni releasePointer(_env, _binaryArray, binary, JNI_TRUE); } if (_binaryFormatArray) { - releasePointer(_env, _binaryFormatArray, binaryFormat, JNI_TRUE); + _env->ReleaseIntArrayElements(_binaryFormatArray, (jint*)binaryFormat, 0); } if (_lengthArray) { - releasePointer(_env, _lengthArray, length, JNI_TRUE); + _env->ReleaseIntArrayElements(_lengthArray, (jint*)length, 0); } } @@ -4783,7 +4895,7 @@ android_glProgramBinary__IILjava_nio_Buffer_2I jint _remaining; GLvoid *binary = (GLvoid *) 0; - binary = (GLvoid *)getPointer(_env, binary_buf, &_array, &_remaining, &_bufferOffset); + binary = (GLvoid *)getPointer(_env, binary_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (binary == NULL) { char * _binaryBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); binary = (GLvoid *) (_binaryBase + _bufferOffset); @@ -4835,7 +4947,7 @@ android_glInvalidateFramebuffer__II_3II } _remaining = _env->GetArrayLength(attachments_ref) - offset; attachments_base = (GLenum *) - _env->GetPrimitiveArrayCritical(attachments_ref, (jboolean *)0); + _env->GetIntArrayElements(attachments_ref, (jboolean *)0); attachments = attachments_base + offset; glInvalidateFramebuffer( @@ -4846,7 +4958,7 @@ android_glInvalidateFramebuffer__II_3II exit: if (attachments_base) { - _env->ReleasePrimitiveArrayCritical(attachments_ref, attachments_base, + _env->ReleaseIntArrayElements(attachments_ref, (jint*)attachments_base, JNI_ABORT); } if (_exception) { @@ -4858,14 +4970,14 @@ exit: static void android_glInvalidateFramebuffer__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint numAttachments, jobject attachments_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLenum *attachments = (GLenum *) 0; - attachments = (GLenum *)getPointer(_env, attachments_buf, &_array, &_remaining, &_bufferOffset); + attachments = (GLenum *)getPointer(_env, attachments_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (attachments == NULL) { - char * _attachmentsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _attachmentsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); attachments = (GLenum *) (_attachmentsBase + _bufferOffset); } glInvalidateFramebuffer( @@ -4874,7 +4986,7 @@ android_glInvalidateFramebuffer__IILjava_nio_IntBuffer_2 (GLenum *)attachments ); if (_array) { - releasePointer(_env, _array, attachments, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)attachments, JNI_ABORT); } } @@ -4903,7 +5015,7 @@ android_glInvalidateSubFramebuffer__II_3IIIIII } _remaining = _env->GetArrayLength(attachments_ref) - offset; attachments_base = (GLenum *) - _env->GetPrimitiveArrayCritical(attachments_ref, (jboolean *)0); + _env->GetIntArrayElements(attachments_ref, (jboolean *)0); attachments = attachments_base + offset; glInvalidateSubFramebuffer( @@ -4918,7 +5030,7 @@ android_glInvalidateSubFramebuffer__II_3IIIIII exit: if (attachments_base) { - _env->ReleasePrimitiveArrayCritical(attachments_ref, attachments_base, + _env->ReleaseIntArrayElements(attachments_ref, (jint*)attachments_base, JNI_ABORT); } if (_exception) { @@ -4930,14 +5042,14 @@ exit: static void android_glInvalidateSubFramebuffer__IILjava_nio_IntBuffer_2IIII (JNIEnv *_env, jobject _this, jint target, jint numAttachments, jobject attachments_buf, jint x, jint y, jint width, jint height) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLenum *attachments = (GLenum *) 0; - attachments = (GLenum *)getPointer(_env, attachments_buf, &_array, &_remaining, &_bufferOffset); + attachments = (GLenum *)getPointer(_env, attachments_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (attachments == NULL) { - char * _attachmentsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _attachmentsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); attachments = (GLenum *) (_attachmentsBase + _bufferOffset); } glInvalidateSubFramebuffer( @@ -4950,7 +5062,7 @@ android_glInvalidateSubFramebuffer__IILjava_nio_IntBuffer_2IIII (GLsizei)height ); if (_array) { - releasePointer(_env, _array, attachments, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)attachments, JNI_ABORT); } } @@ -5006,7 +5118,7 @@ android_glGetInternalformativ__IIII_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; glGetInternalformativ( @@ -5019,7 +5131,7 @@ android_glGetInternalformativ__IIII_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -5031,14 +5143,14 @@ exit: static void android_glGetInternalformativ__IIIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint pname, jint bufSize, 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); } glGetInternalformativ( @@ -5049,7 +5161,7 @@ android_glGetInternalformativ__IIIILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } diff --git a/core/jni/android_opengl_GLES31.cpp b/core/jni/android_opengl_GLES31.cpp index e5ea950..92ecbe0 100644 --- a/core/jni/android_opengl_GLES31.cpp +++ b/core/jni/android_opengl_GLES31.cpp @@ -124,6 +124,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) { @@ -227,7 +337,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) { @@ -262,8 +373,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( @@ -273,8 +384,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); @@ -282,20 +393,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 @@ -308,7 +420,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( @@ -318,7 +431,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); @@ -410,7 +524,7 @@ android_glGetFramebufferParameteriv__II_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; glGetFramebufferParameteriv( @@ -421,7 +535,7 @@ android_glGetFramebufferParameteriv__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) { @@ -433,14 +547,14 @@ exit: static void android_glGetFramebufferParameteriv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, 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); } glGetFramebufferParameteriv( @@ -449,7 +563,7 @@ android_glGetFramebufferParameteriv__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -478,7 +592,7 @@ android_glGetProgramInterfaceiv__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; glGetProgramInterfaceiv( @@ -490,7 +604,7 @@ android_glGetProgramInterfaceiv__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) { @@ -502,14 +616,14 @@ exit: static void android_glGetProgramInterfaceiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint programInterface, 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); } glGetProgramInterfaceiv( @@ -519,7 +633,7 @@ android_glGetProgramInterfaceiv__IIILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -597,7 +711,7 @@ android_glGetProgramResourceiv__IIII_3III_3II_3II } _propsRemaining = _env->GetArrayLength(props_ref) - propsOffset; props_base = (GLenum *) - _env->GetPrimitiveArrayCritical(props_ref, (jboolean *)0); + _env->GetIntArrayElements(props_ref, (jboolean *)0); props = props_base + propsOffset; if (!length_ref) { @@ -614,7 +728,7 @@ android_glGetProgramResourceiv__IIII_3III_3II_3II } _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 (!params_ref) { @@ -631,7 +745,7 @@ android_glGetProgramResourceiv__IIII_3III_3II_3II } _paramsRemaining = _env->GetArrayLength(params_ref) - paramsOffset; params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + paramsOffset; glGetProgramResourceiv( @@ -647,15 +761,15 @@ android_glGetProgramResourceiv__IIII_3III_3II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_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 (props_base) { - _env->ReleasePrimitiveArrayCritical(props_ref, props_base, + _env->ReleaseIntArrayElements(props_ref, (jint*)props_base, JNI_ABORT); } if (_exception) { @@ -667,11 +781,11 @@ exit: static void android_glGetProgramResourceiv__IIIILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint programInterface, jint index, jint propCount, jobject props_buf, jint bufSize, jobject length_buf, jobject params_buf) { - jarray _propsArray = (jarray) 0; + jintArray _propsArray = (jintArray) 0; jint _propsBufferOffset = (jint) 0; - jarray _lengthArray = (jarray) 0; + jintArray _lengthArray = (jintArray) 0; jint _lengthBufferOffset = (jint) 0; - jarray _paramsArray = (jarray) 0; + jintArray _paramsArray = (jintArray) 0; jint _paramsBufferOffset = (jint) 0; jint _propsRemaining; GLenum *props = (GLenum *) 0; @@ -680,19 +794,19 @@ android_glGetProgramResourceiv__IIIILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2L jint _paramsRemaining; GLint *params = (GLint *) 0; - props = (GLenum *)getPointer(_env, props_buf, &_propsArray, &_propsRemaining, &_propsBufferOffset); - length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset); - params = (GLint *)getPointer(_env, params_buf, &_paramsArray, &_paramsRemaining, &_paramsBufferOffset); + props = (GLenum *)getPointer(_env, props_buf, (jarray*)&_propsArray, &_propsRemaining, &_propsBufferOffset); + length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset); + params = (GLint *)getPointer(_env, params_buf, (jarray*)&_paramsArray, &_paramsRemaining, &_paramsBufferOffset); if (props == NULL) { - char * _propsBase = (char *)_env->GetPrimitiveArrayCritical(_propsArray, (jboolean *) 0); + char * _propsBase = (char *)_env->GetIntArrayElements(_propsArray, (jboolean *) 0); props = (GLenum *) (_propsBase + _propsBufferOffset); } if (length == NULL) { - char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean *) 0); + char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0); length = (GLsizei *) (_lengthBase + _lengthBufferOffset); } if (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_paramsArray, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetIntArrayElements(_paramsArray, (jboolean *) 0); params = (GLint *) (_paramsBase + _paramsBufferOffset); } glGetProgramResourceiv( @@ -706,13 +820,13 @@ android_glGetProgramResourceiv__IIIILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2L (GLint *)params ); if (_paramsArray) { - releasePointer(_env, _paramsArray, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_paramsArray, (jint*)params, 0); } if (_lengthArray) { - releasePointer(_env, _lengthArray, length, JNI_TRUE); + _env->ReleaseIntArrayElements(_lengthArray, (jint*)length, 0); } if (_propsArray) { - releasePointer(_env, _propsArray, props, JNI_FALSE); + _env->ReleaseIntArrayElements(_propsArray, (jint*)props, JNI_ABORT); } } @@ -814,7 +928,7 @@ android_glDeleteProgramPipelines__I_3II } _remaining = _env->GetArrayLength(pipelines_ref) - offset; pipelines_base = (GLuint *) - _env->GetPrimitiveArrayCritical(pipelines_ref, (jboolean *)0); + _env->GetIntArrayElements(pipelines_ref, (jboolean *)0); pipelines = pipelines_base + offset; glDeleteProgramPipelines( @@ -824,7 +938,7 @@ android_glDeleteProgramPipelines__I_3II exit: if (pipelines_base) { - _env->ReleasePrimitiveArrayCritical(pipelines_ref, pipelines_base, + _env->ReleaseIntArrayElements(pipelines_ref, (jint*)pipelines_base, JNI_ABORT); } if (_exception) { @@ -836,14 +950,14 @@ exit: static void android_glDeleteProgramPipelines__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject pipelines_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *pipelines = (GLuint *) 0; - pipelines = (GLuint *)getPointer(_env, pipelines_buf, &_array, &_remaining, &_bufferOffset); + pipelines = (GLuint *)getPointer(_env, pipelines_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pipelines == NULL) { - char * _pipelinesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _pipelinesBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); pipelines = (GLuint *) (_pipelinesBase + _bufferOffset); } glDeleteProgramPipelines( @@ -851,7 +965,7 @@ android_glDeleteProgramPipelines__ILjava_nio_IntBuffer_2 (GLuint *)pipelines ); if (_array) { - releasePointer(_env, _array, pipelines, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)pipelines, JNI_ABORT); } } @@ -880,7 +994,7 @@ android_glGenProgramPipelines__I_3II } _remaining = _env->GetArrayLength(pipelines_ref) - offset; pipelines_base = (GLuint *) - _env->GetPrimitiveArrayCritical(pipelines_ref, (jboolean *)0); + _env->GetIntArrayElements(pipelines_ref, (jboolean *)0); pipelines = pipelines_base + offset; glGenProgramPipelines( @@ -890,7 +1004,7 @@ android_glGenProgramPipelines__I_3II exit: if (pipelines_base) { - _env->ReleasePrimitiveArrayCritical(pipelines_ref, pipelines_base, + _env->ReleaseIntArrayElements(pipelines_ref, (jint*)pipelines_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -902,14 +1016,14 @@ exit: static void android_glGenProgramPipelines__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject pipelines_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *pipelines = (GLuint *) 0; - pipelines = (GLuint *)getPointer(_env, pipelines_buf, &_array, &_remaining, &_bufferOffset); + pipelines = (GLuint *)getPointer(_env, pipelines_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pipelines == NULL) { - char * _pipelinesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _pipelinesBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); pipelines = (GLuint *) (_pipelinesBase + _bufferOffset); } glGenProgramPipelines( @@ -917,7 +1031,7 @@ android_glGenProgramPipelines__ILjava_nio_IntBuffer_2 (GLuint *)pipelines ); if (_array) { - releasePointer(_env, _array, pipelines, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)pipelines, 0); } } @@ -957,7 +1071,7 @@ android_glGetProgramPipelineiv__II_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; glGetProgramPipelineiv( @@ -968,7 +1082,7 @@ android_glGetProgramPipelineiv__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) { @@ -980,14 +1094,14 @@ exit: static void android_glGetProgramPipelineiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pipeline, 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); } glGetProgramPipelineiv( @@ -996,7 +1110,7 @@ android_glGetProgramPipelineiv__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -1175,7 +1289,7 @@ android_glProgramUniform1iv__III_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform1iv( @@ -1187,7 +1301,7 @@ android_glProgramUniform1iv__III_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -1199,14 +1313,14 @@ exit: static void android_glProgramUniform1iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; - value = (GLint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLint *) (_valueBase + _bufferOffset); } glProgramUniform1iv( @@ -1216,7 +1330,7 @@ android_glProgramUniform1iv__IIILjava_nio_IntBuffer_2 (GLint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -1245,7 +1359,7 @@ android_glProgramUniform2iv__III_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform2iv( @@ -1257,7 +1371,7 @@ android_glProgramUniform2iv__III_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -1269,14 +1383,14 @@ exit: static void android_glProgramUniform2iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; - value = (GLint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLint *) (_valueBase + _bufferOffset); } glProgramUniform2iv( @@ -1286,7 +1400,7 @@ android_glProgramUniform2iv__IIILjava_nio_IntBuffer_2 (GLint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -1315,7 +1429,7 @@ android_glProgramUniform3iv__III_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform3iv( @@ -1327,7 +1441,7 @@ android_glProgramUniform3iv__III_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -1339,14 +1453,14 @@ exit: static void android_glProgramUniform3iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; - value = (GLint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLint *) (_valueBase + _bufferOffset); } glProgramUniform3iv( @@ -1356,7 +1470,7 @@ android_glProgramUniform3iv__IIILjava_nio_IntBuffer_2 (GLint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -1385,7 +1499,7 @@ android_glProgramUniform4iv__III_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform4iv( @@ -1397,7 +1511,7 @@ android_glProgramUniform4iv__III_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -1409,14 +1523,14 @@ exit: static void android_glProgramUniform4iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; - value = (GLint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLint *) (_valueBase + _bufferOffset); } glProgramUniform4iv( @@ -1426,7 +1540,7 @@ android_glProgramUniform4iv__IIILjava_nio_IntBuffer_2 (GLint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -1455,7 +1569,7 @@ android_glProgramUniform1uiv__III_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform1uiv( @@ -1467,7 +1581,7 @@ android_glProgramUniform1uiv__III_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -1479,14 +1593,14 @@ exit: static void android_glProgramUniform1uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; - value = (GLuint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glProgramUniform1uiv( @@ -1496,7 +1610,7 @@ android_glProgramUniform1uiv__IIILjava_nio_IntBuffer_2 (GLuint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -1525,7 +1639,7 @@ android_glProgramUniform2uiv__III_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform2uiv( @@ -1537,7 +1651,7 @@ android_glProgramUniform2uiv__III_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -1549,14 +1663,14 @@ exit: static void android_glProgramUniform2uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; - value = (GLuint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glProgramUniform2uiv( @@ -1566,7 +1680,7 @@ android_glProgramUniform2uiv__IIILjava_nio_IntBuffer_2 (GLuint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -1595,7 +1709,7 @@ android_glProgramUniform3uiv__III_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform3uiv( @@ -1607,7 +1721,7 @@ android_glProgramUniform3uiv__III_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -1619,14 +1733,14 @@ exit: static void android_glProgramUniform3uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; - value = (GLuint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glProgramUniform3uiv( @@ -1636,7 +1750,7 @@ android_glProgramUniform3uiv__IIILjava_nio_IntBuffer_2 (GLuint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -1665,7 +1779,7 @@ android_glProgramUniform4uiv__III_3II } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform4uiv( @@ -1677,7 +1791,7 @@ android_glProgramUniform4uiv__III_3II exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { @@ -1689,14 +1803,14 @@ exit: static void android_glProgramUniform4uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; - value = (GLuint *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); + value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glProgramUniform4uiv( @@ -1706,7 +1820,7 @@ android_glProgramUniform4uiv__IIILjava_nio_IntBuffer_2 (GLuint *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } @@ -1735,7 +1849,7 @@ android_glProgramUniform1fv__III_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform1fv( @@ -1747,7 +1861,7 @@ android_glProgramUniform1fv__III_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -1759,14 +1873,14 @@ exit: static void android_glProgramUniform1fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniform1fv( @@ -1776,7 +1890,7 @@ android_glProgramUniform1fv__IIILjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -1805,7 +1919,7 @@ android_glProgramUniform2fv__III_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform2fv( @@ -1817,7 +1931,7 @@ android_glProgramUniform2fv__III_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -1829,14 +1943,14 @@ exit: static void android_glProgramUniform2fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniform2fv( @@ -1846,7 +1960,7 @@ android_glProgramUniform2fv__IIILjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -1875,7 +1989,7 @@ android_glProgramUniform3fv__III_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform3fv( @@ -1887,7 +2001,7 @@ android_glProgramUniform3fv__III_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -1899,14 +2013,14 @@ exit: static void android_glProgramUniform3fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniform3fv( @@ -1916,7 +2030,7 @@ android_glProgramUniform3fv__IIILjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -1945,7 +2059,7 @@ android_glProgramUniform4fv__III_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform4fv( @@ -1957,7 +2071,7 @@ android_glProgramUniform4fv__III_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -1969,14 +2083,14 @@ exit: static void android_glProgramUniform4fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniform4fv( @@ -1986,7 +2100,7 @@ android_glProgramUniform4fv__IIILjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -2015,7 +2129,7 @@ android_glProgramUniformMatrix2fv__IIIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix2fv( @@ -2028,7 +2142,7 @@ android_glProgramUniformMatrix2fv__IIIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -2040,14 +2154,14 @@ exit: static void android_glProgramUniformMatrix2fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix2fv( @@ -2058,7 +2172,7 @@ android_glProgramUniformMatrix2fv__IIIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -2087,7 +2201,7 @@ android_glProgramUniformMatrix3fv__IIIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix3fv( @@ -2100,7 +2214,7 @@ android_glProgramUniformMatrix3fv__IIIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -2112,14 +2226,14 @@ exit: static void android_glProgramUniformMatrix3fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix3fv( @@ -2130,7 +2244,7 @@ android_glProgramUniformMatrix3fv__IIIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -2159,7 +2273,7 @@ android_glProgramUniformMatrix4fv__IIIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix4fv( @@ -2172,7 +2286,7 @@ android_glProgramUniformMatrix4fv__IIIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -2184,14 +2298,14 @@ exit: static void android_glProgramUniformMatrix4fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix4fv( @@ -2202,7 +2316,7 @@ android_glProgramUniformMatrix4fv__IIIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -2231,7 +2345,7 @@ android_glProgramUniformMatrix2x3fv__IIIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix2x3fv( @@ -2244,7 +2358,7 @@ android_glProgramUniformMatrix2x3fv__IIIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -2256,14 +2370,14 @@ exit: static void android_glProgramUniformMatrix2x3fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix2x3fv( @@ -2274,7 +2388,7 @@ android_glProgramUniformMatrix2x3fv__IIIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -2303,7 +2417,7 @@ android_glProgramUniformMatrix3x2fv__IIIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix3x2fv( @@ -2316,7 +2430,7 @@ android_glProgramUniformMatrix3x2fv__IIIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -2328,14 +2442,14 @@ exit: static void android_glProgramUniformMatrix3x2fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix3x2fv( @@ -2346,7 +2460,7 @@ android_glProgramUniformMatrix3x2fv__IIIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -2375,7 +2489,7 @@ android_glProgramUniformMatrix2x4fv__IIIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix2x4fv( @@ -2388,7 +2502,7 @@ android_glProgramUniformMatrix2x4fv__IIIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -2400,14 +2514,14 @@ exit: static void android_glProgramUniformMatrix2x4fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix2x4fv( @@ -2418,7 +2532,7 @@ android_glProgramUniformMatrix2x4fv__IIIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -2447,7 +2561,7 @@ android_glProgramUniformMatrix4x2fv__IIIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix4x2fv( @@ -2460,7 +2574,7 @@ android_glProgramUniformMatrix4x2fv__IIIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -2472,14 +2586,14 @@ exit: static void android_glProgramUniformMatrix4x2fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix4x2fv( @@ -2490,7 +2604,7 @@ android_glProgramUniformMatrix4x2fv__IIIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -2519,7 +2633,7 @@ android_glProgramUniformMatrix3x4fv__IIIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix3x4fv( @@ -2532,7 +2646,7 @@ android_glProgramUniformMatrix3x4fv__IIIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -2544,14 +2658,14 @@ exit: static void android_glProgramUniformMatrix3x4fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix3x4fv( @@ -2562,7 +2676,7 @@ android_glProgramUniformMatrix3x4fv__IIIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -2591,7 +2705,7 @@ android_glProgramUniformMatrix4x3fv__IIIZ_3FI } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); + _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix4x3fv( @@ -2604,7 +2718,7 @@ android_glProgramUniformMatrix4x3fv__IIIZ_3FI exit: if (value_base) { - _env->ReleasePrimitiveArrayCritical(value_ref, value_base, + _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { @@ -2616,14 +2730,14 @@ exit: static void android_glProgramUniformMatrix4x3fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { - 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 (value == NULL) { - char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix4x3fv( @@ -2634,7 +2748,7 @@ android_glProgramUniformMatrix4x3fv__IIIZLjava_nio_FloatBuffer_2 (GLfloat *)value ); if (_array) { - releasePointer(_env, _array, value, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } @@ -2706,7 +2820,7 @@ android_glGetBooleani_v__II_3ZI } _remaining = _env->GetArrayLength(data_ref) - offset; data_base = (GLboolean *) - _env->GetPrimitiveArrayCritical(data_ref, (jboolean *)0); + _env->GetBooleanArrayElements(data_ref, (jboolean *)0); data = data_base + offset; glGetBooleani_v( @@ -2717,7 +2831,7 @@ android_glGetBooleani_v__II_3ZI exit: if (data_base) { - _env->ReleasePrimitiveArrayCritical(data_ref, data_base, + _env->ReleaseBooleanArrayElements(data_ref, (jboolean*)data_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2729,14 +2843,14 @@ exit: static void android_glGetBooleani_v__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint index, jobject data_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLboolean *data = (GLboolean *) 0; - data = (GLboolean *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); + data = (GLboolean *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { - char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _dataBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); data = (GLboolean *) (_dataBase + _bufferOffset); } glGetBooleani_v( @@ -2745,7 +2859,7 @@ android_glGetBooleani_v__IILjava_nio_IntBuffer_2 (GLboolean *)data ); if (_array) { - releasePointer(_env, _array, data, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)data, 0); } } @@ -2806,7 +2920,7 @@ android_glGetMultisamplefv__II_3FI } _remaining = _env->GetArrayLength(val_ref) - offset; val_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(val_ref, (jboolean *)0); + _env->GetFloatArrayElements(val_ref, (jboolean *)0); val = val_base + offset; glGetMultisamplefv( @@ -2817,7 +2931,7 @@ android_glGetMultisamplefv__II_3FI exit: if (val_base) { - _env->ReleasePrimitiveArrayCritical(val_ref, val_base, + _env->ReleaseFloatArrayElements(val_ref, (jfloat*)val_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2829,14 +2943,14 @@ exit: static void android_glGetMultisamplefv__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jint index, jobject val_buf) { - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *val = (GLfloat *) 0; - val = (GLfloat *)getPointer(_env, val_buf, &_array, &_remaining, &_bufferOffset); + val = (GLfloat *)getPointer(_env, val_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (val == NULL) { - char * _valBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _valBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); val = (GLfloat *) (_valBase + _bufferOffset); } glGetMultisamplefv( @@ -2845,7 +2959,7 @@ android_glGetMultisamplefv__IILjava_nio_FloatBuffer_2 (GLfloat *)val ); if (_array) { - releasePointer(_env, _array, val, JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)val, 0); } } @@ -2884,7 +2998,7 @@ android_glGetTexLevelParameteriv__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; glGetTexLevelParameteriv( @@ -2896,7 +3010,7 @@ android_glGetTexLevelParameteriv__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) { @@ -2908,14 +3022,14 @@ exit: static void android_glGetTexLevelParameteriv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, 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); } glGetTexLevelParameteriv( @@ -2925,7 +3039,7 @@ android_glGetTexLevelParameteriv__IIILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -2954,7 +3068,7 @@ android_glGetTexLevelParameterfv__III_3FI } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexLevelParameterfv( @@ -2966,7 +3080,7 @@ android_glGetTexLevelParameterfv__III_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -2978,14 +3092,14 @@ exit: static void android_glGetTexLevelParameterfv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint pname, jobject params_buf) { - 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 (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glGetTexLevelParameterfv( @@ -2995,7 +3109,7 @@ android_glGetTexLevelParameterfv__IIILjava_nio_FloatBuffer_2 (GLfloat *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); } } diff --git a/core/jni/android_opengl_GLES31Ext.cpp b/core/jni/android_opengl_GLES31Ext.cpp index 7317e9f..2856308 100644 --- a/core/jni/android_opengl_GLES31Ext.cpp +++ b/core/jni/android_opengl_GLES31Ext.cpp @@ -125,6 +125,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) { @@ -228,7 +338,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) { @@ -263,8 +374,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( @@ -274,8 +385,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); @@ -283,20 +394,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 @@ -309,7 +421,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( @@ -319,7 +432,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); @@ -359,7 +473,7 @@ android_glDebugMessageControlKHR__IIII_3IIZ } _remaining = _env->GetArrayLength(ids_ref) - offset; ids_base = (GLuint *) - _env->GetPrimitiveArrayCritical(ids_ref, (jboolean *)0); + _env->GetIntArrayElements(ids_ref, (jboolean *)0); ids = ids_base + offset; glDebugMessageControlKHR( @@ -373,7 +487,7 @@ android_glDebugMessageControlKHR__IIII_3IIZ exit: if (ids_base) { - _env->ReleasePrimitiveArrayCritical(ids_ref, ids_base, + _env->ReleaseIntArrayElements(ids_ref, (jint*)ids_base, JNI_ABORT); } if (_exception) { @@ -385,14 +499,14 @@ exit: static void android_glDebugMessageControlKHR__IIIILjava_nio_IntBuffer_2Z (JNIEnv *_env, jobject _this, jint source, jint type, jint severity, jint count, jobject ids_buf, jboolean enabled) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *ids = (GLuint *) 0; - ids = (GLuint *)getPointer(_env, ids_buf, &_array, &_remaining, &_bufferOffset); + ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (ids == NULL) { - char * _idsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); ids = (GLuint *) (_idsBase + _bufferOffset); } glDebugMessageControlKHR( @@ -404,7 +518,7 @@ android_glDebugMessageControlKHR__IIIILjava_nio_IntBuffer_2Z (GLboolean)enabled ); if (_array) { - releasePointer(_env, _array, ids, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)ids, JNI_ABORT); } } @@ -784,7 +898,7 @@ android_glTexParameterIivEXT__II_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; glTexParameterIivEXT( @@ -795,7 +909,7 @@ android_glTexParameterIivEXT__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -807,14 +921,14 @@ exit: static void android_glTexParameterIivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, 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); } glTexParameterIivEXT( @@ -823,7 +937,7 @@ android_glTexParameterIivEXT__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -852,7 +966,7 @@ android_glTexParameterIuivEXT__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLuint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexParameterIuivEXT( @@ -863,7 +977,7 @@ android_glTexParameterIuivEXT__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -875,14 +989,14 @@ exit: static void android_glTexParameterIuivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; - params = (GLuint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLuint *)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 = (GLuint *) (_paramsBase + _bufferOffset); } glTexParameterIuivEXT( @@ -891,7 +1005,7 @@ android_glTexParameterIuivEXT__IILjava_nio_IntBuffer_2 (GLuint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT); } } @@ -920,7 +1034,7 @@ android_glGetTexParameterIivEXT__II_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; glGetTexParameterIivEXT( @@ -931,7 +1045,7 @@ android_glGetTexParameterIivEXT__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) { @@ -943,14 +1057,14 @@ exit: static void android_glGetTexParameterIivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, 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); } glGetTexParameterIivEXT( @@ -959,7 +1073,7 @@ android_glGetTexParameterIivEXT__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -988,7 +1102,7 @@ android_glGetTexParameterIuivEXT__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLuint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexParameterIuivEXT( @@ -999,7 +1113,7 @@ android_glGetTexParameterIuivEXT__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) { @@ -1011,14 +1125,14 @@ exit: static void android_glGetTexParameterIuivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; - params = (GLuint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLuint *)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 = (GLuint *) (_paramsBase + _bufferOffset); } glGetTexParameterIuivEXT( @@ -1027,7 +1141,7 @@ android_glGetTexParameterIuivEXT__IILjava_nio_IntBuffer_2 (GLuint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -1056,7 +1170,7 @@ android_glSamplerParameterIivEXT__II_3II } _remaining = _env->GetArrayLength(param_ref) - offset; param_base = (GLint *) - _env->GetPrimitiveArrayCritical(param_ref, (jboolean *)0); + _env->GetIntArrayElements(param_ref, (jboolean *)0); param = param_base + offset; glSamplerParameterIivEXT( @@ -1067,7 +1181,7 @@ android_glSamplerParameterIivEXT__II_3II exit: if (param_base) { - _env->ReleasePrimitiveArrayCritical(param_ref, param_base, + _env->ReleaseIntArrayElements(param_ref, (jint*)param_base, JNI_ABORT); } if (_exception) { @@ -1079,14 +1193,14 @@ exit: static void android_glSamplerParameterIivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *param = (GLint *) 0; - param = (GLint *)getPointer(_env, param_buf, &_array, &_remaining, &_bufferOffset); + param = (GLint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (param == NULL) { - char * _paramBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); param = (GLint *) (_paramBase + _bufferOffset); } glSamplerParameterIivEXT( @@ -1095,7 +1209,7 @@ android_glSamplerParameterIivEXT__IILjava_nio_IntBuffer_2 (GLint *)param ); if (_array) { - releasePointer(_env, _array, param, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT); } } @@ -1124,7 +1238,7 @@ android_glSamplerParameterIuivEXT__II_3II } _remaining = _env->GetArrayLength(param_ref) - offset; param_base = (GLuint *) - _env->GetPrimitiveArrayCritical(param_ref, (jboolean *)0); + _env->GetIntArrayElements(param_ref, (jboolean *)0); param = param_base + offset; glSamplerParameterIuivEXT( @@ -1135,7 +1249,7 @@ android_glSamplerParameterIuivEXT__II_3II exit: if (param_base) { - _env->ReleasePrimitiveArrayCritical(param_ref, param_base, + _env->ReleaseIntArrayElements(param_ref, (jint*)param_base, JNI_ABORT); } if (_exception) { @@ -1147,14 +1261,14 @@ exit: static void android_glSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *param = (GLuint *) 0; - param = (GLuint *)getPointer(_env, param_buf, &_array, &_remaining, &_bufferOffset); + param = (GLuint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (param == NULL) { - char * _paramBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); param = (GLuint *) (_paramBase + _bufferOffset); } glSamplerParameterIuivEXT( @@ -1163,7 +1277,7 @@ android_glSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2 (GLuint *)param ); if (_array) { - releasePointer(_env, _array, param, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT); } } @@ -1192,7 +1306,7 @@ android_glGetSamplerParameterIivEXT__II_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; glGetSamplerParameterIivEXT( @@ -1203,7 +1317,7 @@ android_glGetSamplerParameterIivEXT__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) { @@ -1215,14 +1329,14 @@ exit: static void android_glGetSamplerParameterIivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, 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); } glGetSamplerParameterIivEXT( @@ -1231,7 +1345,7 @@ android_glGetSamplerParameterIivEXT__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -1260,7 +1374,7 @@ android_glGetSamplerParameterIuivEXT__II_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLuint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetSamplerParameterIuivEXT( @@ -1271,7 +1385,7 @@ android_glGetSamplerParameterIuivEXT__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) { @@ -1283,14 +1397,14 @@ exit: static void android_glGetSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *params = (GLuint *) 0; - params = (GLuint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLuint *)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 = (GLuint *) (_paramsBase + _bufferOffset); } glGetSamplerParameterIuivEXT( @@ -1299,7 +1413,7 @@ android_glGetSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2 (GLuint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } diff --git a/core/jni/com_google_android_gles_jni_GLImpl.cpp b/core/jni/com_google_android_gles_jni_GLImpl.cpp index c5f330e..f15f957 100644 --- a/core/jni/com_google_android_gles_jni_GLImpl.cpp +++ b/core/jni/com_google_android_gles_jni_GLImpl.cpp @@ -449,7 +449,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); @@ -478,7 +478,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); @@ -571,7 +571,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( @@ -581,7 +581,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) { @@ -596,12 +596,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"; @@ -609,7 +609,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( @@ -619,7 +619,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); @@ -705,7 +705,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"; @@ -830,7 +830,7 @@ android_glFogfv__I_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glFogfv( @@ -840,7 +840,7 @@ android_glFogfv__I_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -855,12 +855,12 @@ android_glFogfv__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 *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_FOG_MODE) @@ -893,7 +893,7 @@ android_glFogfv__ILjava_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); } glFogfv( @@ -903,7 +903,7 @@ android_glFogfv__ILjava_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); @@ -976,7 +976,7 @@ android_glFogxv__I_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glFogxv( @@ -986,7 +986,7 @@ android_glFogxv__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -1001,12 +1001,12 @@ android_glFogxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_FOG_MODE) @@ -1039,7 +1039,7 @@ android_glFogxv__ILjava_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 = (GLfixed *) (_paramsBase + _bufferOffset); } glFogxv( @@ -1049,7 +1049,7 @@ android_glFogxv__ILjava_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); @@ -1124,7 +1124,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( @@ -1134,7 +1134,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) { @@ -1149,12 +1149,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"; @@ -1162,7 +1162,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( @@ -1172,7 +1172,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); @@ -1550,7 +1550,7 @@ android_glGetIntegerv__I_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetIntegerv( @@ -1560,7 +1560,7 @@ android_glGetIntegerv__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -1575,12 +1575,12 @@ android_glGetIntegerv__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; 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_ALPHA_BITS) @@ -1919,7 +1919,7 @@ android_glGetIntegerv__ILjava_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); } glGetIntegerv( @@ -1929,7 +1929,7 @@ android_glGetIntegerv__ILjava_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); @@ -2008,7 +2008,7 @@ android_glLightModelfv__I_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glLightModelfv( @@ -2018,7 +2018,7 @@ android_glLightModelfv__I_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -2033,12 +2033,12 @@ android_glLightModelfv__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 *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_LIGHT_MODEL_TWO_SIDE) @@ -2062,7 +2062,7 @@ android_glLightModelfv__ILjava_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); } glLightModelfv( @@ -2072,7 +2072,7 @@ android_glLightModelfv__ILjava_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); @@ -2136,7 +2136,7 @@ android_glLightModelxv__I_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glLightModelxv( @@ -2146,7 +2146,7 @@ android_glLightModelxv__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -2161,12 +2161,12 @@ android_glLightModelxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_LIGHT_MODEL_TWO_SIDE) @@ -2190,7 +2190,7 @@ android_glLightModelxv__ILjava_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 = (GLfixed *) (_paramsBase + _bufferOffset); } glLightModelxv( @@ -2200,7 +2200,7 @@ android_glLightModelxv__ILjava_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); @@ -2291,7 +2291,7 @@ android_glLightfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glLightfv( @@ -2302,7 +2302,7 @@ android_glLightfv__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -2317,12 +2317,12 @@ android_glLightfv__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_SPOT_EXPONENT) @@ -2372,7 +2372,7 @@ android_glLightfv__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); } glLightfv( @@ -2383,7 +2383,7 @@ android_glLightfv__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); @@ -2474,7 +2474,7 @@ android_glLightxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glLightxv( @@ -2485,7 +2485,7 @@ android_glLightxv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -2500,12 +2500,12 @@ android_glLightxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_SPOT_EXPONENT) @@ -2555,7 +2555,7 @@ android_glLightxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glLightxv( @@ -2566,7 +2566,7 @@ android_glLightxv__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); @@ -2623,7 +2623,7 @@ android_glLoadMatrixf___3FI } _remaining = _env->GetArrayLength(m_ref) - offset; m_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); + _env->GetFloatArrayElements(m_ref, (jboolean *)0); m = m_base + offset; glLoadMatrixf( @@ -2632,7 +2632,7 @@ android_glLoadMatrixf___3FI exit: if (m_base) { - _env->ReleasePrimitiveArrayCritical(m_ref, m_base, + _env->ReleaseFloatArrayElements(m_ref, (jfloat*)m_base, JNI_ABORT); } if (_exception) { @@ -2644,21 +2644,21 @@ exit: static void android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *m = (GLfloat *) 0; - m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); + m = (GLfloat *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { - char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _mBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); m = (GLfloat *) (_mBase + _bufferOffset); } glLoadMatrixf( (GLfloat *)m ); if (_array) { - releasePointer(_env, _array, m, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)m, JNI_ABORT); } } @@ -2687,7 +2687,7 @@ android_glLoadMatrixx___3II } _remaining = _env->GetArrayLength(m_ref) - offset; m_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); + _env->GetIntArrayElements(m_ref, (jboolean *)0); m = m_base + offset; glLoadMatrixx( @@ -2696,7 +2696,7 @@ android_glLoadMatrixx___3II exit: if (m_base) { - _env->ReleasePrimitiveArrayCritical(m_ref, m_base, + _env->ReleaseIntArrayElements(m_ref, (jint*)m_base, JNI_ABORT); } if (_exception) { @@ -2708,21 +2708,21 @@ exit: static void android_glLoadMatrixx__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; - m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); + m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { - char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); m = (GLfixed *) (_mBase + _bufferOffset); } glLoadMatrixx( (GLfixed *)m ); if (_array) { - releasePointer(_env, _array, m, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } } @@ -2805,7 +2805,7 @@ android_glMaterialfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glMaterialfv( @@ -2816,7 +2816,7 @@ android_glMaterialfv__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -2831,12 +2831,12 @@ android_glMaterialfv__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_SHININESS) @@ -2872,7 +2872,7 @@ android_glMaterialfv__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); } glMaterialfv( @@ -2883,7 +2883,7 @@ android_glMaterialfv__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); @@ -2960,7 +2960,7 @@ android_glMaterialxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glMaterialxv( @@ -2971,7 +2971,7 @@ android_glMaterialxv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -2986,12 +2986,12 @@ android_glMaterialxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_SHININESS) @@ -3027,7 +3027,7 @@ android_glMaterialxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glMaterialxv( @@ -3038,7 +3038,7 @@ android_glMaterialxv__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); @@ -3079,7 +3079,7 @@ android_glMultMatrixf___3FI } _remaining = _env->GetArrayLength(m_ref) - offset; m_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); + _env->GetFloatArrayElements(m_ref, (jboolean *)0); m = m_base + offset; glMultMatrixf( @@ -3088,7 +3088,7 @@ android_glMultMatrixf___3FI exit: if (m_base) { - _env->ReleasePrimitiveArrayCritical(m_ref, m_base, + _env->ReleaseFloatArrayElements(m_ref, (jfloat*)m_base, JNI_ABORT); } if (_exception) { @@ -3100,21 +3100,21 @@ exit: static void android_glMultMatrixf__Ljava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *m = (GLfloat *) 0; - m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); + m = (GLfloat *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { - char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _mBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); m = (GLfloat *) (_mBase + _bufferOffset); } glMultMatrixf( (GLfloat *)m ); if (_array) { - releasePointer(_env, _array, m, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)m, JNI_ABORT); } } @@ -3143,7 +3143,7 @@ android_glMultMatrixx___3II } _remaining = _env->GetArrayLength(m_ref) - offset; m_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); + _env->GetIntArrayElements(m_ref, (jboolean *)0); m = m_base + offset; glMultMatrixx( @@ -3152,7 +3152,7 @@ android_glMultMatrixx___3II exit: if (m_base) { - _env->ReleasePrimitiveArrayCritical(m_ref, m_base, + _env->ReleaseIntArrayElements(m_ref, (jint*)m_base, JNI_ABORT); } if (_exception) { @@ -3164,21 +3164,21 @@ exit: static void android_glMultMatrixx__Ljava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jobject m_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *m = (GLfixed *) 0; - m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); + m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (m == NULL) { - char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); m = (GLfixed *) (_mBase + _bufferOffset); } glMultMatrixx( (GLfixed *)m ); if (_array) { - releasePointer(_env, _array, m, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT); } } @@ -3352,7 +3352,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); @@ -3577,7 +3577,7 @@ android_glTexEnvfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexEnvfv( @@ -3588,7 +3588,7 @@ android_glTexEnvfv__II_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -3603,12 +3603,12 @@ android_glTexEnvfv__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_TEXTURE_ENV_MODE) @@ -3638,7 +3638,7 @@ android_glTexEnvfv__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); } glTexEnvfv( @@ -3649,7 +3649,7 @@ android_glTexEnvfv__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); @@ -3720,7 +3720,7 @@ android_glTexEnvxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexEnvxv( @@ -3731,7 +3731,7 @@ android_glTexEnvxv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -3746,12 +3746,12 @@ android_glTexEnvxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_TEXTURE_ENV_MODE) @@ -3781,7 +3781,7 @@ android_glTexEnvxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glTexEnvxv( @@ -3792,7 +3792,7 @@ android_glTexEnvxv__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); @@ -3809,7 +3809,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); @@ -3863,7 +3863,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); @@ -3978,7 +3978,7 @@ android_glQueryMatrixxOES___3II_3II goto exit; } mantissa_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(mantissa_ref, (jboolean *)0); + _env->GetIntArrayElements(mantissa_ref, (jboolean *)0); mantissa = mantissa_base + mantissaOffset; if (!exponent_ref) { @@ -4001,7 +4001,7 @@ android_glQueryMatrixxOES___3II_3II goto exit; } exponent_base = (GLint *) - _env->GetPrimitiveArrayCritical(exponent_ref, (jboolean *)0); + _env->GetIntArrayElements(exponent_ref, (jboolean *)0); exponent = exponent_base + exponentOffset; _returnValue = glQueryMatrixxOES( @@ -4011,11 +4011,11 @@ android_glQueryMatrixxOES___3II_3II exit: if (exponent_base) { - _env->ReleasePrimitiveArrayCritical(exponent_ref, exponent_base, + _env->ReleaseIntArrayElements(exponent_ref, (jint*)exponent_base, _exception ? JNI_ABORT: 0); } if (mantissa_base) { - _env->ReleasePrimitiveArrayCritical(mantissa_ref, mantissa_base, + _env->ReleaseIntArrayElements(mantissa_ref, (jint*)mantissa_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -4031,9 +4031,9 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _mantissaArray = (jarray) 0; + jintArray _mantissaArray = (jintArray) 0; jint _mantissaBufferOffset = (jint) 0; - jarray _exponentArray = (jarray) 0; + jintArray _exponentArray = (jintArray) 0; jint _exponentBufferOffset = (jint) 0; GLbitfield _returnValue = -1; jint _mantissaRemaining; @@ -4041,14 +4041,14 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 jint _exponentRemaining; GLint *exponent = (GLint *) 0; - mantissa = (GLfixed *)getPointer(_env, mantissa_buf, &_mantissaArray, &_mantissaRemaining, &_mantissaBufferOffset); + mantissa = (GLfixed *)getPointer(_env, mantissa_buf, (jarray*)&_mantissaArray, &_mantissaRemaining, &_mantissaBufferOffset); if (_mantissaRemaining < 16) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "remaining() < 16 < needed"; goto exit; } - exponent = (GLint *)getPointer(_env, exponent_buf, &_exponentArray, &_exponentRemaining, &_exponentBufferOffset); + exponent = (GLint *)getPointer(_env, exponent_buf, (jarray*)&_exponentArray, &_exponentRemaining, &_exponentBufferOffset); if (_exponentRemaining < 16) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4056,11 +4056,11 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 goto exit; } if (mantissa == NULL) { - char * _mantissaBase = (char *)_env->GetPrimitiveArrayCritical(_mantissaArray, (jboolean *) 0); + char * _mantissaBase = (char *)_env->GetIntArrayElements(_mantissaArray, (jboolean *) 0); mantissa = (GLfixed *) (_mantissaBase + _mantissaBufferOffset); } if (exponent == NULL) { - char * _exponentBase = (char *)_env->GetPrimitiveArrayCritical(_exponentArray, (jboolean *) 0); + char * _exponentBase = (char *)_env->GetIntArrayElements(_exponentArray, (jboolean *) 0); exponent = (GLint *) (_exponentBase + _exponentBufferOffset); } _returnValue = glQueryMatrixxOES( @@ -4070,10 +4070,10 @@ android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 exit: if (_exponentArray) { - releasePointer(_env, _exponentArray, exponent, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_exponentArray, (jint*)exponent, _exception ? JNI_ABORT : 0); } if (_mantissaArray) { - releasePointer(_env, _mantissaArray, mantissa, _exception ? JNI_FALSE : JNI_TRUE); + _env->ReleaseIntArrayElements(_mantissaArray, (jint*)mantissa, _exception ? JNI_ABORT : 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -4104,7 +4104,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"; @@ -4144,7 +4144,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"; @@ -4202,7 +4202,7 @@ android_glClipPlanef__I_3FI goto exit; } equation_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); + _env->GetFloatArrayElements(equation_ref, (jboolean *)0); equation = equation_base + offset; glClipPlanef( @@ -4212,7 +4212,7 @@ android_glClipPlanef__I_3FI exit: if (equation_base) { - _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, + _env->ReleaseFloatArrayElements(equation_ref, (jfloat*)equation_base, JNI_ABORT); } if (_exception) { @@ -4227,12 +4227,12 @@ android_glClipPlanef__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 *equation = (GLfloat *) 0; - equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset); + equation = (GLfloat *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4240,7 +4240,7 @@ android_glClipPlanef__ILjava_nio_FloatBuffer_2 goto exit; } if (equation == NULL) { - char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _equationBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); equation = (GLfloat *) (_equationBase + _bufferOffset); } glClipPlanef( @@ -4250,7 +4250,7 @@ android_glClipPlanef__ILjava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, equation, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)equation, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -4288,7 +4288,7 @@ android_glClipPlanex__I_3II goto exit; } equation_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); + _env->GetIntArrayElements(equation_ref, (jboolean *)0); equation = equation_base + offset; glClipPlanex( @@ -4298,7 +4298,7 @@ android_glClipPlanex__I_3II exit: if (equation_base) { - _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, + _env->ReleaseIntArrayElements(equation_ref, (jint*)equation_base, JNI_ABORT); } if (_exception) { @@ -4313,12 +4313,12 @@ android_glClipPlanex__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; GLfixed *equation = (GLfixed *) 0; - equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset); + equation = (GLfixed *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 4) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -4326,7 +4326,7 @@ android_glClipPlanex__ILjava_nio_IntBuffer_2 goto exit; } if (equation == NULL) { - char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _equationBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); equation = (GLfixed *) (_equationBase + _bufferOffset); } glClipPlanex( @@ -4336,7 +4336,7 @@ android_glClipPlanex__ILjava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, equation, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)equation, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -4398,7 +4398,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( @@ -4408,7 +4408,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) { @@ -4423,12 +4423,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"; @@ -4436,7 +4436,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( @@ -4446,7 +4446,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); @@ -4502,7 +4502,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( @@ -4512,7 +4512,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) { @@ -4527,12 +4527,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"; @@ -4540,7 +4540,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( @@ -4550,7 +4550,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); @@ -4582,7 +4582,7 @@ android_glGetBooleanv__I_3ZI } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLboolean *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetBooleanArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetBooleanv( @@ -4592,7 +4592,7 @@ android_glGetBooleanv__I_3ZI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseBooleanArrayElements(params_ref, (jboolean*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -4604,14 +4604,14 @@ exit: static void android_glGetBooleanv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLboolean *params = (GLboolean *) 0; - params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLboolean *)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 = (GLboolean *) (_paramsBase + _bufferOffset); } glGetBooleanv( @@ -4619,7 +4619,7 @@ android_glGetBooleanv__ILjava_nio_IntBuffer_2 (GLboolean *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -4664,7 +4664,7 @@ android_glGetClipPlanef__I_3FI } _remaining = _env->GetArrayLength(eqn_ref) - offset; eqn_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); + _env->GetFloatArrayElements(eqn_ref, (jboolean *)0); eqn = eqn_base + offset; glGetClipPlanef( @@ -4674,7 +4674,7 @@ android_glGetClipPlanef__I_3FI exit: if (eqn_base) { - _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, + _env->ReleaseFloatArrayElements(eqn_ref, (jfloat*)eqn_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -4686,14 +4686,14 @@ exit: static void android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) { - jarray _array = (jarray) 0; + jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *eqn = (GLfloat *) 0; - eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset); + eqn = (GLfloat *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (eqn == NULL) { - char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _eqnBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); eqn = (GLfloat *) (_eqnBase + _bufferOffset); } glGetClipPlanef( @@ -4701,7 +4701,7 @@ android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 (GLfloat *)eqn ); if (_array) { - releasePointer(_env, _array, eqn, JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)eqn, 0); } } @@ -4730,7 +4730,7 @@ android_glGetClipPlanex__I_3II } _remaining = _env->GetArrayLength(eqn_ref) - offset; eqn_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); + _env->GetIntArrayElements(eqn_ref, (jboolean *)0); eqn = eqn_base + offset; glGetClipPlanex( @@ -4740,7 +4740,7 @@ android_glGetClipPlanex__I_3II exit: if (eqn_base) { - _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, + _env->ReleaseIntArrayElements(eqn_ref, (jint*)eqn_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -4752,14 +4752,14 @@ exit: static void android_glGetClipPlanex__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *eqn = (GLfixed *) 0; - eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset); + eqn = (GLfixed *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (eqn == NULL) { - char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _eqnBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); eqn = (GLfixed *) (_eqnBase + _bufferOffset); } glGetClipPlanex( @@ -4767,7 +4767,7 @@ android_glGetClipPlanex__ILjava_nio_IntBuffer_2 (GLfixed *)eqn ); if (_array) { - releasePointer(_env, _array, eqn, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)eqn, 0); } } @@ -4796,7 +4796,7 @@ android_glGetFixedv__I_3II } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetFixedv( @@ -4806,7 +4806,7 @@ android_glGetFixedv__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -4818,14 +4818,14 @@ exit: static void android_glGetFixedv__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - jarray _array = (jarray) 0; + jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetFixedv( @@ -4833,7 +4833,7 @@ android_glGetFixedv__ILjava_nio_IntBuffer_2 (GLfixed *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -4862,7 +4862,7 @@ android_glGetFloatv__I_3FI } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetFloatv( @@ -4872,7 +4872,7 @@ android_glGetFloatv__I_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { @@ -4884,14 +4884,14 @@ exit: static void android_glGetFloatv__ILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { - 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 (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glGetFloatv( @@ -4899,7 +4899,7 @@ android_glGetFloatv__ILjava_nio_FloatBuffer_2 (GLfloat *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); } } @@ -4976,7 +4976,7 @@ android_glGetLightfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetLightfv( @@ -4987,7 +4987,7 @@ android_glGetLightfv__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) { @@ -5002,12 +5002,12 @@ android_glGetLightfv__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_SPOT_EXPONENT) @@ -5057,7 +5057,7 @@ android_glGetLightfv__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); } glGetLightfv( @@ -5068,7 +5068,7 @@ android_glGetLightfv__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); @@ -5148,7 +5148,7 @@ android_glGetLightxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetLightxv( @@ -5159,7 +5159,7 @@ android_glGetLightxv__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) { @@ -5174,12 +5174,12 @@ android_glGetLightxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_SPOT_EXPONENT) @@ -5229,7 +5229,7 @@ android_glGetLightxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetLightxv( @@ -5240,7 +5240,7 @@ android_glGetLightxv__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); @@ -5306,7 +5306,7 @@ android_glGetMaterialfv__II_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetMaterialfv( @@ -5317,7 +5317,7 @@ android_glGetMaterialfv__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) { @@ -5332,12 +5332,12 @@ android_glGetMaterialfv__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_SHININESS) @@ -5373,7 +5373,7 @@ android_glGetMaterialfv__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); } glGetMaterialfv( @@ -5384,7 +5384,7 @@ android_glGetMaterialfv__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); @@ -5450,7 +5450,7 @@ android_glGetMaterialxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetMaterialxv( @@ -5461,7 +5461,7 @@ android_glGetMaterialxv__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) { @@ -5476,12 +5476,12 @@ android_glGetMaterialxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_SHININESS) @@ -5517,7 +5517,7 @@ android_glGetMaterialxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetMaterialxv( @@ -5528,7 +5528,7 @@ android_glGetMaterialxv__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); @@ -5588,7 +5588,7 @@ android_glGetTexEnviv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexEnviv( @@ -5599,7 +5599,7 @@ android_glGetTexEnviv__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) { @@ -5614,12 +5614,12 @@ android_glGetTexEnviv__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_TEXTURE_ENV_MODE) @@ -5649,7 +5649,7 @@ android_glGetTexEnviv__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); } glGetTexEnviv( @@ -5660,7 +5660,7 @@ android_glGetTexEnviv__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); @@ -5720,7 +5720,7 @@ android_glGetTexEnvxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexEnvxv( @@ -5731,7 +5731,7 @@ android_glGetTexEnvxv__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) { @@ -5746,12 +5746,12 @@ android_glGetTexEnvxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); int _needed; switch (pname) { #if defined(GL_TEXTURE_ENV_MODE) @@ -5781,7 +5781,7 @@ android_glGetTexEnvxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetTexEnvxv( @@ -5792,7 +5792,7 @@ android_glGetTexEnvxv__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); @@ -5830,7 +5830,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( @@ -5841,7 +5841,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) { @@ -5856,12 +5856,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"; @@ -5869,7 +5869,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( @@ -5880,7 +5880,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); @@ -5918,7 +5918,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( @@ -5929,7 +5929,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) { @@ -5944,12 +5944,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"; @@ -5957,7 +5957,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( @@ -5968,7 +5968,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); @@ -6006,7 +6006,7 @@ android_glGetTexParameterxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexParameterxv( @@ -6017,7 +6017,7 @@ android_glGetTexParameterxv__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) { @@ -6032,12 +6032,12 @@ android_glGetTexParameterxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -6045,7 +6045,7 @@ android_glGetTexParameterxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glGetTexParameterxv( @@ -6056,7 +6056,7 @@ android_glGetTexParameterxv__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); @@ -6148,7 +6148,7 @@ android_glPointParameterfv__I_3FI goto exit; } params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glPointParameterfv( @@ -6158,7 +6158,7 @@ android_glPointParameterfv__I_3FI exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, JNI_ABORT); } if (_exception) { @@ -6173,12 +6173,12 @@ android_glPointParameterfv__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 *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"; @@ -6186,7 +6186,7 @@ android_glPointParameterfv__ILjava_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); } glPointParameterfv( @@ -6196,7 +6196,7 @@ android_glPointParameterfv__ILjava_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); @@ -6244,7 +6244,7 @@ android_glPointParameterxv__I_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glPointParameterxv( @@ -6254,7 +6254,7 @@ android_glPointParameterxv__I_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -6269,12 +6269,12 @@ android_glPointParameterxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -6282,7 +6282,7 @@ android_glPointParameterxv__ILjava_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 = (GLfixed *) (_paramsBase + _bufferOffset); } glPointParameterxv( @@ -6292,7 +6292,7 @@ android_glPointParameterxv__ILjava_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); @@ -6398,7 +6398,7 @@ android_glTexEnviv__II_3II goto exit; } params_base = (GLint *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexEnviv( @@ -6409,7 +6409,7 @@ android_glTexEnviv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -6424,12 +6424,12 @@ android_glTexEnviv__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_TEXTURE_ENV_MODE) @@ -6459,7 +6459,7 @@ android_glTexEnviv__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); } glTexEnviv( @@ -6470,7 +6470,7 @@ android_glTexEnviv__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); @@ -6508,7 +6508,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( @@ -6519,7 +6519,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) { @@ -6534,12 +6534,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"; @@ -6547,7 +6547,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( @@ -6558,7 +6558,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); @@ -6607,7 +6607,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( @@ -6618,7 +6618,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) { @@ -6633,12 +6633,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"; @@ -6646,7 +6646,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( @@ -6657,7 +6657,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); @@ -6695,7 +6695,7 @@ android_glTexParameterxv__II_3II goto exit; } params_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexParameterxv( @@ -6706,7 +6706,7 @@ android_glTexParameterxv__II_3II exit: if (params_base) { - _env->ReleasePrimitiveArrayCritical(params_ref, params_base, + _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, JNI_ABORT); } if (_exception) { @@ -6721,12 +6721,12 @@ android_glTexParameterxv__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; GLfixed *params = (GLfixed *) 0; - params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); + params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 1) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -6734,7 +6734,7 @@ android_glTexParameterxv__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 = (GLfixed *) (_paramsBase + _bufferOffset); } glTexParameterxv( @@ -6745,7 +6745,7 @@ android_glTexParameterxv__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); @@ -6817,7 +6817,7 @@ android_glDrawTexfvOES___3FI goto exit; } coords_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0); + _env->GetFloatArrayElements(coords_ref, (jboolean *)0); coords = coords_base + offset; glDrawTexfvOES( @@ -6826,7 +6826,7 @@ android_glDrawTexfvOES___3FI exit: if (coords_base) { - _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base, + _env->ReleaseFloatArrayElements(coords_ref, (jfloat*)coords_base, JNI_ABORT); } if (_exception) { @@ -6841,12 +6841,12 @@ android_glDrawTexfvOES__Ljava_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 *coords = (GLfloat *) 0; - coords = (GLfloat *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset); + coords = (GLfloat *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -6854,7 +6854,7 @@ android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 goto exit; } if (coords == NULL) { - char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _coordsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); coords = (GLfloat *) (_coordsBase + _bufferOffset); } glDrawTexfvOES( @@ -6863,7 +6863,7 @@ android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 exit: if (_array) { - releasePointer(_env, _array, coords, JNI_FALSE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)coords, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -6914,7 +6914,7 @@ android_glDrawTexivOES___3II goto exit; } coords_base = (GLint *) - _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0); + _env->GetIntArrayElements(coords_ref, (jboolean *)0); coords = coords_base + offset; glDrawTexivOES( @@ -6923,7 +6923,7 @@ android_glDrawTexivOES___3II exit: if (coords_base) { - _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base, + _env->ReleaseIntArrayElements(coords_ref, (jint*)coords_base, JNI_ABORT); } if (_exception) { @@ -6938,12 +6938,12 @@ android_glDrawTexivOES__Ljava_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 *coords = (GLint *) 0; - coords = (GLint *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset); + coords = (GLint *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -6951,7 +6951,7 @@ android_glDrawTexivOES__Ljava_nio_IntBuffer_2 goto exit; } if (coords == NULL) { - char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _coordsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); coords = (GLint *) (_coordsBase + _bufferOffset); } glDrawTexivOES( @@ -6960,7 +6960,7 @@ android_glDrawTexivOES__Ljava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, coords, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)coords, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -7011,7 +7011,7 @@ android_glDrawTexsvOES___3SI goto exit; } coords_base = (GLshort *) - _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0); + _env->GetShortArrayElements(coords_ref, (jboolean *)0); coords = coords_base + offset; glDrawTexsvOES( @@ -7020,7 +7020,7 @@ android_glDrawTexsvOES___3SI exit: if (coords_base) { - _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base, + _env->ReleaseShortArrayElements(coords_ref, (jshort*)coords_base, JNI_ABORT); } if (_exception) { @@ -7035,12 +7035,12 @@ android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; - jarray _array = (jarray) 0; + jshortArray _array = (jshortArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLshort *coords = (GLshort *) 0; - coords = (GLshort *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset); + coords = (GLshort *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -7048,7 +7048,7 @@ android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 goto exit; } if (coords == NULL) { - char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _coordsBase = (char *)_env->GetShortArrayElements(_array, (jboolean *) 0); coords = (GLshort *) (_coordsBase + _bufferOffset); } glDrawTexsvOES( @@ -7057,7 +7057,7 @@ android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 exit: if (_array) { - releasePointer(_env, _array, coords, JNI_FALSE); + _env->ReleaseShortArrayElements(_array, (jshort*)coords, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -7108,7 +7108,7 @@ android_glDrawTexxvOES___3II goto exit; } coords_base = (GLfixed *) - _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0); + _env->GetIntArrayElements(coords_ref, (jboolean *)0); coords = coords_base + offset; glDrawTexxvOES( @@ -7117,7 +7117,7 @@ android_glDrawTexxvOES___3II exit: if (coords_base) { - _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base, + _env->ReleaseIntArrayElements(coords_ref, (jint*)coords_base, JNI_ABORT); } if (_exception) { @@ -7132,12 +7132,12 @@ android_glDrawTexxvOES__Ljava_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; GLfixed *coords = (GLfixed *) 0; - coords = (GLfixed *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset); + coords = (GLfixed *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (_remaining < 5) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; @@ -7145,7 +7145,7 @@ android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 goto exit; } if (coords == NULL) { - char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _coordsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); coords = (GLfixed *) (_coordsBase + _bufferOffset); } glDrawTexxvOES( @@ -7154,7 +7154,7 @@ android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 exit: if (_array) { - releasePointer(_env, _array, coords, JNI_FALSE); + _env->ReleaseIntArrayElements(_array, (jint*)coords, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); @@ -7368,7 +7368,7 @@ android_glDeleteFramebuffersOES__I_3II goto exit; } framebuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(framebuffers_ref, (jboolean *)0); framebuffers = framebuffers_base + offset; glDeleteFramebuffersOES( @@ -7378,7 +7378,7 @@ android_glDeleteFramebuffersOES__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) { @@ -7398,12 +7398,12 @@ android_glDeleteFramebuffersOES__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"; @@ -7411,7 +7411,7 @@ android_glDeleteFramebuffersOES__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); } glDeleteFramebuffersOES( @@ -7421,7 +7421,7 @@ android_glDeleteFramebuffersOES__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); @@ -7464,7 +7464,7 @@ android_glDeleteRenderbuffersOES__I_3II goto exit; } renderbuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(renderbuffers_ref, (jboolean *)0); renderbuffers = renderbuffers_base + offset; glDeleteRenderbuffersOES( @@ -7474,7 +7474,7 @@ android_glDeleteRenderbuffersOES__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) { @@ -7494,12 +7494,12 @@ android_glDeleteRenderbuffersOES__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"; @@ -7507,7 +7507,7 @@ android_glDeleteRenderbuffersOES__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); } glDeleteRenderbuffersOES( @@ -7517,7 +7517,7 @@ android_glDeleteRenderbuffersOES__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); @@ -7609,7 +7609,7 @@ android_glGenFramebuffersOES__I_3II goto exit; } framebuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(framebuffers_ref, (jboolean *)0); framebuffers = framebuffers_base + offset; glGenFramebuffersOES( @@ -7619,7 +7619,7 @@ android_glGenFramebuffersOES__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) { @@ -7639,12 +7639,12 @@ android_glGenFramebuffersOES__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"; @@ -7652,7 +7652,7 @@ android_glGenFramebuffersOES__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); } glGenFramebuffersOES( @@ -7662,7 +7662,7 @@ android_glGenFramebuffersOES__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); @@ -7705,7 +7705,7 @@ android_glGenRenderbuffersOES__I_3II goto exit; } renderbuffers_base = (GLuint *) - _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0); + _env->GetIntArrayElements(renderbuffers_ref, (jboolean *)0); renderbuffers = renderbuffers_base + offset; glGenRenderbuffersOES( @@ -7715,7 +7715,7 @@ android_glGenRenderbuffersOES__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) { @@ -7735,12 +7735,12 @@ android_glGenRenderbuffersOES__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"; @@ -7748,7 +7748,7 @@ android_glGenRenderbuffersOES__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); } glGenRenderbuffersOES( @@ -7758,7 +7758,7 @@ android_glGenRenderbuffersOES__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); @@ -7795,7 +7795,7 @@ android_glGetFramebufferAttachmentParameterivOES__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; glGetFramebufferAttachmentParameterivOES( @@ -7807,7 +7807,7 @@ android_glGetFramebufferAttachmentParameterivOES__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) { @@ -7824,14 +7824,14 @@ android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 "glGetFramebufferAttachmentParameterivOES"); return; } - 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); } glGetFramebufferAttachmentParameterivOES( @@ -7841,7 +7841,7 @@ android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -7875,7 +7875,7 @@ android_glGetRenderbufferParameterivOES__II_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; glGetRenderbufferParameterivOES( @@ -7886,7 +7886,7 @@ android_glGetRenderbufferParameterivOES__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) { @@ -7903,14 +7903,14 @@ android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 "glGetRenderbufferParameterivOES"); return; } - 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); } glGetRenderbufferParameterivOES( @@ -7919,7 +7919,7 @@ android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -7953,7 +7953,7 @@ android_glGetTexGenfv__II_3FI } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexGenfv( @@ -7964,7 +7964,7 @@ android_glGetTexGenfv__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) { @@ -7981,14 +7981,14 @@ android_glGetTexGenfv__IILjava_nio_FloatBuffer_2 "glGetTexGenfv"); return; } - 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 (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glGetTexGenfv( @@ -7997,7 +7997,7 @@ android_glGetTexGenfv__IILjava_nio_FloatBuffer_2 (GLfloat *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); } } @@ -8031,7 +8031,7 @@ android_glGetTexGeniv__II_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; glGetTexGeniv( @@ -8042,7 +8042,7 @@ android_glGetTexGeniv__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) { @@ -8059,14 +8059,14 @@ android_glGetTexGeniv__IILjava_nio_IntBuffer_2 "glGetTexGeniv"); return; } - 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); } glGetTexGeniv( @@ -8075,7 +8075,7 @@ android_glGetTexGeniv__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -8109,7 +8109,7 @@ android_glGetTexGenxv__II_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; glGetTexGenxv( @@ -8120,7 +8120,7 @@ android_glGetTexGenxv__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) { @@ -8137,14 +8137,14 @@ android_glGetTexGenxv__IILjava_nio_IntBuffer_2 "glGetTexGenxv"); return; } - 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); } glGetTexGenxv( @@ -8153,7 +8153,7 @@ android_glGetTexGenxv__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -8252,7 +8252,7 @@ android_glTexGenfv__II_3FI } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfloat *) - _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); + _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glTexGenfv( @@ -8263,7 +8263,7 @@ android_glTexGenfv__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) { @@ -8280,14 +8280,14 @@ android_glTexGenfv__IILjava_nio_FloatBuffer_2 "glTexGenfv"); return; } - 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 (params == NULL) { - char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); + char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glTexGenfv( @@ -8296,7 +8296,7 @@ android_glTexGenfv__IILjava_nio_FloatBuffer_2 (GLfloat *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); } } @@ -8346,7 +8346,7 @@ android_glTexGeniv__II_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; glTexGeniv( @@ -8357,7 +8357,7 @@ android_glTexGeniv__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) { @@ -8374,14 +8374,14 @@ android_glTexGeniv__IILjava_nio_IntBuffer_2 "glTexGeniv"); return; } - 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); } glTexGeniv( @@ -8390,7 +8390,7 @@ android_glTexGeniv__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } @@ -8440,7 +8440,7 @@ android_glTexGenxv__II_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; glTexGenxv( @@ -8451,7 +8451,7 @@ android_glTexGenxv__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) { @@ -8468,14 +8468,14 @@ android_glTexGenxv__IILjava_nio_IntBuffer_2 "glTexGenxv"); return; } - 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); } glTexGenxv( @@ -8484,7 +8484,7 @@ android_glTexGenxv__IILjava_nio_IntBuffer_2 (GLint *)params ); if (_array) { - releasePointer(_env, _array, params, JNI_TRUE); + _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } |