/* * Copyright 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // This source file is automatically generated #pragma GCC diagnostic ignored "-Wunused-variable" #pragma GCC diagnostic ignored "-Wunused-but-set-variable" #pragma GCC diagnostic ignored "-Wunused-function" #include #include #include #include #include #include #include static int initialized = 0; static jclass nioAccessClass; static jclass bufferClass; static jmethodID getBasePointerID; static jmethodID getBaseArrayID; static jmethodID getBaseArrayOffsetID; static jfieldID positionID; static jfieldID limitID; static jfieldID elementSizeShiftID; /* special calls implemented in Android's GLES wrapper used to more * efficiently bound-check passed arrays */ extern "C" { #ifdef GL_VERSION_ES_CM_1_1 GL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr, GLsizei count); GL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride, const GLvoid *pointer, GLsizei count); GL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer, GLsizei count); GL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer, GLsizei count); GL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type, GLsizei stride, const GLvoid *pointer, GLsizei count); GL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer, GLsizei count); GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer, GLsizei count); #endif #ifdef GL_ES_VERSION_2_0 static void glVertexAttribPointerBounds(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer, GLsizei count) { glVertexAttribPointer(indx, size, type, normalized, stride, pointer); } #endif #ifdef GL_ES_VERSION_3_0 static void glVertexAttribIPointerBounds(GLuint indx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer, GLsizei count) { glVertexAttribIPointer(indx, size, type, stride, pointer); } #endif } /* Cache method IDs each time the class is loaded. */ static void nativeClassInit(JNIEnv *_env, jclass glImplClass) { jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess"); nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal); jclass bufferClassLocal = _env->FindClass("java/nio/Buffer"); bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal); getBasePointerID = _env->GetStaticMethodID(nioAccessClass, "getBasePointer", "(Ljava/nio/Buffer;)J"); getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;"); getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass, "getBaseArrayOffset", "(Ljava/nio/Buffer;)I"); positionID = _env->GetFieldID(bufferClass, "position", "I"); limitID = _env->GetFieldID(bufferClass, "limit", "I"); elementSizeShiftID = _env->GetFieldID(bufferClass, "_elementSizeShift", "I"); } static void * getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset) { jint position; jint limit; jint elementSizeShift; jlong pointer; position = _env->GetIntField(buffer, positionID); limit = _env->GetIntField(buffer, limitID); elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); *remaining = (limit - position) << elementSizeShift; pointer = _env->CallStaticLongMethod(nioAccessClass, getBasePointerID, buffer); if (pointer != 0L) { *array = NULL; return reinterpret_cast(pointer); } *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass, getBaseArrayID, buffer); *offset = _env->CallStaticIntMethod(nioAccessClass, getBaseArrayOffsetID, buffer); 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 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 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) { _env->ReleasePrimitiveArrayCritical(array, data, commit ? 0 : JNI_ABORT); } static void * getDirectBufferPointer(JNIEnv *_env, jobject buffer) { char* buf = (char*) _env->GetDirectBufferAddress(buffer); if (buf) { jint position = _env->GetIntField(buffer, positionID); jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); buf += position << elementSizeShift; } else { jniThrowException(_env, "java/lang/IllegalArgumentException", "Must use a native order direct Buffer"); } return (void*) buf; } // -------------------------------------------------------------------------- /* * returns the number of values glGet returns for a given pname. * * The code below is written such that pnames requiring only one values * are the default (and are not explicitely tested for). This makes the * checking code much shorter/readable/efficient. * * This means that unknown pnames (e.g.: extensions) will default to 1. If * that unknown pname needs more than 1 value, then the validation check * is incomplete and the app may crash if it passed the wrong number params. */ static int getNeededCount(GLint pname) { int needed = 1; #ifdef GL_ES_VERSION_2_0 // GLES 2.x pnames switch (pname) { case GL_ALIASED_LINE_WIDTH_RANGE: case GL_ALIASED_POINT_SIZE_RANGE: needed = 2; break; case GL_BLEND_COLOR: case GL_COLOR_CLEAR_VALUE: case GL_COLOR_WRITEMASK: case GL_SCISSOR_BOX: case GL_VIEWPORT: needed = 4; break; case GL_COMPRESSED_TEXTURE_FORMATS: glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed); break; case GL_SHADER_BINARY_FORMATS: glGetIntegerv(GL_NUM_SHADER_BINARY_FORMATS, &needed); break; } #endif #ifdef GL_VERSION_ES_CM_1_1 // GLES 1.x pnames switch (pname) { case GL_ALIASED_LINE_WIDTH_RANGE: case GL_ALIASED_POINT_SIZE_RANGE: case GL_DEPTH_RANGE: case GL_SMOOTH_LINE_WIDTH_RANGE: case GL_SMOOTH_POINT_SIZE_RANGE: needed = 2; break; case GL_CURRENT_NORMAL: case GL_POINT_DISTANCE_ATTENUATION: needed = 3; break; case GL_COLOR_CLEAR_VALUE: case GL_COLOR_WRITEMASK: case GL_CURRENT_COLOR: case GL_CURRENT_TEXTURE_COORDS: case GL_FOG_COLOR: case GL_LIGHT_MODEL_AMBIENT: case GL_SCISSOR_BOX: case GL_VIEWPORT: needed = 4; break; case GL_MODELVIEW_MATRIX: case GL_PROJECTION_MATRIX: case GL_TEXTURE_MATRIX: needed = 16; break; case GL_COMPRESSED_TEXTURE_FORMATS: glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed); break; } #endif return needed; } template static void get (JNIEnv *_env, jobject _this, jint pname, JTYPEARRAY params_ref, jint offset) { jint _exception = 0; const char * _exceptionType; const char * _exceptionMessage; CTYPE *params_base = (CTYPE *) 0; jint _remaining; CTYPE *params = (CTYPE *) 0; int _needed = 0; if (!params_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "params == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(params_ref) - offset; _needed = getNeededCount(pname); // if we didn't find this pname, we just assume the user passed // an array of the right size -- this might happen with extensions // or if we forget an enum here. if (_remaining < _needed) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "length - offset < needed"; goto exit; } params_base = (CTYPE *) getArrayPointer( _env, params_ref, (jboolean *)0); params = params_base + offset; GET( (GLenum)pname, (CTYPE *)params ); exit: if (params_base) { releaseArrayPointer( _env, params_ref, params_base, !_exception); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } template static void getarray (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { jint _exception = 0; const char * _exceptionType; const char * _exceptionMessage; JTYPEARRAY _array = (JTYPEARRAY) 0; jint _bufferOffset = (jint) 0; jint _remaining; CTYPE *params = (CTYPE *) 0; int _needed = 0; 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 // an array of the right size -- this might happen with extensions // or if we forget an enum here. if (_needed>0 && _remaining < _needed) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "remaining() < needed"; goto exit; } if (params == NULL) { char * _paramsBase = (char *) getArrayPointer( _env, _array, (jboolean *) 0); params = (CTYPE *) (_paramsBase + _bufferOffset); } GET( (GLenum)pname, (CTYPE *)params ); exit: if (_array) { releaseArrayPointer( _env, _array, (NTYPEARRAY)params, _exception ? JNI_FALSE : JNI_TRUE); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } // -------------------------------------------------------------------------- /* void glDispatchCompute ( GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z ) */ static void android_glDispatchCompute__III (JNIEnv *_env, jobject _this, jint num_groups_x, jint num_groups_y, jint num_groups_z) { glDispatchCompute( (GLuint)num_groups_x, (GLuint)num_groups_y, (GLuint)num_groups_z ); } /* void glDispatchComputeIndirect ( GLintptr indirect ) */ static void android_glDispatchComputeIndirect(JNIEnv *_env, jobject, jlong indirect) { // 'indirect' is a byte offset, not a pointer. GL checks for negative and too-large values. // Here we only need to check for successful 64-bit to 32-bit conversion. // - jlong is a int64_t (jni.h) // - GLintptr is a long (khrplatform.h) if (sizeof(GLintptr) != sizeof(jlong) && (indirect < LONG_MIN || indirect > LONG_MAX)) { jniThrowException(_env, "java/lang/IllegalArgumentException", "indirect offset too large"); return; } glDispatchComputeIndirect((GLintptr)indirect); } /* void glDrawArraysIndirect ( GLenum mode, const void *indirect ) */ static void android_glDrawArraysIndirect(JNIEnv *_env, jobject, int mode, jlong indirect) { // In OpenGL ES, 'indirect' is a byte offset into a buffer, not a raw pointer. // GL checks for too-large values. Here we only need to check for successful signed 64-bit // to unsigned 32-bit conversion. if (sizeof(void*) != sizeof(jlong) && indirect > static_cast(UINT32_MAX)) { jniThrowException(_env, "java/lang/IllegalArgumentException", "indirect offset too large"); return; } glDrawArraysIndirect(mode, (const void*)indirect); } /* void glDrawElementsIndirect ( GLenum mode, GLenum type, const void *indirect ) */ static void android_glDrawElementsIndirect(JNIEnv *_env, jobject, jint mode, jint type, jlong indirect) { // In OpenGL ES, 'indirect' is a byte offset into a buffer, not a raw pointer. // GL checks for too-large values. Here we only need to check for successful signed 64-bit // to unsigned 32-bit conversion. if (sizeof(void*) != sizeof(jlong) && indirect > static_cast(UINT32_MAX)) { jniThrowException(_env, "java/lang/IllegalArgumentException", "indirect offset too large"); return; } glDrawElementsIndirect(mode, type, (const void*)indirect); } /* void glFramebufferParameteri ( GLenum target, GLenum pname, GLint param ) */ static void android_glFramebufferParameteri__III (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { glFramebufferParameteri( (GLenum)target, (GLenum)pname, (GLint)param ); } /* void glGetFramebufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ static void android_glGetFramebufferParameteriv__II_3II (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLint *params_base = (GLint *) 0; jint _remaining; GLint *params = (GLint *) 0; if (!params_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "params == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLint *) _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetFramebufferParameteriv( (GLenum)target, (GLenum)pname, (GLint *)params ); exit: if (params_base) { _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glGetFramebufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ static void android_glGetFramebufferParameteriv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetFramebufferParameteriv( (GLenum)target, (GLenum)pname, (GLint *)params ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } /* void glGetProgramInterfaceiv ( GLuint program, GLenum programInterface, GLenum pname, GLint *params ) */ static void android_glGetProgramInterfaceiv__III_3II (JNIEnv *_env, jobject _this, jint program, jint programInterface, jint pname, jintArray params_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLint *params_base = (GLint *) 0; jint _remaining; GLint *params = (GLint *) 0; if (!params_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "params == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLint *) _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetProgramInterfaceiv( (GLuint)program, (GLenum)programInterface, (GLenum)pname, (GLint *)params ); exit: if (params_base) { _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glGetProgramInterfaceiv ( GLuint program, GLenum programInterface, GLenum pname, GLint *params ) */ static void android_glGetProgramInterfaceiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint programInterface, jint pname, jobject params_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetProgramInterfaceiv( (GLuint)program, (GLenum)programInterface, (GLenum)pname, (GLint *)params ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } /* GLuint glGetProgramResourceIndex ( GLuint program, GLenum programInterface, const GLchar *name ) */ static jint android_glGetProgramResourceIndex__IILjava_lang_String_2 (JNIEnv *_env, jobject _this, jint program, jint programInterface, jstring name) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLuint _returnValue = 0; const char* _nativename = 0; if (!name) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "name == null"; goto exit; } _nativename = _env->GetStringUTFChars(name, 0); _returnValue = glGetProgramResourceIndex( (GLuint)program, (GLenum)programInterface, (GLchar *)_nativename ); exit: if (_nativename) { _env->ReleaseStringUTFChars(name, _nativename); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } return (jint)_returnValue; } /* void glGetProgramResourceName ( GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name ) */ static jstring android_glGetProgramResourceName (JNIEnv *_env, jobject _this, jint program, jint programInterface, jint index) { jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented"); return NULL; } /* void glGetProgramResourceiv ( GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params ) */ static void android_glGetProgramResourceiv__IIII_3III_3II_3II (JNIEnv *_env, jobject _this, jint program, jint programInterface, jint index, jint propCount, jintArray props_ref, jint propsOffset, jint bufSize, jintArray length_ref, jint lengthOffset, jintArray params_ref, jint paramsOffset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLenum *props_base = (GLenum *) 0; jint _propsRemaining; GLenum *props = (GLenum *) 0; GLsizei *length_base = (GLsizei *) 0; jint _lengthRemaining; GLsizei *length = (GLsizei *) 0; GLint *params_base = (GLint *) 0; jint _paramsRemaining; GLint *params = (GLint *) 0; if (!props_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "props == null"; goto exit; } if (propsOffset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "propsOffset < 0"; goto exit; } _propsRemaining = _env->GetArrayLength(props_ref) - propsOffset; props_base = (GLenum *) _env->GetIntArrayElements(props_ref, (jboolean *)0); props = props_base + propsOffset; if (!length_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "length == null"; goto exit; } if (lengthOffset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "lengthOffset < 0"; goto exit; } _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; length_base = (GLsizei *) _env->GetIntArrayElements(length_ref, (jboolean *)0); length = length_base + lengthOffset; if (!params_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "params == null"; goto exit; } if (paramsOffset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "paramsOffset < 0"; goto exit; } _paramsRemaining = _env->GetArrayLength(params_ref) - paramsOffset; params_base = (GLint *) _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + paramsOffset; glGetProgramResourceiv( (GLuint)program, (GLenum)programInterface, (GLuint)index, (GLsizei)propCount, (GLenum *)props, (GLsizei)bufSize, (GLsizei *)length, (GLint *)params ); exit: if (params_base) { _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (length_base) { _env->ReleaseIntArrayElements(length_ref, (jint*)length_base, _exception ? JNI_ABORT: 0); } if (props_base) { _env->ReleaseIntArrayElements(props_ref, (jint*)props_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glGetProgramResourceiv ( GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params ) */ 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) { jintArray _propsArray = (jintArray) 0; jint _propsBufferOffset = (jint) 0; jintArray _lengthArray = (jintArray) 0; jint _lengthBufferOffset = (jint) 0; jintArray _paramsArray = (jintArray) 0; jint _paramsBufferOffset = (jint) 0; jint _propsRemaining; GLenum *props = (GLenum *) 0; jint _lengthRemaining; GLsizei *length = (GLsizei *) 0; jint _paramsRemaining; GLint *params = (GLint *) 0; 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->GetIntArrayElements(_propsArray, (jboolean *) 0); props = (GLenum *) (_propsBase + _propsBufferOffset); } if (length == NULL) { char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0); length = (GLsizei *) (_lengthBase + _lengthBufferOffset); } if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_paramsArray, (jboolean *) 0); params = (GLint *) (_paramsBase + _paramsBufferOffset); } glGetProgramResourceiv( (GLuint)program, (GLenum)programInterface, (GLuint)index, (GLsizei)propCount, (GLenum *)props, (GLsizei)bufSize, (GLsizei *)length, (GLint *)params ); if (_paramsArray) { _env->ReleaseIntArrayElements(_paramsArray, (jint*)params, 0); } if (_lengthArray) { _env->ReleaseIntArrayElements(_lengthArray, (jint*)length, 0); } if (_propsArray) { _env->ReleaseIntArrayElements(_propsArray, (jint*)props, JNI_ABORT); } } /* GLint glGetProgramResourceLocation ( GLuint program, GLenum programInterface, const GLchar *name ) */ static jint android_glGetProgramResourceLocation__IILjava_lang_String_2 (JNIEnv *_env, jobject _this, jint program, jint programInterface, jstring name) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLint _returnValue = 0; const char* _nativename = 0; if (!name) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "name == null"; goto exit; } _nativename = _env->GetStringUTFChars(name, 0); _returnValue = glGetProgramResourceLocation( (GLuint)program, (GLenum)programInterface, (GLchar *)_nativename ); exit: if (_nativename) { _env->ReleaseStringUTFChars(name, _nativename); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } return (jint)_returnValue; } /* void glUseProgramStages ( GLuint pipeline, GLbitfield stages, GLuint program ) */ static void android_glUseProgramStages__III (JNIEnv *_env, jobject _this, jint pipeline, jint stages, jint program) { glUseProgramStages( (GLuint)pipeline, (GLbitfield)stages, (GLuint)program ); } /* void glActiveShaderProgram ( GLuint pipeline, GLuint program ) */ static void android_glActiveShaderProgram__II (JNIEnv *_env, jobject _this, jint pipeline, jint program) { glActiveShaderProgram( (GLuint)pipeline, (GLuint)program ); } /* GLuint glCreateShaderProgramv ( GLenum type, GLsizei count, const GLchar *const *strings ) */ static jint android_glCreateShaderProgramv (JNIEnv *_env, jobject _this, jint type, jobjectArray strings) { jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented"); return 0; } /* void glBindProgramPipeline ( GLuint pipeline ) */ static void android_glBindProgramPipeline__I (JNIEnv *_env, jobject _this, jint pipeline) { glBindProgramPipeline( (GLuint)pipeline ); } /* void glDeleteProgramPipelines ( GLsizei n, const GLuint *pipelines ) */ static void android_glDeleteProgramPipelines__I_3II (JNIEnv *_env, jobject _this, jint n, jintArray pipelines_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLuint *pipelines_base = (GLuint *) 0; jint _remaining; GLuint *pipelines = (GLuint *) 0; if (!pipelines_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "pipelines == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(pipelines_ref) - offset; pipelines_base = (GLuint *) _env->GetIntArrayElements(pipelines_ref, (jboolean *)0); pipelines = pipelines_base + offset; glDeleteProgramPipelines( (GLsizei)n, (GLuint *)pipelines ); exit: if (pipelines_base) { _env->ReleaseIntArrayElements(pipelines_ref, (jint*)pipelines_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glDeleteProgramPipelines ( GLsizei n, const GLuint *pipelines ) */ static void android_glDeleteProgramPipelines__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject pipelines_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *pipelines = (GLuint *) 0; pipelines = (GLuint *)getPointer(_env, pipelines_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pipelines == NULL) { char * _pipelinesBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); pipelines = (GLuint *) (_pipelinesBase + _bufferOffset); } glDeleteProgramPipelines( (GLsizei)n, (GLuint *)pipelines ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)pipelines, JNI_ABORT); } } /* void glGenProgramPipelines ( GLsizei n, GLuint *pipelines ) */ static void android_glGenProgramPipelines__I_3II (JNIEnv *_env, jobject _this, jint n, jintArray pipelines_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLuint *pipelines_base = (GLuint *) 0; jint _remaining; GLuint *pipelines = (GLuint *) 0; if (!pipelines_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "pipelines == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(pipelines_ref) - offset; pipelines_base = (GLuint *) _env->GetIntArrayElements(pipelines_ref, (jboolean *)0); pipelines = pipelines_base + offset; glGenProgramPipelines( (GLsizei)n, (GLuint *)pipelines ); exit: if (pipelines_base) { _env->ReleaseIntArrayElements(pipelines_ref, (jint*)pipelines_base, _exception ? JNI_ABORT: 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glGenProgramPipelines ( GLsizei n, GLuint *pipelines ) */ static void android_glGenProgramPipelines__ILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint n, jobject pipelines_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *pipelines = (GLuint *) 0; pipelines = (GLuint *)getPointer(_env, pipelines_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (pipelines == NULL) { char * _pipelinesBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); pipelines = (GLuint *) (_pipelinesBase + _bufferOffset); } glGenProgramPipelines( (GLsizei)n, (GLuint *)pipelines ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)pipelines, 0); } } /* GLboolean glIsProgramPipeline ( GLuint pipeline ) */ static jboolean android_glIsProgramPipeline__I (JNIEnv *_env, jobject _this, jint pipeline) { GLboolean _returnValue; _returnValue = glIsProgramPipeline( (GLuint)pipeline ); return (jboolean)_returnValue; } /* void glGetProgramPipelineiv ( GLuint pipeline, GLenum pname, GLint *params ) */ static void android_glGetProgramPipelineiv__II_3II (JNIEnv *_env, jobject _this, jint pipeline, jint pname, jintArray params_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLint *params_base = (GLint *) 0; jint _remaining; GLint *params = (GLint *) 0; if (!params_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "params == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLint *) _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetProgramPipelineiv( (GLuint)pipeline, (GLenum)pname, (GLint *)params ); exit: if (params_base) { _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glGetProgramPipelineiv ( GLuint pipeline, GLenum pname, GLint *params ) */ static void android_glGetProgramPipelineiv__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint pipeline, jint pname, jobject params_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetProgramPipelineiv( (GLuint)pipeline, (GLenum)pname, (GLint *)params ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } /* void glProgramUniform1i ( GLuint program, GLint location, GLint v0 ) */ static void android_glProgramUniform1i__III (JNIEnv *_env, jobject _this, jint program, jint location, jint v0) { glProgramUniform1i( (GLuint)program, (GLint)location, (GLint)v0 ); } /* void glProgramUniform2i ( GLuint program, GLint location, GLint v0, GLint v1 ) */ static void android_glProgramUniform2i__IIII (JNIEnv *_env, jobject _this, jint program, jint location, jint v0, jint v1) { glProgramUniform2i( (GLuint)program, (GLint)location, (GLint)v0, (GLint)v1 ); } /* void glProgramUniform3i ( GLuint program, GLint location, GLint v0, GLint v1, GLint v2 ) */ static void android_glProgramUniform3i__IIIII (JNIEnv *_env, jobject _this, jint program, jint location, jint v0, jint v1, jint v2) { glProgramUniform3i( (GLuint)program, (GLint)location, (GLint)v0, (GLint)v1, (GLint)v2 ); } /* void glProgramUniform4i ( GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3 ) */ static void android_glProgramUniform4i__IIIIII (JNIEnv *_env, jobject _this, jint program, jint location, jint v0, jint v1, jint v2, jint v3) { glProgramUniform4i( (GLuint)program, (GLint)location, (GLint)v0, (GLint)v1, (GLint)v2, (GLint)v3 ); } /* void glProgramUniform1ui ( GLuint program, GLint location, GLuint v0 ) */ static void android_glProgramUniform1ui__III (JNIEnv *_env, jobject _this, jint program, jint location, jint v0) { glProgramUniform1ui( (GLuint)program, (GLint)location, (GLuint)v0 ); } /* void glProgramUniform2ui ( GLuint program, GLint location, GLuint v0, GLuint v1 ) */ static void android_glProgramUniform2ui__IIII (JNIEnv *_env, jobject _this, jint program, jint location, jint v0, jint v1) { glProgramUniform2ui( (GLuint)program, (GLint)location, (GLuint)v0, (GLuint)v1 ); } /* void glProgramUniform3ui ( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2 ) */ static void android_glProgramUniform3ui__IIIII (JNIEnv *_env, jobject _this, jint program, jint location, jint v0, jint v1, jint v2) { glProgramUniform3ui( (GLuint)program, (GLint)location, (GLuint)v0, (GLuint)v1, (GLuint)v2 ); } /* void glProgramUniform4ui ( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ) */ static void android_glProgramUniform4ui__IIIIII (JNIEnv *_env, jobject _this, jint program, jint location, jint v0, jint v1, jint v2, jint v3) { glProgramUniform4ui( (GLuint)program, (GLint)location, (GLuint)v0, (GLuint)v1, (GLuint)v2, (GLuint)v3 ); } /* void glProgramUniform1f ( GLuint program, GLint location, GLfloat v0 ) */ static void android_glProgramUniform1f__IIF (JNIEnv *_env, jobject _this, jint program, jint location, jfloat v0) { glProgramUniform1f( (GLuint)program, (GLint)location, (GLfloat)v0 ); } /* void glProgramUniform2f ( GLuint program, GLint location, GLfloat v0, GLfloat v1 ) */ static void android_glProgramUniform2f__IIFF (JNIEnv *_env, jobject _this, jint program, jint location, jfloat v0, jfloat v1) { glProgramUniform2f( (GLuint)program, (GLint)location, (GLfloat)v0, (GLfloat)v1 ); } /* void glProgramUniform3f ( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2 ) */ static void android_glProgramUniform3f__IIFFF (JNIEnv *_env, jobject _this, jint program, jint location, jfloat v0, jfloat v1, jfloat v2) { glProgramUniform3f( (GLuint)program, (GLint)location, (GLfloat)v0, (GLfloat)v1, (GLfloat)v2 ); } /* void glProgramUniform4f ( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3 ) */ static void android_glProgramUniform4f__IIFFFF (JNIEnv *_env, jobject _this, jint program, jint location, jfloat v0, jfloat v1, jfloat v2, jfloat v3) { glProgramUniform4f( (GLuint)program, (GLint)location, (GLfloat)v0, (GLfloat)v1, (GLfloat)v2, (GLfloat)v3 ); } /* void glProgramUniform1iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ static void android_glProgramUniform1iv__III_3II (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jintArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLint *value_base = (GLint *) 0; jint _remaining; GLint *value = (GLint *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLint *) _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform1iv( (GLuint)program, (GLint)location, (GLsizei)count, (GLint *)value ); exit: if (value_base) { _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform1iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ static void android_glProgramUniform1iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLint *) (_valueBase + _bufferOffset); } glProgramUniform1iv( (GLuint)program, (GLint)location, (GLsizei)count, (GLint *)value ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } /* void glProgramUniform2iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ static void android_glProgramUniform2iv__III_3II (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jintArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLint *value_base = (GLint *) 0; jint _remaining; GLint *value = (GLint *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLint *) _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform2iv( (GLuint)program, (GLint)location, (GLsizei)count, (GLint *)value ); exit: if (value_base) { _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform2iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ static void android_glProgramUniform2iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLint *) (_valueBase + _bufferOffset); } glProgramUniform2iv( (GLuint)program, (GLint)location, (GLsizei)count, (GLint *)value ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } /* void glProgramUniform3iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ static void android_glProgramUniform3iv__III_3II (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jintArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLint *value_base = (GLint *) 0; jint _remaining; GLint *value = (GLint *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLint *) _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform3iv( (GLuint)program, (GLint)location, (GLsizei)count, (GLint *)value ); exit: if (value_base) { _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform3iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ static void android_glProgramUniform3iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLint *) (_valueBase + _bufferOffset); } glProgramUniform3iv( (GLuint)program, (GLint)location, (GLsizei)count, (GLint *)value ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } /* void glProgramUniform4iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ static void android_glProgramUniform4iv__III_3II (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jintArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLint *value_base = (GLint *) 0; jint _remaining; GLint *value = (GLint *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLint *) _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform4iv( (GLuint)program, (GLint)location, (GLsizei)count, (GLint *)value ); exit: if (value_base) { _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform4iv ( GLuint program, GLint location, GLsizei count, const GLint *value ) */ static void android_glProgramUniform4iv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *value = (GLint *) 0; value = (GLint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLint *) (_valueBase + _bufferOffset); } glProgramUniform4iv( (GLuint)program, (GLint)location, (GLsizei)count, (GLint *)value ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } /* void glProgramUniform1uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ static void android_glProgramUniform1uiv__III_3II (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jintArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLuint *value_base = (GLuint *) 0; jint _remaining; GLuint *value = (GLuint *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform1uiv( (GLuint)program, (GLint)location, (GLsizei)count, (GLuint *)value ); exit: if (value_base) { _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform1uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ static void android_glProgramUniform1uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glProgramUniform1uiv( (GLuint)program, (GLint)location, (GLsizei)count, (GLuint *)value ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } /* void glProgramUniform2uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ static void android_glProgramUniform2uiv__III_3II (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jintArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLuint *value_base = (GLuint *) 0; jint _remaining; GLuint *value = (GLuint *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform2uiv( (GLuint)program, (GLint)location, (GLsizei)count, (GLuint *)value ); exit: if (value_base) { _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform2uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ static void android_glProgramUniform2uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glProgramUniform2uiv( (GLuint)program, (GLint)location, (GLsizei)count, (GLuint *)value ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } /* void glProgramUniform3uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ static void android_glProgramUniform3uiv__III_3II (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jintArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLuint *value_base = (GLuint *) 0; jint _remaining; GLuint *value = (GLuint *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform3uiv( (GLuint)program, (GLint)location, (GLsizei)count, (GLuint *)value ); exit: if (value_base) { _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform3uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ static void android_glProgramUniform3uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glProgramUniform3uiv( (GLuint)program, (GLint)location, (GLsizei)count, (GLuint *)value ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } /* void glProgramUniform4uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ static void android_glProgramUniform4uiv__III_3II (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jintArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLuint *value_base = (GLuint *) 0; jint _remaining; GLuint *value = (GLuint *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLuint *) _env->GetIntArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform4uiv( (GLuint)program, (GLint)location, (GLsizei)count, (GLuint *)value ); exit: if (value_base) { _env->ReleaseIntArrayElements(value_ref, (jint*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform4uiv ( GLuint program, GLint location, GLsizei count, const GLuint *value ) */ static void android_glProgramUniform4uiv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLuint *value = (GLuint *) 0; value = (GLuint *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); value = (GLuint *) (_valueBase + _bufferOffset); } glProgramUniform4uiv( (GLuint)program, (GLint)location, (GLsizei)count, (GLuint *)value ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)value, JNI_ABORT); } } /* void glProgramUniform1fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ static void android_glProgramUniform1fv__III_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform1fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform1fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ static void android_glProgramUniform1fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniform1fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniform2fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ static void android_glProgramUniform2fv__III_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform2fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform2fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ static void android_glProgramUniform2fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniform2fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniform3fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ static void android_glProgramUniform3fv__III_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform3fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform3fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ static void android_glProgramUniform3fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniform3fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniform4fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ static void android_glProgramUniform4fv__III_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniform4fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniform4fv ( GLuint program, GLint location, GLsizei count, const GLfloat *value ) */ static void android_glProgramUniform4fv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniform4fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniformMatrix2fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix2fv__IIIZ_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix2fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniformMatrix2fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix2fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix2fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniformMatrix3fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix3fv__IIIZ_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix3fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniformMatrix3fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix3fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix3fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniformMatrix4fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix4fv__IIIZ_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix4fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniformMatrix4fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix4fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix4fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniformMatrix2x3fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix2x3fv__IIIZ_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix2x3fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniformMatrix2x3fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix2x3fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix2x3fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniformMatrix3x2fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix3x2fv__IIIZ_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix3x2fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniformMatrix3x2fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix3x2fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix3x2fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniformMatrix2x4fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix2x4fv__IIIZ_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix2x4fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniformMatrix2x4fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix2x4fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix2x4fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniformMatrix4x2fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix4x2fv__IIIZ_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix4x2fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniformMatrix4x2fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix4x2fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix4x2fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniformMatrix3x4fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix3x4fv__IIIZ_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix3x4fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniformMatrix3x4fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix3x4fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix3x4fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glProgramUniformMatrix4x3fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix4x3fv__IIIZ_3FI (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *value_base = (GLfloat *) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; if (!value_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "value == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(value_ref) - offset; value_base = (GLfloat *) _env->GetFloatArrayElements(value_ref, (jboolean *)0); value = value_base + offset; glProgramUniformMatrix4x3fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); exit: if (value_base) { _env->ReleaseFloatArrayElements(value_ref, (jfloat*)value_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glProgramUniformMatrix4x3fv ( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ static void android_glProgramUniformMatrix4x3fv__IIIZLjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint program, jint location, jint count, jboolean transpose, jobject value_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *value = (GLfloat *) 0; value = (GLfloat *)getPointer(_env, value_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (value == NULL) { char * _valueBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); value = (GLfloat *) (_valueBase + _bufferOffset); } glProgramUniformMatrix4x3fv( (GLuint)program, (GLint)location, (GLsizei)count, (GLboolean)transpose, (GLfloat *)value ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)value, JNI_ABORT); } } /* void glValidateProgramPipeline ( GLuint pipeline ) */ static void android_glValidateProgramPipeline__I (JNIEnv *_env, jobject _this, jint pipeline) { glValidateProgramPipeline( (GLuint)pipeline ); } #include /* void glGetProgramPipelineInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */ static jstring android_glGetProgramPipelineInfoLog(JNIEnv *_env, jobject, jint shader) { GLint infoLen = 0; glGetProgramPipelineiv(shader, GL_INFO_LOG_LENGTH, &infoLen); if (!infoLen) { return _env->NewStringUTF(""); } char* buf = (char*) malloc(infoLen); if (buf == NULL) { jniThrowException(_env, "java/lang/OutOfMemoryError", "out of memory"); return NULL; } glGetProgramPipelineInfoLog(shader, infoLen, NULL, buf); jstring result = _env->NewStringUTF(buf); free(buf); return result; } /* void glBindImageTexture ( GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format ) */ static void android_glBindImageTexture__IIIZIII (JNIEnv *_env, jobject _this, jint unit, jint texture, jint level, jboolean layered, jint layer, jint access, jint format) { glBindImageTexture( (GLuint)unit, (GLuint)texture, (GLint)level, (GLboolean)layered, (GLint)layer, (GLenum)access, (GLenum)format ); } /* void glGetBooleani_v ( GLenum target, GLuint index, GLboolean *data ) */ static void android_glGetBooleani_v__II_3ZI (JNIEnv *_env, jobject _this, jint target, jint index, jbooleanArray data_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLboolean *data_base = (GLboolean *) 0; jint _remaining; GLboolean *data = (GLboolean *) 0; if (!data_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "data == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(data_ref) - offset; data_base = (GLboolean *) _env->GetBooleanArrayElements(data_ref, (jboolean *)0); data = data_base + offset; glGetBooleani_v( (GLenum)target, (GLuint)index, (GLboolean *)data ); exit: if (data_base) { _env->ReleaseBooleanArrayElements(data_ref, (jboolean*)data_base, _exception ? JNI_ABORT: 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glGetBooleani_v ( GLenum target, GLuint index, GLboolean *data ) */ static void android_glGetBooleani_v__IILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint index, jobject data_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLboolean *data = (GLboolean *) 0; data = (GLboolean *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (data == NULL) { char * _dataBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); data = (GLboolean *) (_dataBase + _bufferOffset); } glGetBooleani_v( (GLenum)target, (GLuint)index, (GLboolean *)data ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)data, 0); } } /* void glMemoryBarrier ( GLbitfield barriers ) */ static void android_glMemoryBarrier__I (JNIEnv *_env, jobject _this, jint barriers) { glMemoryBarrier( (GLbitfield)barriers ); } /* void glMemoryBarrierByRegion ( GLbitfield barriers ) */ static void android_glMemoryBarrierByRegion__I (JNIEnv *_env, jobject _this, jint barriers) { glMemoryBarrierByRegion( (GLbitfield)barriers ); } /* void glTexStorage2DMultisample ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations ) */ static void android_glTexStorage2DMultisample__IIIIIZ (JNIEnv *_env, jobject _this, jint target, jint samples, jint internalformat, jint width, jint height, jboolean fixedsamplelocations) { glTexStorage2DMultisample( (GLenum)target, (GLsizei)samples, (GLenum)internalformat, (GLsizei)width, (GLsizei)height, (GLboolean)fixedsamplelocations ); } /* void glGetMultisamplefv ( GLenum pname, GLuint index, GLfloat *val ) */ static void android_glGetMultisamplefv__II_3FI (JNIEnv *_env, jobject _this, jint pname, jint index, jfloatArray val_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *val_base = (GLfloat *) 0; jint _remaining; GLfloat *val = (GLfloat *) 0; if (!val_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "val == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(val_ref) - offset; val_base = (GLfloat *) _env->GetFloatArrayElements(val_ref, (jboolean *)0); val = val_base + offset; glGetMultisamplefv( (GLenum)pname, (GLuint)index, (GLfloat *)val ); exit: if (val_base) { _env->ReleaseFloatArrayElements(val_ref, (jfloat*)val_base, _exception ? JNI_ABORT: 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glGetMultisamplefv ( GLenum pname, GLuint index, GLfloat *val ) */ static void android_glGetMultisamplefv__IILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint pname, jint index, jobject val_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *val = (GLfloat *) 0; val = (GLfloat *)getPointer(_env, val_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (val == NULL) { char * _valBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); val = (GLfloat *) (_valBase + _bufferOffset); } glGetMultisamplefv( (GLenum)pname, (GLuint)index, (GLfloat *)val ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)val, 0); } } /* void glSampleMaski ( GLuint maskNumber, GLbitfield mask ) */ static void android_glSampleMaski__II (JNIEnv *_env, jobject _this, jint maskNumber, jint mask) { glSampleMaski( (GLuint)maskNumber, (GLbitfield)mask ); } /* void glGetTexLevelParameteriv ( GLenum target, GLint level, GLenum pname, GLint *params ) */ static void android_glGetTexLevelParameteriv__III_3II (JNIEnv *_env, jobject _this, jint target, jint level, jint pname, jintArray params_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLint *params_base = (GLint *) 0; jint _remaining; GLint *params = (GLint *) 0; if (!params_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "params == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLint *) _env->GetIntArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexLevelParameteriv( (GLenum)target, (GLint)level, (GLenum)pname, (GLint *)params ); exit: if (params_base) { _env->ReleaseIntArrayElements(params_ref, (jint*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glGetTexLevelParameteriv ( GLenum target, GLint level, GLenum pname, GLint *params ) */ static void android_glGetTexLevelParameteriv__IIILjava_nio_IntBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint pname, jobject params_buf) { jintArray _array = (jintArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLint *params = (GLint *) 0; params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0); params = (GLint *) (_paramsBase + _bufferOffset); } glGetTexLevelParameteriv( (GLenum)target, (GLint)level, (GLenum)pname, (GLint *)params ); if (_array) { _env->ReleaseIntArrayElements(_array, (jint*)params, 0); } } /* void glGetTexLevelParameterfv ( GLenum target, GLint level, GLenum pname, GLfloat *params ) */ static void android_glGetTexLevelParameterfv__III_3FI (JNIEnv *_env, jobject _this, jint target, jint level, jint pname, jfloatArray params_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; GLfloat *params_base = (GLfloat *) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; if (!params_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "params == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(params_ref) - offset; params_base = (GLfloat *) _env->GetFloatArrayElements(params_ref, (jboolean *)0); params = params_base + offset; glGetTexLevelParameterfv( (GLenum)target, (GLint)level, (GLenum)pname, (GLfloat *)params ); exit: if (params_base) { _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base, _exception ? JNI_ABORT: 0); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); } } /* void glGetTexLevelParameterfv ( GLenum target, GLint level, GLenum pname, GLfloat *params ) */ static void android_glGetTexLevelParameterfv__IIILjava_nio_FloatBuffer_2 (JNIEnv *_env, jobject _this, jint target, jint level, jint pname, jobject params_buf) { jfloatArray _array = (jfloatArray) 0; jint _bufferOffset = (jint) 0; jint _remaining; GLfloat *params = (GLfloat *) 0; params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset); if (params == NULL) { char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0); params = (GLfloat *) (_paramsBase + _bufferOffset); } glGetTexLevelParameterfv( (GLenum)target, (GLint)level, (GLenum)pname, (GLfloat *)params ); if (_array) { _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0); } } /* void glBindVertexBuffer ( GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride ) */ static void android_glBindVertexBuffer__IIJI (JNIEnv *_env, jobject _this, jint bindingindex, jint buffer, jlong offset, jint stride) { if (sizeof(GLintptr) != sizeof(jlong) && (offset < LONG_MIN || offset > LONG_MAX)) { jniThrowException(_env, "java/lang/IllegalArgumentException", "offset too large"); return; } glBindVertexBuffer( (GLuint)bindingindex, (GLuint)buffer, (GLintptr)offset, (GLsizei)stride ); } /* void glVertexAttribFormat ( GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset ) */ static void android_glVertexAttribFormat__IIIZI (JNIEnv *_env, jobject _this, jint attribindex, jint size, jint type, jboolean normalized, jint relativeoffset) { glVertexAttribFormat( (GLuint)attribindex, (GLint)size, (GLenum)type, (GLboolean)normalized, (GLuint)relativeoffset ); } /* void glVertexAttribIFormat ( GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset ) */ static void android_glVertexAttribIFormat__IIII (JNIEnv *_env, jobject _this, jint attribindex, jint size, jint type, jint relativeoffset) { glVertexAttribIFormat( (GLuint)attribindex, (GLint)size, (GLenum)type, (GLuint)relativeoffset ); } /* void glVertexAttribBinding ( GLuint attribindex, GLuint bindingindex ) */ static void android_glVertexAttribBinding__II (JNIEnv *_env, jobject _this, jint attribindex, jint bindingindex) { glVertexAttribBinding( (GLuint)attribindex, (GLuint)bindingindex ); } /* void glVertexBindingDivisor ( GLuint bindingindex, GLuint divisor ) */ static void android_glVertexBindingDivisor__II (JNIEnv *_env, jobject _this, jint bindingindex, jint divisor) { glVertexBindingDivisor( (GLuint)bindingindex, (GLuint)divisor ); } static const char *classPathName = "android/opengl/GLES31"; static JNINativeMethod methods[] = { {"_nativeClassInit", "()V", (void*)nativeClassInit }, {"glDispatchCompute", "(III)V", (void *) android_glDispatchCompute__III }, {"glDispatchComputeIndirect", "(J)V", (void *) android_glDispatchComputeIndirect }, {"glDrawArraysIndirect", "(IJ)V", (void *) android_glDrawArraysIndirect }, {"glDrawElementsIndirect", "(IIJ)V", (void *) android_glDrawElementsIndirect }, {"glFramebufferParameteri", "(III)V", (void *) android_glFramebufferParameteri__III }, {"glGetFramebufferParameteriv", "(II[II)V", (void *) android_glGetFramebufferParameteriv__II_3II }, {"glGetFramebufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetFramebufferParameteriv__IILjava_nio_IntBuffer_2 }, {"glGetProgramInterfaceiv", "(III[II)V", (void *) android_glGetProgramInterfaceiv__III_3II }, {"glGetProgramInterfaceiv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetProgramInterfaceiv__IIILjava_nio_IntBuffer_2 }, {"glGetProgramResourceIndex", "(IILjava/lang/String;)I", (void *) android_glGetProgramResourceIndex__IILjava_lang_String_2 }, {"glGetProgramResourceName", "(III)Ljava/lang/String;", (void *) android_glGetProgramResourceName }, {"glGetProgramResourceiv", "(IIII[III[II[II)V", (void *) android_glGetProgramResourceiv__IIII_3III_3II_3II }, {"glGetProgramResourceiv", "(IIIILjava/nio/IntBuffer;ILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V", (void *) android_glGetProgramResourceiv__IIIILjava_nio_IntBuffer_2ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 }, {"glGetProgramResourceLocation", "(IILjava/lang/String;)I", (void *) android_glGetProgramResourceLocation__IILjava_lang_String_2 }, {"glUseProgramStages", "(III)V", (void *) android_glUseProgramStages__III }, {"glActiveShaderProgram", "(II)V", (void *) android_glActiveShaderProgram__II }, {"glCreateShaderProgramv", "(I[Ljava/lang/String;)I", (void *) android_glCreateShaderProgramv }, {"glBindProgramPipeline", "(I)V", (void *) android_glBindProgramPipeline__I }, {"glDeleteProgramPipelines", "(I[II)V", (void *) android_glDeleteProgramPipelines__I_3II }, {"glDeleteProgramPipelines", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteProgramPipelines__ILjava_nio_IntBuffer_2 }, {"glGenProgramPipelines", "(I[II)V", (void *) android_glGenProgramPipelines__I_3II }, {"glGenProgramPipelines", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenProgramPipelines__ILjava_nio_IntBuffer_2 }, {"glIsProgramPipeline", "(I)Z", (void *) android_glIsProgramPipeline__I }, {"glGetProgramPipelineiv", "(II[II)V", (void *) android_glGetProgramPipelineiv__II_3II }, {"glGetProgramPipelineiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetProgramPipelineiv__IILjava_nio_IntBuffer_2 }, {"glProgramUniform1i", "(III)V", (void *) android_glProgramUniform1i__III }, {"glProgramUniform2i", "(IIII)V", (void *) android_glProgramUniform2i__IIII }, {"glProgramUniform3i", "(IIIII)V", (void *) android_glProgramUniform3i__IIIII }, {"glProgramUniform4i", "(IIIIII)V", (void *) android_glProgramUniform4i__IIIIII }, {"glProgramUniform1ui", "(III)V", (void *) android_glProgramUniform1ui__III }, {"glProgramUniform2ui", "(IIII)V", (void *) android_glProgramUniform2ui__IIII }, {"glProgramUniform3ui", "(IIIII)V", (void *) android_glProgramUniform3ui__IIIII }, {"glProgramUniform4ui", "(IIIIII)V", (void *) android_glProgramUniform4ui__IIIIII }, {"glProgramUniform1f", "(IIF)V", (void *) android_glProgramUniform1f__IIF }, {"glProgramUniform2f", "(IIFF)V", (void *) android_glProgramUniform2f__IIFF }, {"glProgramUniform3f", "(IIFFF)V", (void *) android_glProgramUniform3f__IIFFF }, {"glProgramUniform4f", "(IIFFFF)V", (void *) android_glProgramUniform4f__IIFFFF }, {"glProgramUniform1iv", "(III[II)V", (void *) android_glProgramUniform1iv__III_3II }, {"glProgramUniform1iv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glProgramUniform1iv__IIILjava_nio_IntBuffer_2 }, {"glProgramUniform2iv", "(III[II)V", (void *) android_glProgramUniform2iv__III_3II }, {"glProgramUniform2iv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glProgramUniform2iv__IIILjava_nio_IntBuffer_2 }, {"glProgramUniform3iv", "(III[II)V", (void *) android_glProgramUniform3iv__III_3II }, {"glProgramUniform3iv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glProgramUniform3iv__IIILjava_nio_IntBuffer_2 }, {"glProgramUniform4iv", "(III[II)V", (void *) android_glProgramUniform4iv__III_3II }, {"glProgramUniform4iv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glProgramUniform4iv__IIILjava_nio_IntBuffer_2 }, {"glProgramUniform1uiv", "(III[II)V", (void *) android_glProgramUniform1uiv__III_3II }, {"glProgramUniform1uiv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glProgramUniform1uiv__IIILjava_nio_IntBuffer_2 }, {"glProgramUniform2uiv", "(III[II)V", (void *) android_glProgramUniform2uiv__III_3II }, {"glProgramUniform2uiv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glProgramUniform2uiv__IIILjava_nio_IntBuffer_2 }, {"glProgramUniform3uiv", "(III[II)V", (void *) android_glProgramUniform3uiv__III_3II }, {"glProgramUniform3uiv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glProgramUniform3uiv__IIILjava_nio_IntBuffer_2 }, {"glProgramUniform4uiv", "(III[II)V", (void *) android_glProgramUniform4uiv__III_3II }, {"glProgramUniform4uiv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glProgramUniform4uiv__IIILjava_nio_IntBuffer_2 }, {"glProgramUniform1fv", "(III[FI)V", (void *) android_glProgramUniform1fv__III_3FI }, {"glProgramUniform1fv", "(IIILjava/nio/FloatBuffer;)V", (void *) android_glProgramUniform1fv__IIILjava_nio_FloatBuffer_2 }, {"glProgramUniform2fv", "(III[FI)V", (void *) android_glProgramUniform2fv__III_3FI }, {"glProgramUniform2fv", "(IIILjava/nio/FloatBuffer;)V", (void *) android_glProgramUniform2fv__IIILjava_nio_FloatBuffer_2 }, {"glProgramUniform3fv", "(III[FI)V", (void *) android_glProgramUniform3fv__III_3FI }, {"glProgramUniform3fv", "(IIILjava/nio/FloatBuffer;)V", (void *) android_glProgramUniform3fv__IIILjava_nio_FloatBuffer_2 }, {"glProgramUniform4fv", "(III[FI)V", (void *) android_glProgramUniform4fv__III_3FI }, {"glProgramUniform4fv", "(IIILjava/nio/FloatBuffer;)V", (void *) android_glProgramUniform4fv__IIILjava_nio_FloatBuffer_2 }, {"glProgramUniformMatrix2fv", "(IIIZ[FI)V", (void *) android_glProgramUniformMatrix2fv__IIIZ_3FI }, {"glProgramUniformMatrix2fv", "(IIIZLjava/nio/FloatBuffer;)V", (void *) android_glProgramUniformMatrix2fv__IIIZLjava_nio_FloatBuffer_2 }, {"glProgramUniformMatrix3fv", "(IIIZ[FI)V", (void *) android_glProgramUniformMatrix3fv__IIIZ_3FI }, {"glProgramUniformMatrix3fv", "(IIIZLjava/nio/FloatBuffer;)V", (void *) android_glProgramUniformMatrix3fv__IIIZLjava_nio_FloatBuffer_2 }, {"glProgramUniformMatrix4fv", "(IIIZ[FI)V", (void *) android_glProgramUniformMatrix4fv__IIIZ_3FI }, {"glProgramUniformMatrix4fv", "(IIIZLjava/nio/FloatBuffer;)V", (void *) android_glProgramUniformMatrix4fv__IIIZLjava_nio_FloatBuffer_2 }, {"glProgramUniformMatrix2x3fv", "(IIIZ[FI)V", (void *) android_glProgramUniformMatrix2x3fv__IIIZ_3FI }, {"glProgramUniformMatrix2x3fv", "(IIIZLjava/nio/FloatBuffer;)V", (void *) android_glProgramUniformMatrix2x3fv__IIIZLjava_nio_FloatBuffer_2 }, {"glProgramUniformMatrix3x2fv", "(IIIZ[FI)V", (void *) android_glProgramUniformMatrix3x2fv__IIIZ_3FI }, {"glProgramUniformMatrix3x2fv", "(IIIZLjava/nio/FloatBuffer;)V", (void *) android_glProgramUniformMatrix3x2fv__IIIZLjava_nio_FloatBuffer_2 }, {"glProgramUniformMatrix2x4fv", "(IIIZ[FI)V", (void *) android_glProgramUniformMatrix2x4fv__IIIZ_3FI }, {"glProgramUniformMatrix2x4fv", "(IIIZLjava/nio/FloatBuffer;)V", (void *) android_glProgramUniformMatrix2x4fv__IIIZLjava_nio_FloatBuffer_2 }, {"glProgramUniformMatrix4x2fv", "(IIIZ[FI)V", (void *) android_glProgramUniformMatrix4x2fv__IIIZ_3FI }, {"glProgramUniformMatrix4x2fv", "(IIIZLjava/nio/FloatBuffer;)V", (void *) android_glProgramUniformMatrix4x2fv__IIIZLjava_nio_FloatBuffer_2 }, {"glProgramUniformMatrix3x4fv", "(IIIZ[FI)V", (void *) android_glProgramUniformMatrix3x4fv__IIIZ_3FI }, {"glProgramUniformMatrix3x4fv", "(IIIZLjava/nio/FloatBuffer;)V", (void *) android_glProgramUniformMatrix3x4fv__IIIZLjava_nio_FloatBuffer_2 }, {"glProgramUniformMatrix4x3fv", "(IIIZ[FI)V", (void *) android_glProgramUniformMatrix4x3fv__IIIZ_3FI }, {"glProgramUniformMatrix4x3fv", "(IIIZLjava/nio/FloatBuffer;)V", (void *) android_glProgramUniformMatrix4x3fv__IIIZLjava_nio_FloatBuffer_2 }, {"glValidateProgramPipeline", "(I)V", (void *) android_glValidateProgramPipeline__I }, {"glGetProgramPipelineInfoLog", "(I)Ljava/lang/String;", (void *) android_glGetProgramPipelineInfoLog }, {"glBindImageTexture", "(IIIZIII)V", (void *) android_glBindImageTexture__IIIZIII }, {"glGetBooleani_v", "(II[ZI)V", (void *) android_glGetBooleani_v__II_3ZI }, {"glGetBooleani_v", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBooleani_v__IILjava_nio_IntBuffer_2 }, {"glMemoryBarrier", "(I)V", (void *) android_glMemoryBarrier__I }, {"glMemoryBarrierByRegion", "(I)V", (void *) android_glMemoryBarrierByRegion__I }, {"glTexStorage2DMultisample", "(IIIIIZ)V", (void *) android_glTexStorage2DMultisample__IIIIIZ }, {"glGetMultisamplefv", "(II[FI)V", (void *) android_glGetMultisamplefv__II_3FI }, {"glGetMultisamplefv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetMultisamplefv__IILjava_nio_FloatBuffer_2 }, {"glSampleMaski", "(II)V", (void *) android_glSampleMaski__II }, {"glGetTexLevelParameteriv", "(III[II)V", (void *) android_glGetTexLevelParameteriv__III_3II }, {"glGetTexLevelParameteriv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetTexLevelParameteriv__IIILjava_nio_IntBuffer_2 }, {"glGetTexLevelParameterfv", "(III[FI)V", (void *) android_glGetTexLevelParameterfv__III_3FI }, {"glGetTexLevelParameterfv", "(IIILjava/nio/FloatBuffer;)V", (void *) android_glGetTexLevelParameterfv__IIILjava_nio_FloatBuffer_2 }, {"glBindVertexBuffer", "(IIJI)V", (void *) android_glBindVertexBuffer__IIJI }, {"glVertexAttribFormat", "(IIIZI)V", (void *) android_glVertexAttribFormat__IIIZI }, {"glVertexAttribIFormat", "(IIII)V", (void *) android_glVertexAttribIFormat__IIII }, {"glVertexAttribBinding", "(II)V", (void *) android_glVertexAttribBinding__II }, {"glVertexBindingDivisor", "(II)V", (void *) android_glVertexBindingDivisor__II }, }; int register_android_opengl_jni_GLES31(JNIEnv *_env) { int err; err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods)); return err; }