1560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* 2560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich** 3560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich** Copyright 2009, The Android Open Source Project 4560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich** 524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** Licensed under the Apache License, Version 2.0 (the "License"); 624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** you may not use this file except in compliance with the License. 724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** You may obtain a copy of the License at 8560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich** 924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** http://www.apache.org/licenses/LICENSE-2.0 10560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich** 1124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** Unless required by applicable law or agreed to in writing, software 1224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** distributed under the License is distributed on an "AS IS" BASIS, 1324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** See the License for the specific language governing permissions and 15560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich** limitations under the License. 16560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich*/ 17560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 18560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich// This source file is automatically generated 19560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "jni.h" 2124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "JNIHelp.h" 22560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#include <android_runtime/AndroidRuntime.h> 23560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#include <utils/misc.h> 24560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 25560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#include <assert.h> 26560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#include <GLES2/gl2.h> 27560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#include <GLES2/gl2ext.h> 28560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 29560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic int initialized = 0; 30560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 31560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jclass nioAccessClass; 32560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jclass bufferClass; 33560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jmethodID getBasePointerID; 34560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jmethodID getBaseArrayID; 35560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jmethodID getBaseArrayOffsetID; 36560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jfieldID positionID; 37560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jfieldID limitID; 38560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jfieldID elementSizeShiftID; 39560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 40560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* Cache method IDs each time the class is loaded. */ 41560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 42560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass) 44560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{ 45560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess"); 46560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal); 47560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 48560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jclass bufferClassLocal = _env->FindClass("java/nio/Buffer"); 49560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal); 50560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 51560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich getBasePointerID = _env->GetStaticMethodID(nioAccessClass, 52560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich "getBasePointer", "(Ljava/nio/Buffer;)J"); 53560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, 54560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;"); 55560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass, 56560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich "getBaseArrayOffset", "(Ljava/nio/Buffer;)I"); 57560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 58560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich positionID = _env->GetFieldID(bufferClass, "position", "I"); 59560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich limitID = _env->GetFieldID(bufferClass, "limit", "I"); 60560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich elementSizeShiftID = 61560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetFieldID(bufferClass, "_elementSizeShift", "I"); 62560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 63560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 64560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 65560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void * 6617045a16575ece34cfadb63da4791f115625df78Thomas TafertshofergetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset) 67560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{ 68560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint position; 69560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint limit; 70560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint elementSizeShift; 71560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jlong pointer; 72560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 73560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich position = _env->GetIntField(buffer, positionID); 74560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich limit = _env->GetIntField(buffer, limitID); 75560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 76560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich *remaining = (limit - position) << elementSizeShift; 77560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich pointer = _env->CallStaticLongMethod(nioAccessClass, 78560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich getBasePointerID, buffer); 79560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (pointer != 0L) { 80560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich *array = NULL; 81560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return (void *) (jint) pointer; 82560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 8324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes 84560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass, 85560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich getBaseArrayID, buffer); 8617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer *offset = _env->CallStaticIntMethod(nioAccessClass, 87560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich getBaseArrayOffsetID, buffer); 8824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes 8917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer return NULL; 90560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 91560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 92560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 93560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 94560814f6b11abe83ff0c4ed18cac015c276b3181Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) 95560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{ 96560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(array, data, 97560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich commit ? 0 : JNI_ABORT); 98560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 99560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 100560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void * 101560814f6b11abe83ff0c4ed18cac015c276b3181Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) { 102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich char* buf = (char*) _env->GetDirectBufferAddress(buffer); 103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (buf) { 104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint position = _env->GetIntField(buffer, positionID); 105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 106560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich buf += position << elementSizeShift; 107560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } else { 10824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jniThrowException(_env, "java/lang/IllegalArgumentException", 10924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes "Must use a native order direct Buffer"); 110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 111560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return (void*) buf; 112560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic int 115560814f6b11abe83ff0c4ed18cac015c276b3181Jack PalevichgetNumCompressedTextureFormats() { 116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich int numCompressedTextureFormats = 0; 117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats); 118560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return numCompressedTextureFormats; 119560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void glVertexAttribPointerBounds(GLuint indx, GLint size, GLenum type, 122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean normalized, GLsizei stride, const GLvoid *pointer, GLsizei count) { 123560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttribPointer(indx, size, type, normalized, stride, pointer); 124560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 125560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 126560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich// -------------------------------------------------------------------------- 127560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glActiveTexture ( GLenum texture ) */ 128560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glActiveTexture__I 130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glActiveTexture( 132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)texture 133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 134560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 135560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 136560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glAttachShader ( GLuint program, GLuint shader ) */ 137560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glAttachShader__II 139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint shader) { 140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glAttachShader( 141560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 142560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)shader 143560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBindAttribLocation ( GLuint program, GLuint index, const char *name ) */ 147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBindAttribLocation__IILjava_lang_String_2 149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint index, jstring name) { 1502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 1512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 1522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich const char* _nativename = 0; 154560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 155560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!name) { 1562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "name == null"; 158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _nativename = _env->GetStringUTFChars(name, 0); 161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glBindAttribLocation( 163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index, 165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (char *)_nativename 166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 168560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 169560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_nativename) { 170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleaseStringUTFChars(name, _nativename); 171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 172560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 1742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 1752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBindBuffer ( GLenum target, GLuint buffer ) */ 179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBindBuffer__II 181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint buffer) { 182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glBindBuffer( 183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)buffer 185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 188560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBindFramebuffer ( GLenum target, GLuint framebuffer ) */ 189560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBindFramebuffer__II 191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint framebuffer) { 192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glBindFramebuffer( 193560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)framebuffer 195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBindRenderbuffer ( GLenum target, GLuint renderbuffer ) */ 199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBindRenderbuffer__II 201560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint renderbuffer) { 202560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glBindRenderbuffer( 203560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)renderbuffer 205560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 207560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 208560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBindTexture ( GLenum target, GLuint texture ) */ 209560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBindTexture__II 211560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint texture) { 212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glBindTexture( 213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)texture 215560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 216560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 218560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBlendColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */ 219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 220560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBlendColor__FFFF 221560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glBlendColor( 223560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)red, 224560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)green, 225560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)blue, 226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)alpha 227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 228560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 229560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 230560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBlendEquation ( GLenum mode ) */ 231560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 232560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBlendEquation__I 233560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 23473108675c944ab4ee89631dced23566b12341b66Jack Palevich glBlendEquation( 23573108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)mode 23673108675c944ab4ee89631dced23566b12341b66Jack Palevich ); 237560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 238560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 239560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBlendEquationSeparate ( GLenum modeRGB, GLenum modeAlpha ) */ 240560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 241560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBlendEquationSeparate__II 242560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint modeRGB, jint modeAlpha) { 24373108675c944ab4ee89631dced23566b12341b66Jack Palevich glBlendEquationSeparate( 24473108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)modeRGB, 24573108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)modeAlpha 24673108675c944ab4ee89631dced23566b12341b66Jack Palevich ); 247560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 248560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 249560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */ 250560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 251560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBlendFunc__II 252560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) { 253560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glBlendFunc( 254560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)sfactor, 255560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)dfactor 256560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 257560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 258560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 259560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBlendFuncSeparate ( GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha ) */ 260560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 261560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBlendFuncSeparate__IIII 262560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) { 26373108675c944ab4ee89631dced23566b12341b66Jack Palevich glBlendFuncSeparate( 26473108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)srcRGB, 26573108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)dstRGB, 26673108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)srcAlpha, 26773108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)dstAlpha 26873108675c944ab4ee89631dced23566b12341b66Jack Palevich ); 269560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 270560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 271560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */ 272560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 273560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBufferData__IILjava_nio_Buffer_2I 274560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) { 2752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 2762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 2772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 278560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 27917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 280560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 281560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *data = (GLvoid *) 0; 282560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 283560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (data_buf) { 28417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 285560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < size) { 2862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 2872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 2882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < size < needed"; 289560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 290560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 291560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 29237c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer if (data_buf && data == NULL) { 29317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 29417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 29517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 296560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glBufferData( 297560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 298560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizeiptr)size, 299560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)data, 300560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)usage 301560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 302560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 303560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 304560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 305560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 306560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 3082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 3092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 310560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 311560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 312560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */ 313560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 314560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBufferSubData__IIILjava_nio_Buffer_2 315560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) { 3162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 3172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 3182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 32017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *data = (GLvoid *) 0; 323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 32417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 325560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < size) { 3262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 3272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 3282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < size < needed"; 329560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 330560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 33117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 33217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 33317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 33417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 335560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glBufferSubData( 336560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 337560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLintptr)offset, 338560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizeiptr)size, 339560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)data 340560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 342560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 344560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 345560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 3472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 3482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 349560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 350560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 351560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLenum glCheckFramebufferStatus ( GLenum target ) */ 352560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint 353560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCheckFramebufferStatus__I 354560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target) { 355560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLenum _returnValue; 356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glCheckFramebufferStatus( 357560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target 358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 361560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 362560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glClear ( GLbitfield mask ) */ 363560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 364560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glClear__I 365560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint mask) { 366560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glClear( 367560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLbitfield)mask 368560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 369560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 370560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 371560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */ 372560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 373560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glClearColor__FFFF 374560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 375560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glClearColor( 376560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)red, 377560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)green, 378560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)blue, 379560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)alpha 380560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 381560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 382560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 383560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glClearDepthf ( GLclampf depth ) */ 384560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 385560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glClearDepthf__F 386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jfloat depth) { 387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glClearDepthf( 388560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)depth 389560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 390560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glClearStencil ( GLint s ) */ 393560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glClearStencil__I 395560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint s) { 396560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glClearStencil( 397560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)s 398560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */ 402560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 403560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glColorMask__ZZZZ 404560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) { 405560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glColorMask( 406560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)red, 407560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)green, 408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)blue, 409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)alpha 410560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 411560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 412560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 413560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCompileShader ( GLuint shader ) */ 414560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCompileShader__I 416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint shader) { 417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glCompileShader( 418560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)shader 419560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 420560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 421560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 422560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */ 423560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 424560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 425560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) { 426560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 42717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 428560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 429560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *data = (GLvoid *) 0; 430560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 43117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 43217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 43317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 43417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 43517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 436560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glCompressedTexImage2D( 437560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 438560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)level, 439560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)internalformat, 440560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)width, 441560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)height, 442560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)border, 443560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)imageSize, 444560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)data 445560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 446560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 447560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 448560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 449560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 450560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */ 452560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 453560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) { 455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 45617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 457560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 458560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *data = (GLvoid *) 0; 459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 46017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 46117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 46217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 46317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 46417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 465560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glCompressedTexSubImage2D( 466560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 467560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)level, 468560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)xoffset, 469560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)yoffset, 470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)width, 471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)height, 472560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)format, 473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)imageSize, 474560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)data 475560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 476560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 477560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 479560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 480560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 481560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */ 482560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 483560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCopyTexImage2D__IIIIIIII 484560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) { 485560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glCopyTexImage2D( 486560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 487560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)level, 488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)internalformat, 489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)x, 490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)y, 491560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)width, 492560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)height, 493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)border 494560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 496560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */ 498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 499560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCopyTexSubImage2D__IIIIIIII 500560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) { 501560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glCopyTexSubImage2D( 502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 503560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)level, 504560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)xoffset, 505560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)yoffset, 506560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)x, 507560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)y, 508560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)width, 509560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)height 510560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 511560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 512560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 513560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLuint glCreateProgram ( void ) */ 514560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint 515560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCreateProgram__ 516560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this) { 517560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint _returnValue; 518560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glCreateProgram(); 519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 520560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLuint glCreateShader ( GLenum type ) */ 523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint 524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCreateShader__I 525560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint type) { 526560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint _returnValue; 527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glCreateShader( 528560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)type 529560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 532560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCullFace ( GLenum mode ) */ 534560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 535560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCullFace__I 536560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 537560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glCullFace( 538560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)mode 539560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 540560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 541560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 542560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */ 543560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 544560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteBuffers__I_3II 545560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) { 5462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 5472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 5482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 549560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *buffers_base = (GLuint *) 0; 550560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 551560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *buffers = (GLuint *) 0; 552560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 553560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!buffers_ref) { 5542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 5552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "buffers == null"; 557560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 558560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 559560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 5602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 5612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 563560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 564560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 565560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(buffers_ref) - offset; 566560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < n) { 5672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 5682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 570560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 571560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 572560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich buffers_base = (GLuint *) 573560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); 574560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich buffers = buffers_base + offset; 575560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 576560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDeleteBuffers( 577560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 578560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)buffers 579560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 580560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 581560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 582560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (buffers_base) { 583560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, 584560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 585560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 5872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 5882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 589560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 590560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 591560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */ 592560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 593560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteBuffers__ILjava_nio_IntBuffer_2 594560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) { 5952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 5962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 5972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 598560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 59917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 600560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 601560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *buffers = (GLuint *) 0; 602560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 60317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset); 604560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < n) { 6052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 608560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 609560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 61017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (buffers == NULL) { 61117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 61217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *) (_buffersBase + _bufferOffset); 61317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 614560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDeleteBuffers( 615560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 616560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)buffers 617560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 618560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 619560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 620560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 621560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, buffers, JNI_FALSE); 622560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 6232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 626560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 627560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 628560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteFramebuffers ( GLsizei n, const GLuint *framebuffers ) */ 629560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 630560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteFramebuffers__I_3II 631560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) { 6322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 6332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 6342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 635560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *framebuffers_base = (GLuint *) 0; 636560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 637560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *framebuffers = (GLuint *) 0; 638560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 639560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!framebuffers_ref) { 6402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "framebuffers == null"; 643560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 644560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 645560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 6462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 649560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 650560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 651560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(framebuffers_ref) - offset; 652560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich framebuffers_base = (GLuint *) 653560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0); 654560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich framebuffers = framebuffers_base + offset; 655560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 656560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDeleteFramebuffers( 657560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 658560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)framebuffers 659560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 660560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 661560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 662560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (framebuffers_base) { 663560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base, 664560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 665560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 6662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 669560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 670560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 671560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteFramebuffers ( GLsizei n, const GLuint *framebuffers ) */ 672560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 673560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteFramebuffers__ILjava_nio_IntBuffer_2 674560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) { 675560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 67617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 677560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 678560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *framebuffers = (GLuint *) 0; 679560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 68017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining, &_bufferOffset); 68117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (framebuffers == NULL) { 68217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _framebuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 68317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset); 68417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 685560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDeleteFramebuffers( 686560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 687560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)framebuffers 688560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 689560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 690560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, framebuffers, JNI_FALSE); 691560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 692560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 693560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 694560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteProgram ( GLuint program ) */ 695560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 696560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteProgram__I 697560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program) { 698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDeleteProgram( 699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program 700560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 701560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 702560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 703560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteRenderbuffers ( GLsizei n, const GLuint *renderbuffers ) */ 704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteRenderbuffers__I_3II 706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) { 7072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 7082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 7092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *renderbuffers_base = (GLuint *) 0; 711560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *renderbuffers = (GLuint *) 0; 713560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 714560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!renderbuffers_ref) { 7152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 7162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "renderbuffers == null"; 718560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 719560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 720560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 7212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 7222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 724560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 725560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(renderbuffers_ref) - offset; 727560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich renderbuffers_base = (GLuint *) 728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0); 729560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich renderbuffers = renderbuffers_base + offset; 730560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 731560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDeleteRenderbuffers( 732560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 733560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)renderbuffers 734560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 735560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 736560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (renderbuffers_base) { 738560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base, 739560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 740560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 7412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 7422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 7432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 744560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 745560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 746560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteRenderbuffers ( GLsizei n, const GLuint *renderbuffers ) */ 747560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 748560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteRenderbuffers__ILjava_nio_IntBuffer_2 749560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) { 750560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 75117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 752560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 753560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *renderbuffers = (GLuint *) 0; 754560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 75517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining, &_bufferOffset); 75617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (renderbuffers == NULL) { 75717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _renderbuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 75817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset); 75917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 760560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDeleteRenderbuffers( 761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 762560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)renderbuffers 763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, renderbuffers, JNI_FALSE); 766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 767560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 768560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 769560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteShader ( GLuint shader ) */ 770560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 771560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteShader__I 772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint shader) { 773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDeleteShader( 774560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)shader 775560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 776560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 778560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 779560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 780560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteTextures__I_3II 781560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 7822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 7832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 7842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *textures_base = (GLuint *) 0; 786560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 787560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *textures = (GLuint *) 0; 788560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 789560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!textures_ref) { 7902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 7912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "textures == null"; 793560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 794560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 795560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 7962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 7972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(textures_ref) - offset; 802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < n) { 8032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 807560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 808560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich textures_base = (GLuint *) 809560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 810560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich textures = textures_base + offset; 811560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 812560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDeleteTextures( 813560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 814560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)textures 815560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 816560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 817560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 818560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (textures_base) { 819560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 820560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 821560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 8222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 8232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 8242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 825560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 826560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 827560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 828560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 829560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteTextures__ILjava_nio_IntBuffer_2 830560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 8312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 8322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 8332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 834560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 83517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 836560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 837560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *textures = (GLuint *) 0; 838560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 83917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); 840560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < n) { 8412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 844560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 845560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 84617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (textures == NULL) { 84717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 84817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *) (_texturesBase + _bufferOffset); 84917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 850560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDeleteTextures( 851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 852560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)textures 853560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 854560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 855560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 856560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 857560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, textures, JNI_FALSE); 858560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 8592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 8602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 8612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 862560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 863560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 864560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDepthFunc ( GLenum func ) */ 865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 866560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDepthFunc__I 867560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint func) { 868560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDepthFunc( 869560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)func 870560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 871560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 872560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 873560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDepthMask ( GLboolean flag ) */ 874560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 875560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDepthMask__Z 876560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jboolean flag) { 877560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDepthMask( 878560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)flag 879560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 880560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 881560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 882560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */ 883560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 884560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDepthRangef__FF 885560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) { 886560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDepthRangef( 887560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)zNear, 888560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)zFar 889560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 890560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 891560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 892560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDetachShader ( GLuint program, GLuint shader ) */ 893560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 894560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDetachShader__II 895560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint shader) { 896560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDetachShader( 897560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 898560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)shader 899560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 900560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 901560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 902560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDisable ( GLenum cap ) */ 903560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 904560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDisable__I 905560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 906560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDisable( 907560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)cap 908560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 909560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 910560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 911560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDisableVertexAttribArray ( GLuint index ) */ 912560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 913560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDisableVertexAttribArray__I 914560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint index) { 915560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDisableVertexAttribArray( 916560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index 917560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 918560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 919560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 920560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */ 921560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 922560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDrawArrays__III 923560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) { 924560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDrawArrays( 925560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)mode, 926560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)first, 927560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count 928560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 929560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 930560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 931224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */ 932224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevichstatic void 933224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevichandroid_glDrawElements__IIII 934224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) { 9352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 9362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 9372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 938224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich glDrawElements( 939224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (GLenum)mode, 940224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (GLsizei)count, 941224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (GLenum)type, 942224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (const GLvoid *)offset 943224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich ); 9442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 9452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 9462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 947224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich} 948224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich 949560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */ 950560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 951560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDrawElements__IIILjava_nio_Buffer_2 952560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) { 9532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 9542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 9552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 956560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 95717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 958560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 959560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *indices = (GLvoid *) 0; 960560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 96117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset); 962560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < count) { 9632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 9642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/ArrayIndexOutOfBoundsException"; 9652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < count < needed"; 966560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 967560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 96817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (indices == NULL) { 96917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 97017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer indices = (GLvoid *) (_indicesBase + _bufferOffset); 97117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 972560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glDrawElements( 973560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)mode, 974560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 975560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)type, 976560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)indices 977560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 978560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 979560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 980560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 981560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, indices, JNI_FALSE); 982560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 9832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 9842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 9852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 986560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 987560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 988560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glEnable ( GLenum cap ) */ 989560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 990560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glEnable__I 991560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 992560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glEnable( 993560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)cap 994560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 995560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 996560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 997560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glEnableVertexAttribArray ( GLuint index ) */ 998560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 999560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glEnableVertexAttribArray__I 1000560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint index) { 1001560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glEnableVertexAttribArray( 1002560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index 1003560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1004560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1005560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1006560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glFinish ( void ) */ 1007560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1008560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glFinish__ 1009560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this) { 1010560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glFinish(); 1011560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1012560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1013560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glFlush ( void ) */ 1014560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1015560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glFlush__ 1016560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this) { 1017560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glFlush(); 1018560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1019560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1020560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glFramebufferRenderbuffer ( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) */ 1021560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1022560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glFramebufferRenderbuffer__IIII 1023560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer) { 1024560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glFramebufferRenderbuffer( 1025560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 1026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)attachment, 1027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)renderbuffertarget, 1028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)renderbuffer 1029560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1030560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1032560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glFramebufferTexture2D ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) */ 1033560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glFramebufferTexture2D__IIIII 1035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint attachment, jint textarget, jint texture, jint level) { 1036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glFramebufferTexture2D( 1037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 1038560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)attachment, 1039560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)textarget, 1040560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)texture, 1041560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)level 1042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glFrontFace ( GLenum mode ) */ 1046560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1047560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glFrontFace__I 1048560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 1049560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glFrontFace( 1050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)mode 1051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1053560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1054560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */ 1055560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenBuffers__I_3II 1057560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) { 1058560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 10592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 10602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 1061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *buffers_base = (GLuint *) 0; 1062560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 1063560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *buffers = (GLuint *) 0; 1064560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!buffers_ref) { 1066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 10672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "buffers == null"; 1069560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1070560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1071560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 1072560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 10732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 1075560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1076560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1077560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(buffers_ref) - offset; 1078560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < n) { 1079560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 10802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 1082560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1083560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1084560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich buffers_base = (GLuint *) 1085560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); 1086560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich buffers = buffers_base + offset; 1087560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1088560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGenBuffers( 1089560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 1090560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)buffers 1091560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1092560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1093560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 1094560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (buffers_base) { 1095560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, 1096560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1097560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 10982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 10992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 11002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 1101560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */ 1104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenBuffers__ILjava_nio_IntBuffer_2 1106560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) { 1107560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 11082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 11092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 1110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 111117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 1112560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 1113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *buffers = (GLuint *) 0; 1114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 111517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset); 1116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < n) { 1117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 11182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 1120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 112217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (buffers == NULL) { 112317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 112417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *) (_buffersBase + _bufferOffset); 112517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 1126560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGenBuffers( 1127560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 1128560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)buffers 1129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 1132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 1133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE); 1134560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 11352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 11362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 11372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 1138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenerateMipmap ( GLenum target ) */ 1141560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1142560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenerateMipmap__I 1143560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target) { 1144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGenerateMipmap( 1145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target 1146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenFramebuffers ( GLsizei n, GLuint *framebuffers ) */ 1150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1151560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenFramebuffers__I_3II 1152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) { 1153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 11542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 11552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 1156560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *framebuffers_base = (GLuint *) 0; 1157560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 1158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *framebuffers = (GLuint *) 0; 1159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!framebuffers_ref) { 1161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 11622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "framebuffers == null"; 1164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 1167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 11682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 1170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1172560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(framebuffers_ref) - offset; 1173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich framebuffers_base = (GLuint *) 1174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0); 1175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich framebuffers = framebuffers_base + offset; 1176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGenFramebuffers( 1178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 1179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)framebuffers 1180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 1183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (framebuffers_base) { 1184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base, 1185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 11872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 11882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 11892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 1190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenFramebuffers ( GLsizei n, GLuint *framebuffers ) */ 1193560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenFramebuffers__ILjava_nio_IntBuffer_2 1195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) { 1196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 119717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 1198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 1199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *framebuffers = (GLuint *) 0; 1200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 120117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining, &_bufferOffset); 120217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (framebuffers == NULL) { 120317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _framebuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 120417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset); 120517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 1206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGenFramebuffers( 1207560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 1208560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)framebuffers 1209560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 12112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, framebuffers, JNI_TRUE); 1212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1215560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenRenderbuffers ( GLsizei n, GLuint *renderbuffers ) */ 1216560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenRenderbuffers__I_3II 1218560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) { 1219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 12202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 12212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 1222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *renderbuffers_base = (GLuint *) 0; 1223560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 1224560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *renderbuffers = (GLuint *) 0; 1225560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!renderbuffers_ref) { 1227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 12282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "renderbuffers == null"; 1230560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1231560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1232560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 1233560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 12342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 1236560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1237560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1238560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(renderbuffers_ref) - offset; 1239560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich renderbuffers_base = (GLuint *) 1240560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0); 1241560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich renderbuffers = renderbuffers_base + offset; 1242560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1243560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGenRenderbuffers( 1244560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 1245560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)renderbuffers 1246560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1247560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1248560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 1249560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (renderbuffers_base) { 1250560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base, 1251560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1252560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 12532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 12542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 12552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 1256560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1257560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1258560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenRenderbuffers ( GLsizei n, GLuint *renderbuffers ) */ 1259560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1260560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenRenderbuffers__ILjava_nio_IntBuffer_2 1261560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) { 1262560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 126317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 1264560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 1265560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *renderbuffers = (GLuint *) 0; 1266560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 126717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining, &_bufferOffset); 126817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (renderbuffers == NULL) { 126917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _renderbuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 127017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset); 127117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 1272560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGenRenderbuffers( 1273560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 1274560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)renderbuffers 1275560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1276560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 12772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, renderbuffers, JNI_TRUE); 1278560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1279560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1280560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1281560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */ 1282560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1283560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenTextures__I_3II 1284560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 1285560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 12862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 12872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 1288560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *textures_base = (GLuint *) 0; 1289560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 1290560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *textures = (GLuint *) 0; 1291560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1292560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!textures_ref) { 1293560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 12942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "textures == null"; 1296560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1297560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1298560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 1299560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 13002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 1302560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1303560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1304560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(textures_ref) - offset; 1305560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < n) { 1306560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 13072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 1309560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1310560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1311560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich textures_base = (GLuint *) 1312560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 1313560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich textures = textures_base + offset; 1314560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1315560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGenTextures( 1316560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 1317560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)textures 1318560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1320560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 1321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (textures_base) { 1322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 1323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1324560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 13252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 13262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 13272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 1328560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1329560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1330560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */ 1331560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1332560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenTextures__ILjava_nio_IntBuffer_2 1333560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 1334560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 13352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 13362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 1337560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 133817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 1339560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 1340560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *textures = (GLuint *) 0; 1341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 134217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); 1343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < n) { 1344560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 13452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 1347560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1348560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 134917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (textures == NULL) { 135017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 135117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *) (_texturesBase + _bufferOffset); 135217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 1353560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGenTextures( 1354560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 1355560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)textures 1356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1357560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 1359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 1360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE); 1361560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 13622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 13632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 13642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 1365560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1366560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1367560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1368560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1369560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetActiveAttrib__III_3II_3II_3II_3BI 1370560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jintArray length_ref, jint lengthOffset, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset, jbyteArray name_ref, jint nameOffset) { 1371560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 13722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 13732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 1374560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *length_base = (GLsizei *) 0; 1375560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _lengthRemaining; 1376560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *length = (GLsizei *) 0; 1377560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *size_base = (GLint *) 0; 1378560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _sizeRemaining; 1379560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *size = (GLint *) 0; 1380560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLenum *type_base = (GLenum *) 0; 1381560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _typeRemaining; 1382560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLenum *type = (GLenum *) 0; 1383560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich char *name_base = (char *) 0; 1384560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _nameRemaining; 1385560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich char *name = (char *) 0; 1386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!length_ref) { 1388560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 13892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length == null"; 1391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1393560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (lengthOffset < 0) { 1394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 13952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "lengthOffset < 0"; 1397560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1398560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; 1400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich length_base = (GLsizei *) 1401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0); 1402560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich length = length_base + lengthOffset; 1403560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1404560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!size_ref) { 1405560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 14062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "size == null"; 1408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1410560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (sizeOffset < 0) { 1411560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 14122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "sizeOffset < 0"; 1414560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; 1417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich size_base = (GLint *) 1418560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); 1419560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich size = size_base + sizeOffset; 1420560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1421560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!type_ref) { 1422560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 14232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "type == null"; 1425560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1426560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1427560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (typeOffset < 0) { 1428560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 14292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "typeOffset < 0"; 1431560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1432560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1433560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; 1434560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich type_base = (GLenum *) 1435560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); 1436560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich type = type_base + typeOffset; 1437560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1438560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!name_ref) { 1439560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 14402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "name == null"; 1442560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1443560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1444560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (nameOffset < 0) { 1445560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 14462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "nameOffset < 0"; 1448560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1449560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1450560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _nameRemaining = _env->GetArrayLength(name_ref) - nameOffset; 1451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich name_base = (char *) 1452560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(name_ref, (jboolean *)0); 1453560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich name = name_base + nameOffset; 1454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetActiveAttrib( 1456560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 1457560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index, 1458560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)bufsize, 1459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei *)length, 1460560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)size, 1461560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum *)type, 1462560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (char *)name 1463560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1464560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1465560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 1466560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (name_base) { 1467560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(name_ref, name_base, 1468560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1469560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (type_base) { 1471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(type_ref, type_base, 1472560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1474560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (size_base) { 1475560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(size_ref, size_base, 1476560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1477560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (length_base) { 1479560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(length_ref, length_base, 1480560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1481560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 14822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 14832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 14842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 1485560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1486560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1487560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetActiveAttrib__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B 1490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jbyte name) { 1491560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _lengthArray = (jarray) 0; 149217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _lengthBufferOffset = (jint) 0; 1493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _sizeArray = (jarray) 0; 149417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _sizeBufferOffset = (jint) 0; 1495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _typeArray = (jarray) 0; 149617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _typeBufferOffset = (jint) 0; 1497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _lengthRemaining; 1498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *length = (GLsizei *) 0; 1499560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _sizeRemaining; 1500560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *size = (GLint *) 0; 1501560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _typeRemaining; 1502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLenum *type = (GLenum *) 0; 1503560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 150417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset); 150517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); 150617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); 150717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (length == NULL) { 150817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean *) 0); 150917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer length = (GLsizei *) (_lengthBase + _lengthBufferOffset); 151017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 151117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (size == NULL) { 151217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); 151317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer size = (GLint *) (_sizeBase + _sizeBufferOffset); 151417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 151517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (type == NULL) { 151617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); 151717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer type = (GLenum *) (_typeBase + _typeBufferOffset); 151817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 1519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetActiveAttrib( 1520560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 1521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index, 1522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)bufsize, 1523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei *)length, 1524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)size, 1525560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum *)type, 1526560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (char *)name 1527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 152817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (_typeArray) { 152917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer releasePointer(_env, _typeArray, type, JNI_TRUE); 1530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_sizeArray) { 15322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _sizeArray, size, JNI_TRUE); 1533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 153417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (_lengthArray) { 153517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer releasePointer(_env, _lengthArray, length, JNI_TRUE); 1536560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1537560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1538560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1539dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer/* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1540dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferstatic jstring 1541dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferandroid_glGetActiveAttrib1 1542dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (JNIEnv *_env, jobject _this, jint program, jint index, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset) { 1543dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _exception = 0; 1544dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer const char * _exceptionType; 1545dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer const char * _exceptionMessage; 1546dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint *size_base = (GLint *) 0; 1547dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _sizeRemaining; 1548dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint *size = (GLint *) 0; 1549dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLenum *type_base = (GLenum *) 0; 1550dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _typeRemaining; 1551dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLenum *type = (GLenum *) 0; 1552dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1553dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jstring result = 0; 1554dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1555dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint len = 0; 1556dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer glGetProgramiv((GLuint)program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &len); 1557dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (!len) { 1558dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return _env->NewStringUTF(""); 1559dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1560dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer char* buf = (char*) malloc(len); 1561dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1562dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (buf == NULL) { 1563dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 1564dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return NULL; 1565dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1566dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (!size_ref) { 1567dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception = 1; 1568dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1569dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionMessage = "size == null"; 1570dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer goto exit; 1571dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1572dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (sizeOffset < 0) { 1573dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception = 1; 1574dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1575dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionMessage = "sizeOffset < 0"; 1576dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer goto exit; 1577dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1578dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; 1579dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer size_base = (GLint *) 1580dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); 1581dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer size = size_base + sizeOffset; 1582dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1583dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (!type_ref) { 1584dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception = 1; 1585dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1586dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionMessage = "type == null"; 1587dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer goto exit; 1588dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1589dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (typeOffset < 0) { 1590dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception = 1; 1591dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1592dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionMessage = "typeOffset < 0"; 1593dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer goto exit; 1594dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1595dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; 1596dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer type_base = (GLenum *) 1597dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); 1598dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer type = type_base + typeOffset; 1599dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1600dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer glGetActiveAttrib( 1601dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLuint)program, 1602dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLuint)index, 1603dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLsizei)len, 1604dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer NULL, 1605dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLint *)size, 1606dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLenum *)type, 1607dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (char *)buf 1608dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer ); 1609dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferexit: 1610dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (type_base) { 1611dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _env->ReleasePrimitiveArrayCritical(type_ref, type_base, 1612dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception ? JNI_ABORT: 0); 1613dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1614dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (size_base) { 1615dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _env->ReleasePrimitiveArrayCritical(size_ref, size_base, 1616dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception ? JNI_ABORT: 0); 1617dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1618dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (_exception != 1) { 1619dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer result = _env->NewStringUTF(buf); 1620dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1621dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (buf) { 1622dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer free(buf); 1623dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1624dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (_exception) { 1625dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 1626dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1627dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (result == 0) { 1628dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer result = _env->NewStringUTF(""); 1629dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1630dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1631dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return result; 1632dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer} 1633dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1634dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer/* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1635dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferstatic jstring 1636dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferandroid_glGetActiveAttrib2 1637dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (JNIEnv *_env, jobject _this, jint program, jint index, jobject size_buf, jobject type_buf) { 1638dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jarray _sizeArray = (jarray) 0; 1639dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _sizeBufferOffset = (jint) 0; 1640dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jarray _typeArray = (jarray) 0; 1641dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _typeBufferOffset = (jint) 0; 1642dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _lengthRemaining; 1643dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLsizei *length = (GLsizei *) 0; 1644dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _sizeRemaining; 1645dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint *size = (GLint *) 0; 1646dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _typeRemaining; 1647dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLenum *type = (GLenum *) 0; 1648dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1649dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jstring result = 0; 1650dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1651dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint len = 0; 1652dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer glGetProgramiv((GLuint)program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &len); 1653dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (!len) { 1654dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return _env->NewStringUTF(""); 1655dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1656dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer char* buf = (char*) malloc(len); 1657dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1658dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (buf == NULL) { 1659dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 1660dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return NULL; 1661dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1662dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1663dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); 1664dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); 1665dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (size == NULL) { 1666dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); 1667dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer size = (GLint *) (_sizeBase + _sizeBufferOffset); 1668dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1669dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (type == NULL) { 1670dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); 1671dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer type = (GLenum *) (_typeBase + _typeBufferOffset); 1672dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1673dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer glGetActiveAttrib( 1674dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLuint)program, 1675dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLuint)index, 1676dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLsizei)len, 1677dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer NULL, 1678dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLint *)size, 1679dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLenum *)type, 1680dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (char *)buf 1681dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer ); 1682dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1683dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (_typeArray) { 1684dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer releasePointer(_env, _typeArray, type, JNI_TRUE); 1685dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1686dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (_sizeArray) { 1687dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer releasePointer(_env, _sizeArray, size, JNI_TRUE); 1688dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1689dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer result = _env->NewStringUTF(buf); 1690dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (buf) { 1691dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer free(buf); 1692dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1693dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return result; 1694dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer} 1695560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1696560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1697560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetActiveUniform__III_3II_3II_3II_3BI 1698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jintArray length_ref, jint lengthOffset, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset, jbyteArray name_ref, jint nameOffset) { 1699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 17002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 17012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 1702560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *length_base = (GLsizei *) 0; 1703560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _lengthRemaining; 1704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *length = (GLsizei *) 0; 1705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *size_base = (GLint *) 0; 1706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _sizeRemaining; 1707560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *size = (GLint *) 0; 1708560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLenum *type_base = (GLenum *) 0; 1709560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _typeRemaining; 1710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLenum *type = (GLenum *) 0; 1711560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich char *name_base = (char *) 0; 1712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _nameRemaining; 1713560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich char *name = (char *) 0; 1714560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1715560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!length_ref) { 1716560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 17172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length == null"; 1719560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1720560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1721560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (lengthOffset < 0) { 1722560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 17232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "lengthOffset < 0"; 1725560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1727560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; 1728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich length_base = (GLsizei *) 1729560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0); 1730560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich length = length_base + lengthOffset; 1731560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1732560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!size_ref) { 1733560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 17342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "size == null"; 1736560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1738560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (sizeOffset < 0) { 1739560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 17402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "sizeOffset < 0"; 1742560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1743560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1744560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; 1745560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich size_base = (GLint *) 1746560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); 1747560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich size = size_base + sizeOffset; 1748560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1749560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!type_ref) { 1750560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 17512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "type == null"; 1753560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1754560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1755560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (typeOffset < 0) { 1756560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 17572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "typeOffset < 0"; 1759560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1760560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; 1762560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich type_base = (GLenum *) 1763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); 1764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich type = type_base + typeOffset; 1765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!name_ref) { 1767560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 17682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "name == null"; 1770560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1771560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (nameOffset < 0) { 1773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 17742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "nameOffset < 0"; 1776560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 1777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1778560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _nameRemaining = _env->GetArrayLength(name_ref) - nameOffset; 1779560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich name_base = (char *) 1780560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(name_ref, (jboolean *)0); 1781560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich name = name_base + nameOffset; 1782560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1783560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetActiveUniform( 1784560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 1785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index, 1786560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)bufsize, 1787560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei *)length, 1788560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)size, 1789560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum *)type, 1790560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (char *)name 1791560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 1792560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1793560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 1794560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (name_base) { 1795560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(name_ref, name_base, 1796560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1797560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1798560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (type_base) { 1799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(type_ref, type_base, 1800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (size_base) { 1803560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(size_ref, size_base, 1804560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1805560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (length_base) { 1807560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(length_ref, length_base, 1808560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 1809560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 18102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 1813560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1814560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1815560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1816560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 1817560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetActiveUniform__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B 1818560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jbyte name) { 1819560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _lengthArray = (jarray) 0; 182017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _lengthBufferOffset = (jint) 0; 1821560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _sizeArray = (jarray) 0; 182217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _sizeBufferOffset = (jint) 0; 1823560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _typeArray = (jarray) 0; 182417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _typeBufferOffset = (jint) 0; 1825560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _lengthRemaining; 1826560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *length = (GLsizei *) 0; 1827560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _sizeRemaining; 1828560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *size = (GLint *) 0; 1829560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _typeRemaining; 1830560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLenum *type = (GLenum *) 0; 1831560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 183217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset); 183317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); 183417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); 183517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (length == NULL) { 183617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean *) 0); 183717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer length = (GLsizei *) (_lengthBase + _lengthBufferOffset); 183817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 183917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (size == NULL) { 184017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); 184117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer size = (GLint *) (_sizeBase + _sizeBufferOffset); 184217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 184317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (type == NULL) { 184417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); 184517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer type = (GLenum *) (_typeBase + _typeBufferOffset); 184617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 1847560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetActiveUniform( 1848560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 1849560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index, 1850560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)bufsize, 1851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei *)length, 1852560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)size, 1853560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum *)type, 1854560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (char *)name 1855560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 185617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (_typeArray) { 185717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer releasePointer(_env, _typeArray, type, JNI_TRUE); 1858560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1859560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_sizeArray) { 18602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _sizeArray, size, JNI_TRUE); 1861560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 186217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (_lengthArray) { 186317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer releasePointer(_env, _lengthArray, length, JNI_TRUE); 1864560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 1865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 1866560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 1867dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer/* void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1868dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferstatic jstring 1869dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferandroid_glGetActiveUniform1 1870dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (JNIEnv *_env, jobject _this, jint program, jint index, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset) { 1871dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _exception = 0; 1872dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer const char * _exceptionType; 1873dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer const char * _exceptionMessage; 1874dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1875dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint *size_base = (GLint *) 0; 1876dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _sizeRemaining; 1877dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint *size = (GLint *) 0; 1878dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1879dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLenum *type_base = (GLenum *) 0; 1880dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _typeRemaining; 1881dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLenum *type = (GLenum *) 0; 1882dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1883dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jstring result = 0; 1884dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1885dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint len = 0; 1886dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer glGetProgramiv((GLuint)program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &len); 1887dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (!len) { 1888dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return _env->NewStringUTF(""); 1889dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1890dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer char* buf = (char*) malloc(len); 1891dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1892dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (buf == NULL) { 1893dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 1894dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return NULL; 1895dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1896dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1897dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (!size_ref) { 1898dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception = 1; 1899dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1900dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionMessage = "size == null"; 1901dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer goto exit; 1902dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1903dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (sizeOffset < 0) { 1904dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception = 1; 1905dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1906dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionMessage = "sizeOffset < 0"; 1907dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer goto exit; 1908dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1909dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; 1910dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer size_base = (GLint *) 1911dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); 1912dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer size = size_base + sizeOffset; 1913dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1914dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (!type_ref) { 1915dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception = 1; 1916dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1917dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionMessage = "type == null"; 1918dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer goto exit; 1919dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1920dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (typeOffset < 0) { 1921dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception = 1; 1922dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1923dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exceptionMessage = "typeOffset < 0"; 1924dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer goto exit; 1925dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1926dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; 1927dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer type_base = (GLenum *) 1928dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); 1929dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer type = type_base + typeOffset; 1930dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1931dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer glGetActiveUniform( 1932dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLuint)program, 1933dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLuint)index, 1934dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLsizei)len, 1935dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer NULL, 1936dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLint *)size, 1937dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLenum *)type, 1938dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (char *)buf 1939dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer ); 1940dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1941dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferexit: 1942dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (type_base) { 1943dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _env->ReleasePrimitiveArrayCritical(type_ref, type_base, 1944dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception ? JNI_ABORT: 0); 1945dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1946dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (size_base) { 1947dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _env->ReleasePrimitiveArrayCritical(size_ref, size_base, 1948dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer _exception ? JNI_ABORT: 0); 1949dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1950dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (_exception != 1) { 1951dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer result = _env->NewStringUTF(buf); 1952dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1953dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (buf) { 1954dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer free(buf); 1955dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1956dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (_exception) { 1957dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 1958dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1959dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (result == 0) { 1960dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer result = _env->NewStringUTF(""); 1961dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1962dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return result; 1963dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer} 1964dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1965dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer/* void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1966dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferstatic jstring 1967dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferandroid_glGetActiveUniform2 1968dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (JNIEnv *_env, jobject _this, jint program, jint index, jobject size_buf, jobject type_buf) { 1969dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jarray _sizeArray = (jarray) 0; 1970dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _sizeBufferOffset = (jint) 0; 1971dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jarray _typeArray = (jarray) 0; 1972dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _typeBufferOffset = (jint) 0; 1973dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _sizeRemaining; 1974dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint *size = (GLint *) 0; 1975dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jint _typeRemaining; 1976dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLenum *type = (GLenum *) 0; 1977dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1978dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jstring result = 0; 1979dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint len = 0; 1980dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer glGetProgramiv((GLuint)program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &len); 1981dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (!len) { 1982dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return _env->NewStringUTF(""); 1983dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1984dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer char* buf = (char*) malloc(len); 1985dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1986dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (buf == NULL) { 1987dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 1988dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return NULL; 1989dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1990dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1991dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); 1992dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); 1993dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 1994dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (size == NULL) { 1995dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); 1996dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer size = (GLint *) (_sizeBase + _sizeBufferOffset); 1997dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 1998dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (type == NULL) { 1999dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); 2000dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer type = (GLenum *) (_typeBase + _typeBufferOffset); 2001dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 2002dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer glGetActiveUniform( 2003dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLuint)program, 2004dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLuint)index, 2005dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer len, 2006dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer NULL, 2007dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLint *)size, 2008dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (GLenum *)type, 2009dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer (char *)buf 2010dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer ); 2011dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer 2012dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (_typeArray) { 2013dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer releasePointer(_env, _typeArray, type, JNI_TRUE); 2014dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 2015dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (_sizeArray) { 2016dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer releasePointer(_env, _sizeArray, size, JNI_TRUE); 2017dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 2018dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer result = _env->NewStringUTF(buf); 2019dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (buf) { 2020dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer free(buf); 2021dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 2022dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return result; 2023dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer} 2024560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetAttachedShaders ( GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders ) */ 2025560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetAttachedShaders__II_3II_3II 2027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint maxcount, jintArray count_ref, jint countOffset, jintArray shaders_ref, jint shadersOffset) { 2028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 20292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 20302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 2031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *count_base = (GLsizei *) 0; 2032560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _countRemaining; 2033560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *count = (GLsizei *) 0; 2034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *shaders_base = (GLuint *) 0; 2035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _shadersRemaining; 2036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *shaders = (GLuint *) 0; 2037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2038560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!count_ref) { 2039560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 20402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "count == null"; 2042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (countOffset < 0) { 2045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 20462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "countOffset < 0"; 2048560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2049560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _countRemaining = _env->GetArrayLength(count_ref) - countOffset; 2051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich count_base = (GLsizei *) 2052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(count_ref, (jboolean *)0); 2053560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich count = count_base + countOffset; 2054560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2055560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!shaders_ref) { 2056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 20572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "shaders == null"; 2059560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2060560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (shadersOffset < 0) { 2062560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 20632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "shadersOffset < 0"; 2065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2067560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _shadersRemaining = _env->GetArrayLength(shaders_ref) - shadersOffset; 2068560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich shaders_base = (GLuint *) 2069560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(shaders_ref, (jboolean *)0); 2070560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich shaders = shaders_base + shadersOffset; 2071560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2072560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetAttachedShaders( 2073560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 2074560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)maxcount, 2075560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei *)count, 2076560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)shaders 2077560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 2078560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2079560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 2080560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (shaders_base) { 2081560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(shaders_ref, shaders_base, 2082560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 2083560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2084560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (count_base) { 2085560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(count_ref, count_base, 2086560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 2087560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 20882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 20892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 20902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 2091560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2092560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2093560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetAttachedShaders ( GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders ) */ 2094560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2095560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 2096560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint maxcount, jobject count_buf, jobject shaders_buf) { 2097560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _countArray = (jarray) 0; 209817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _countBufferOffset = (jint) 0; 2099560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _shadersArray = (jarray) 0; 210017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _shadersBufferOffset = (jint) 0; 2101560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _countRemaining; 2102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *count = (GLsizei *) 0; 2103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _shadersRemaining; 2104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *shaders = (GLuint *) 0; 2105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 210617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer count = (GLsizei *)getPointer(_env, count_buf, &_countArray, &_countRemaining, &_countBufferOffset); 210717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer shaders = (GLuint *)getPointer(_env, shaders_buf, &_shadersArray, &_shadersRemaining, &_shadersBufferOffset); 210817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (count == NULL) { 210917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _countBase = (char *)_env->GetPrimitiveArrayCritical(_countArray, (jboolean *) 0); 211017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer count = (GLsizei *) (_countBase + _countBufferOffset); 211117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 211217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (shaders == NULL) { 211317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _shadersBase = (char *)_env->GetPrimitiveArrayCritical(_shadersArray, (jboolean *) 0); 211417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer shaders = (GLuint *) (_shadersBase + _shadersBufferOffset); 211517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 2116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetAttachedShaders( 2117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 2118560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)maxcount, 2119560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei *)count, 2120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)shaders 2121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 2122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_shadersArray) { 212317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer releasePointer(_env, _shadersArray, shaders, JNI_TRUE); 212417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 212517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (_countArray) { 212617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer releasePointer(_env, _countArray, count, JNI_TRUE); 2127560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2128560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* int glGetAttribLocation ( GLuint program, const char *name ) */ 2131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint 2132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetAttribLocation__ILjava_lang_String_2 2133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jstring name) { 21342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 21352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 21362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 2137560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich int _returnValue = 0; 2138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich const char* _nativename = 0; 2139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!name) { 21412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "name == null"; 2143560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _nativename = _env->GetStringUTFChars(name, 0); 2146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glGetAttribLocation( 2148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 2149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (char *)_nativename 2150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 2151560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 2153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_nativename) { 2154560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleaseStringUTFChars(name, _nativename); 2155560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2156560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 21572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 21582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 21592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 2160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 2161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ 2164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetBooleanv__I_3ZI 2166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) { 2167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 21682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 21692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 2170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean *params_base = (GLboolean *) 0; 2171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 2172560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean *params = (GLboolean *) 0; 2173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 2175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 21762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 2178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 2181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 21822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 2184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 2187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLboolean *) 2188560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2189560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 2190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetBooleanv( 2192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 2193560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean *)params 2194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 2195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 2197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 2198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 2200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 22012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 2204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2205560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ 2207560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2208560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetBooleanv__ILjava_nio_IntBuffer_2 2209560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 2210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 221117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 2212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 2213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean *params = (GLboolean *) 0; 2214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 221517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 221617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 221717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 221817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLboolean *) (_paramsBase + _bufferOffset); 221917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 2220560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetBooleanv( 2221560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 2222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean *)params 2223560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 2224560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 22252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 2226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2228560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2229560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 2230560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2231560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetBufferParameteriv__II_3II 2232560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 223373108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _exception = 0; 22342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 22352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 223673108675c944ab4ee89631dced23566b12341b66Jack Palevich GLint *params_base = (GLint *) 0; 223773108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _remaining; 223873108675c944ab4ee89631dced23566b12341b66Jack Palevich GLint *params = (GLint *) 0; 223973108675c944ab4ee89631dced23566b12341b66Jack Palevich 224073108675c944ab4ee89631dced23566b12341b66Jack Palevich if (!params_ref) { 224173108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 22422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 224473108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 224573108675c944ab4ee89631dced23566b12341b66Jack Palevich } 224673108675c944ab4ee89631dced23566b12341b66Jack Palevich if (offset < 0) { 224773108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 22482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 225073108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 225173108675c944ab4ee89631dced23566b12341b66Jack Palevich } 225273108675c944ab4ee89631dced23566b12341b66Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 225373108675c944ab4ee89631dced23566b12341b66Jack Palevich if (_remaining < 1) { 225473108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 22552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 225773108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 225873108675c944ab4ee89631dced23566b12341b66Jack Palevich } 225973108675c944ab4ee89631dced23566b12341b66Jack Palevich params_base = (GLint *) 226073108675c944ab4ee89631dced23566b12341b66Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 226173108675c944ab4ee89631dced23566b12341b66Jack Palevich params = params_base + offset; 226273108675c944ab4ee89631dced23566b12341b66Jack Palevich 226373108675c944ab4ee89631dced23566b12341b66Jack Palevich glGetBufferParameteriv( 226473108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)target, 226573108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)pname, 226673108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLint *)params 226773108675c944ab4ee89631dced23566b12341b66Jack Palevich ); 226873108675c944ab4ee89631dced23566b12341b66Jack Palevich 226973108675c944ab4ee89631dced23566b12341b66Jack Palevichexit: 227073108675c944ab4ee89631dced23566b12341b66Jack Palevich if (params_base) { 227173108675c944ab4ee89631dced23566b12341b66Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 227273108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception ? JNI_ABORT: 0); 227373108675c944ab4ee89631dced23566b12341b66Jack Palevich } 22742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 2277560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2278560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2279560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 2280560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2281560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 2282560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 228373108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _exception = 0; 22842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 22852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 228673108675c944ab4ee89631dced23566b12341b66Jack Palevich jarray _array = (jarray) 0; 228717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 228873108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _remaining; 228973108675c944ab4ee89631dced23566b12341b66Jack Palevich GLint *params = (GLint *) 0; 229073108675c944ab4ee89631dced23566b12341b66Jack Palevich 229117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 229273108675c944ab4ee89631dced23566b12341b66Jack Palevich if (_remaining < 1) { 229373108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 22942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 229673108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 229773108675c944ab4ee89631dced23566b12341b66Jack Palevich } 229817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 229917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 230017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 230117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 230273108675c944ab4ee89631dced23566b12341b66Jack Palevich glGetBufferParameteriv( 230373108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)target, 230473108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)pname, 230573108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLint *)params 230673108675c944ab4ee89631dced23566b12341b66Jack Palevich ); 230773108675c944ab4ee89631dced23566b12341b66Jack Palevich 230873108675c944ab4ee89631dced23566b12341b66Jack Palevichexit: 230973108675c944ab4ee89631dced23566b12341b66Jack Palevich if (_array) { 231073108675c944ab4ee89631dced23566b12341b66Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 231173108675c944ab4ee89631dced23566b12341b66Jack Palevich } 23122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 23132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 23142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 2315560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2316560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2317560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLenum glGetError ( void ) */ 2318560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint 2319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetError__ 2320560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this) { 2321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLenum _returnValue; 2322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glGetError(); 2323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 2324560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2325560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2326560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */ 2327560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2328560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetFloatv__I_3FI 2329560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 2330560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 23312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 23322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 2333560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params_base = (GLfloat *) 0; 2334560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 2335560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params = (GLfloat *) 0; 2336560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2337560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 2338560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 23392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 2341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2342560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 2344560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 23452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 2347560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2348560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2349560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 2350560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLfloat *) 2351560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2352560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 2353560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2354560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetFloatv( 2355560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 2356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)params 2357560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 2358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 2360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 2361560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2362560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 2363560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 23642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 23652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 23662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 2367560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2368560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2369560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */ 2370560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2371560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetFloatv__ILjava_nio_FloatBuffer_2 2372560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 2373560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 237417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 2375560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 2376560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params = (GLfloat *) 0; 2377560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 237817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 237917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 238017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 238117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 238217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 2383560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetFloatv( 2384560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 2385560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)params 2386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 2387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 23882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 2389560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2390560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetFramebufferAttachmentParameteriv ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */ 2393560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetFramebufferAttachmentParameteriv__III_3II 2395560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jintArray params_ref, jint offset) { 2396560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 23972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 23982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 2399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params_base = (GLint *) 0; 2400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 2401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 2402560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2403560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 2404560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 24052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 2407560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 2410560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 24112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 2413560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2414560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 2416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLint *) 2417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2418560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 2419560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2420560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetFramebufferAttachmentParameteriv( 2421560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 2422560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)attachment, 2423560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 2424560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 2425560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 2426560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2427560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 2428560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 2429560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2430560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 2431560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 24322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 24332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 24342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 2435560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2436560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2437560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetFramebufferAttachmentParameteriv ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */ 2438560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2439560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2 2440560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) { 2441560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 244217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 2443560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 2444560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 2445560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 244617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 244717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 244817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 244917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 245017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 2451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetFramebufferAttachmentParameteriv( 2452560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 2453560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)attachment, 2454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 2455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 2456560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 2457560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 24582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 2459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2460560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2461560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2462560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */ 2463560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2464560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetIntegerv__I_3II 2465560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 2466560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 24672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 24682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 2469560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params_base = (GLint *) 0; 2470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 2471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 2472560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 2474560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 24752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 2477560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2479560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 2480560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 24812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 2483560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2484560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2485560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 2486560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich int _needed; 2487560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich switch (pname) { 2488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_BITS) 2489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_ALPHA_BITS: 2490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_BITS) 2491560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_TEST_FUNC) 2492560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_ALPHA_TEST_FUNC: 2493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_TEST_FUNC) 2494560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_TEST_REF) 2495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_ALPHA_TEST_REF: 2496560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_TEST_REF) 2497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_BLEND_DST) 2498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_BLEND_DST: 2499560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_BLEND_DST) 2500560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_BLUE_BITS) 2501560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_BLUE_BITS: 2502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_BLUE_BITS) 2503560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_BUFFER_BINDING) 2504560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_ARRAY_BUFFER_BINDING: 2505560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING) 2506560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_SIZE) 2507560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_ARRAY_SIZE: 2508560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_SIZE) 2509560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_STRIDE) 2510560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_ARRAY_STRIDE: 2511560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_STRIDE) 2512560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_TYPE) 2513560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_ARRAY_TYPE: 2514560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_TYPE) 2515560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_CULL_FACE) 2516560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_CULL_FACE: 2517560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_CULL_FACE) 2518560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_BITS) 2519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_DEPTH_BITS: 2520560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_BITS) 2521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_CLEAR_VALUE) 2522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_DEPTH_CLEAR_VALUE: 2523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_CLEAR_VALUE) 2524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_FUNC) 2525560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_DEPTH_FUNC: 2526560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_FUNC) 2527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_WRITEMASK) 2528560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_DEPTH_WRITEMASK: 2529560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_WRITEMASK) 2530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_DENSITY) 2531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FOG_DENSITY: 2532560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_DENSITY) 2533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_END) 2534560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FOG_END: 2535560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_END) 2536560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_MODE) 2537560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FOG_MODE: 2538560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_MODE) 2539560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_START) 2540560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FOG_START: 2541560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_START) 2542560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FRONT_FACE) 2543560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FRONT_FACE: 2544560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FRONT_FACE) 2545560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_GREEN_BITS) 2546560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_GREEN_BITS: 2547560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_GREEN_BITS) 2548560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 2549560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: 2550560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 2551560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 2552560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: 2553560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 2554560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL) 2555560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LIGHT_MODEL_COLOR_CONTROL: 2556560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL) 2557560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 2558560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LIGHT_MODEL_LOCAL_VIEWER: 2559560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 2560560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE) 2561560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LIGHT_MODEL_TWO_SIDE: 2562560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 2563560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LINE_SMOOTH_HINT) 2564560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LINE_SMOOTH_HINT: 2565560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LINE_SMOOTH_HINT) 2566560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LINE_WIDTH) 2567560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LINE_WIDTH: 2568560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LINE_WIDTH) 2569560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LOGIC_OP_MODE) 2570560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LOGIC_OP_MODE: 2571560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LOGIC_OP_MODE) 2572560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 2573560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: 2574560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 2575560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 2576560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MATRIX_INDEX_ARRAY_SIZE_OES: 2577560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 2578560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 2579560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MATRIX_INDEX_ARRAY_STRIDE_OES: 2580560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 2581560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 2582560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MATRIX_INDEX_ARRAY_TYPE_OES: 2583560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 2584560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_MODE) 2585560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MATRIX_MODE: 2586560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_MODE) 2587560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_CLIP_PLANES) 2588560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_CLIP_PLANES: 2589560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_CLIP_PLANES) 2590560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_ELEMENTS_INDICES) 2591560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_ELEMENTS_INDICES: 2592560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_ELEMENTS_INDICES) 2593560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_ELEMENTS_VERTICES) 2594560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_ELEMENTS_VERTICES: 2595560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_ELEMENTS_VERTICES) 2596560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_LIGHTS) 2597560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_LIGHTS: 2598560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_LIGHTS) 2599560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_MODELVIEW_STACK_DEPTH) 2600560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_MODELVIEW_STACK_DEPTH: 2601560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH) 2602560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_PALETTE_MATRICES_OES) 2603560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_PALETTE_MATRICES_OES: 2604560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_PALETTE_MATRICES_OES) 2605560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_PROJECTION_STACK_DEPTH) 2606560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_PROJECTION_STACK_DEPTH: 2607560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH) 2608560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_SIZE) 2609560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_TEXTURE_SIZE: 2610560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_SIZE) 2611560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_STACK_DEPTH) 2612560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_TEXTURE_STACK_DEPTH: 2613560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH) 2614560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_UNITS) 2615560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_TEXTURE_UNITS: 2616560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_UNITS) 2617560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_VERTEX_UNITS_OES) 2618560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_VERTEX_UNITS_OES: 2619560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_VERTEX_UNITS_OES) 2620560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_STACK_DEPTH) 2621560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MODELVIEW_STACK_DEPTH: 2622560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_STACK_DEPTH) 2623560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 2624560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_NORMAL_ARRAY_BUFFER_BINDING: 2625560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 2626560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_STRIDE) 2627560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_NORMAL_ARRAY_STRIDE: 2628560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_STRIDE) 2629560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_TYPE) 2630560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_NORMAL_ARRAY_TYPE: 2631560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_TYPE) 2632560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 2633560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_NUM_COMPRESSED_TEXTURE_FORMATS: 2634560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 2635560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PACK_ALIGNMENT) 2636560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_PACK_ALIGNMENT: 2637560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PACK_ALIGNMENT) 2638560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PERSPECTIVE_CORRECTION_HINT) 2639560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_PERSPECTIVE_CORRECTION_HINT: 2640560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT) 2641560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE) 2642560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POINT_SIZE: 2643560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE) 2644560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 2645560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: 2646560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 2647560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 2648560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POINT_SIZE_ARRAY_STRIDE_OES: 2649560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 2650560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 2651560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POINT_SIZE_ARRAY_TYPE_OES: 2652560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 2653560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SMOOTH_HINT) 2654560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POINT_SMOOTH_HINT: 2655560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SMOOTH_HINT) 2656560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POLYGON_OFFSET_FACTOR) 2657560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POLYGON_OFFSET_FACTOR: 2658560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POLYGON_OFFSET_FACTOR) 2659560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POLYGON_OFFSET_UNITS) 2660560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POLYGON_OFFSET_UNITS: 2661560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POLYGON_OFFSET_UNITS) 2662560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_STACK_DEPTH) 2663560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_PROJECTION_STACK_DEPTH: 2664560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_STACK_DEPTH) 2665560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_RED_BITS) 2666560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_RED_BITS: 2667560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_RED_BITS) 2668560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SHADE_MODEL) 2669560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_SHADE_MODEL: 2670560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SHADE_MODEL) 2671560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_BITS) 2672560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_BITS: 2673560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_BITS) 2674560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_CLEAR_VALUE) 2675560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_CLEAR_VALUE: 2676560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_CLEAR_VALUE) 2677560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_FAIL) 2678560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_FAIL: 2679560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_FAIL) 2680560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_FUNC) 2681560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_FUNC: 2682560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_FUNC) 2683560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_FAIL) 2684560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_PASS_DEPTH_FAIL: 2685560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL) 2686560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_PASS) 2687560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_PASS_DEPTH_PASS: 2688560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_PASS) 2689560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_REF) 2690560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_REF: 2691560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_REF) 2692560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_VALUE_MASK) 2693560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_VALUE_MASK: 2694560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_VALUE_MASK) 2695560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_WRITEMASK) 2696560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_WRITEMASK: 2697560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_WRITEMASK) 2698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SUBPIXEL_BITS) 2699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_SUBPIXEL_BITS: 2700560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SUBPIXEL_BITS) 2701560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_BINDING_2D) 2702560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_BINDING_2D: 2703560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_BINDING_2D) 2704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 2705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: 2706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 2707560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_SIZE) 2708560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_COORD_ARRAY_SIZE: 2709560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE) 2710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 2711560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_COORD_ARRAY_STRIDE: 2712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 2713560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_TYPE) 2714560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_COORD_ARRAY_TYPE: 2715560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE) 2716560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_STACK_DEPTH) 2717560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_STACK_DEPTH: 2718560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_STACK_DEPTH) 2719560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_UNPACK_ALIGNMENT) 2720560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_UNPACK_ALIGNMENT: 2721560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_UNPACK_ALIGNMENT) 2722560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 2723560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_VERTEX_ARRAY_BUFFER_BINDING: 2724560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 2725560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_SIZE) 2726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_VERTEX_ARRAY_SIZE: 2727560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_SIZE) 2728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_STRIDE) 2729560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_VERTEX_ARRAY_STRIDE: 2730560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_STRIDE) 2731560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_TYPE) 2732560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_VERTEX_ARRAY_TYPE: 2733560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_TYPE) 2734560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 2735560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: 2736560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 2737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_SIZE_OES) 2738560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_WEIGHT_ARRAY_SIZE_OES: 2739560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES) 2740560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_STRIDE_OES) 2741560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_WEIGHT_ARRAY_STRIDE_OES: 2742560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES) 2743560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_TYPE_OES) 2744560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_WEIGHT_ARRAY_TYPE_OES: 2745560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES) 2746560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = 1; 2747560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 2748560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALIASED_POINT_SIZE_RANGE) 2749560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_ALIASED_POINT_SIZE_RANGE: 2750560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALIASED_POINT_SIZE_RANGE) 2751560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALIASED_LINE_WIDTH_RANGE) 2752560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_ALIASED_LINE_WIDTH_RANGE: 2753560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE) 2754560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_RANGE) 2755560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_DEPTH_RANGE: 2756560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_RANGE) 2757560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_VIEWPORT_DIMS) 2758560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_VIEWPORT_DIMS: 2759560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_VIEWPORT_DIMS) 2760560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SMOOTH_LINE_WIDTH_RANGE) 2761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_SMOOTH_LINE_WIDTH_RANGE: 2762560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE) 2763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SMOOTH_POINT_SIZE_RANGE) 2764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_SMOOTH_POINT_SIZE_RANGE: 2765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE) 2766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = 2; 2767560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 2768560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_CLEAR_VALUE) 2769560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_CLEAR_VALUE: 2770560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_CLEAR_VALUE) 2771560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_WRITEMASK) 2772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_WRITEMASK: 2773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_WRITEMASK) 2774560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_COLOR) 2775560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FOG_COLOR: 2776560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_COLOR) 2777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 2778560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 2779560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 2780560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SCISSOR_BOX) 2781560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_SCISSOR_BOX: 2782560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SCISSOR_BOX) 2783560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VIEWPORT) 2784560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_VIEWPORT: 2785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VIEWPORT) 2786560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = 4; 2787560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 2788560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_MATRIX) 2789560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MODELVIEW_MATRIX: 2790560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX) 2791560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 2792560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: 2793560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 2794560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_MATRIX) 2795560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_PROJECTION_MATRIX: 2796560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_MATRIX) 2797560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 2798560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: 2799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 2800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_MATRIX) 2801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_MATRIX: 2802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_MATRIX) 2803560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 2804560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: 2805560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 2806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = 16; 2807560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 2808560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COMPRESSED_TEXTURE_FORMATS) 2809560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COMPRESSED_TEXTURE_FORMATS: 2810560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS) 2811560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = getNumCompressedTextureFormats(); 2812560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 2813560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich default: 2814560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = 0; 2815560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 2816560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2817560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < _needed) { 2818560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 28192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 2821560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 2822560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 2823560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLint *) 2824560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2825560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 2826560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2827560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetIntegerv( 2828560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 2829560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 2830560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 2831560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2832560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 2833560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 2834560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2835560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 2836560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 28372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 28382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 28392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 2840560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 2841560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 2842560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */ 2843560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 2844560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetIntegerv__ILjava_nio_IntBuffer_2 2845560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 2846560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 28472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 28482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 2849560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 285017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 2851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 2852560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 2853560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 285417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 2855560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich int _needed; 2856560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich switch (pname) { 2857560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_BITS) 2858560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_ALPHA_BITS: 2859560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_BITS) 2860560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_TEST_FUNC) 2861560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_ALPHA_TEST_FUNC: 2862560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_TEST_FUNC) 2863560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_TEST_REF) 2864560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_ALPHA_TEST_REF: 2865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_TEST_REF) 2866560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_BLEND_DST) 2867560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_BLEND_DST: 2868560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_BLEND_DST) 2869560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_BLUE_BITS) 2870560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_BLUE_BITS: 2871560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_BLUE_BITS) 2872560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_BUFFER_BINDING) 2873560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_ARRAY_BUFFER_BINDING: 2874560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING) 2875560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_SIZE) 2876560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_ARRAY_SIZE: 2877560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_SIZE) 2878560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_STRIDE) 2879560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_ARRAY_STRIDE: 2880560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_STRIDE) 2881560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_TYPE) 2882560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_ARRAY_TYPE: 2883560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_TYPE) 2884560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_CULL_FACE) 2885560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_CULL_FACE: 2886560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_CULL_FACE) 2887560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_BITS) 2888560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_DEPTH_BITS: 2889560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_BITS) 2890560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_CLEAR_VALUE) 2891560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_DEPTH_CLEAR_VALUE: 2892560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_CLEAR_VALUE) 2893560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_FUNC) 2894560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_DEPTH_FUNC: 2895560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_FUNC) 2896560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_WRITEMASK) 2897560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_DEPTH_WRITEMASK: 2898560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_WRITEMASK) 2899560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_DENSITY) 2900560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FOG_DENSITY: 2901560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_DENSITY) 2902560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_END) 2903560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FOG_END: 2904560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_END) 2905560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_MODE) 2906560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FOG_MODE: 2907560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_MODE) 2908560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_START) 2909560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FOG_START: 2910560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_START) 2911560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FRONT_FACE) 2912560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FRONT_FACE: 2913560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FRONT_FACE) 2914560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_GREEN_BITS) 2915560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_GREEN_BITS: 2916560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_GREEN_BITS) 2917560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 2918560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: 2919560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 2920560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 2921560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: 2922560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 2923560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL) 2924560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LIGHT_MODEL_COLOR_CONTROL: 2925560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL) 2926560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 2927560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LIGHT_MODEL_LOCAL_VIEWER: 2928560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 2929560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE) 2930560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LIGHT_MODEL_TWO_SIDE: 2931560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 2932560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LINE_SMOOTH_HINT) 2933560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LINE_SMOOTH_HINT: 2934560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LINE_SMOOTH_HINT) 2935560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LINE_WIDTH) 2936560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LINE_WIDTH: 2937560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LINE_WIDTH) 2938560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LOGIC_OP_MODE) 2939560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LOGIC_OP_MODE: 2940560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LOGIC_OP_MODE) 2941560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 2942560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: 2943560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 2944560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 2945560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MATRIX_INDEX_ARRAY_SIZE_OES: 2946560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 2947560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 2948560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MATRIX_INDEX_ARRAY_STRIDE_OES: 2949560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 2950560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 2951560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MATRIX_INDEX_ARRAY_TYPE_OES: 2952560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 2953560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_MODE) 2954560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MATRIX_MODE: 2955560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_MODE) 2956560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_CLIP_PLANES) 2957560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_CLIP_PLANES: 2958560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_CLIP_PLANES) 2959560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_ELEMENTS_INDICES) 2960560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_ELEMENTS_INDICES: 2961560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_ELEMENTS_INDICES) 2962560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_ELEMENTS_VERTICES) 2963560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_ELEMENTS_VERTICES: 2964560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_ELEMENTS_VERTICES) 2965560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_LIGHTS) 2966560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_LIGHTS: 2967560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_LIGHTS) 2968560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_MODELVIEW_STACK_DEPTH) 2969560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_MODELVIEW_STACK_DEPTH: 2970560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH) 2971560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_PALETTE_MATRICES_OES) 2972560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_PALETTE_MATRICES_OES: 2973560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_PALETTE_MATRICES_OES) 2974560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_PROJECTION_STACK_DEPTH) 2975560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_PROJECTION_STACK_DEPTH: 2976560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH) 2977560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_SIZE) 2978560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_TEXTURE_SIZE: 2979560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_SIZE) 2980560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_STACK_DEPTH) 2981560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_TEXTURE_STACK_DEPTH: 2982560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH) 2983560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_UNITS) 2984560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_TEXTURE_UNITS: 2985560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_UNITS) 2986560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_VERTEX_UNITS_OES) 2987560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_VERTEX_UNITS_OES: 2988560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_VERTEX_UNITS_OES) 2989560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_STACK_DEPTH) 2990560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MODELVIEW_STACK_DEPTH: 2991560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_STACK_DEPTH) 2992560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 2993560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_NORMAL_ARRAY_BUFFER_BINDING: 2994560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 2995560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_STRIDE) 2996560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_NORMAL_ARRAY_STRIDE: 2997560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_STRIDE) 2998560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_TYPE) 2999560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_NORMAL_ARRAY_TYPE: 3000560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_TYPE) 3001560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 3002560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_NUM_COMPRESSED_TEXTURE_FORMATS: 3003560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 3004560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PACK_ALIGNMENT) 3005560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_PACK_ALIGNMENT: 3006560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PACK_ALIGNMENT) 3007560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PERSPECTIVE_CORRECTION_HINT) 3008560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_PERSPECTIVE_CORRECTION_HINT: 3009560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT) 3010560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE) 3011560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POINT_SIZE: 3012560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE) 3013560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 3014560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: 3015560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 3016560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 3017560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POINT_SIZE_ARRAY_STRIDE_OES: 3018560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 3019560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 3020560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POINT_SIZE_ARRAY_TYPE_OES: 3021560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 3022560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SMOOTH_HINT) 3023560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POINT_SMOOTH_HINT: 3024560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SMOOTH_HINT) 3025560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POLYGON_OFFSET_FACTOR) 3026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POLYGON_OFFSET_FACTOR: 3027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POLYGON_OFFSET_FACTOR) 3028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POLYGON_OFFSET_UNITS) 3029560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_POLYGON_OFFSET_UNITS: 3030560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POLYGON_OFFSET_UNITS) 3031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_STACK_DEPTH) 3032560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_PROJECTION_STACK_DEPTH: 3033560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_STACK_DEPTH) 3034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_RED_BITS) 3035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_RED_BITS: 3036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_RED_BITS) 3037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SHADE_MODEL) 3038560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_SHADE_MODEL: 3039560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SHADE_MODEL) 3040560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_BITS) 3041560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_BITS: 3042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_BITS) 3043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_CLEAR_VALUE) 3044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_CLEAR_VALUE: 3045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_CLEAR_VALUE) 3046560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_FAIL) 3047560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_FAIL: 3048560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_FAIL) 3049560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_FUNC) 3050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_FUNC: 3051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_FUNC) 3052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_FAIL) 3053560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_PASS_DEPTH_FAIL: 3054560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL) 3055560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_PASS) 3056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_PASS_DEPTH_PASS: 3057560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_PASS) 3058560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_REF) 3059560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_REF: 3060560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_REF) 3061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_VALUE_MASK) 3062560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_VALUE_MASK: 3063560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_VALUE_MASK) 3064560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_WRITEMASK) 3065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_STENCIL_WRITEMASK: 3066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_WRITEMASK) 3067560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SUBPIXEL_BITS) 3068560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_SUBPIXEL_BITS: 3069560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SUBPIXEL_BITS) 3070560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_BINDING_2D) 3071560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_BINDING_2D: 3072560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_BINDING_2D) 3073560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 3074560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: 3075560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 3076560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_SIZE) 3077560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_COORD_ARRAY_SIZE: 3078560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE) 3079560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 3080560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_COORD_ARRAY_STRIDE: 3081560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 3082560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_TYPE) 3083560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_COORD_ARRAY_TYPE: 3084560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE) 3085560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_STACK_DEPTH) 3086560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_STACK_DEPTH: 3087560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_STACK_DEPTH) 3088560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_UNPACK_ALIGNMENT) 3089560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_UNPACK_ALIGNMENT: 3090560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_UNPACK_ALIGNMENT) 3091560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 3092560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_VERTEX_ARRAY_BUFFER_BINDING: 3093560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 3094560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_SIZE) 3095560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_VERTEX_ARRAY_SIZE: 3096560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_SIZE) 3097560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_STRIDE) 3098560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_VERTEX_ARRAY_STRIDE: 3099560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_STRIDE) 3100560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_TYPE) 3101560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_VERTEX_ARRAY_TYPE: 3102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_TYPE) 3103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 3104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: 3105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 3106560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_SIZE_OES) 3107560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_WEIGHT_ARRAY_SIZE_OES: 3108560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES) 3109560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_STRIDE_OES) 3110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_WEIGHT_ARRAY_STRIDE_OES: 3111560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES) 3112560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_TYPE_OES) 3113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_WEIGHT_ARRAY_TYPE_OES: 3114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES) 3115560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = 1; 3116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 3117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALIASED_POINT_SIZE_RANGE) 3118560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_ALIASED_POINT_SIZE_RANGE: 3119560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALIASED_POINT_SIZE_RANGE) 3120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALIASED_LINE_WIDTH_RANGE) 3121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_ALIASED_LINE_WIDTH_RANGE: 3122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE) 3123560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_RANGE) 3124560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_DEPTH_RANGE: 3125560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_RANGE) 3126560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_VIEWPORT_DIMS) 3127560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MAX_VIEWPORT_DIMS: 3128560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_VIEWPORT_DIMS) 3129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SMOOTH_LINE_WIDTH_RANGE) 3130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_SMOOTH_LINE_WIDTH_RANGE: 3131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE) 3132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SMOOTH_POINT_SIZE_RANGE) 3133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_SMOOTH_POINT_SIZE_RANGE: 3134560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE) 3135560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = 2; 3136560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 3137560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_CLEAR_VALUE) 3138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_CLEAR_VALUE: 3139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_CLEAR_VALUE) 3140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_WRITEMASK) 3141560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COLOR_WRITEMASK: 3142560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_WRITEMASK) 3143560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_COLOR) 3144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_FOG_COLOR: 3145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_COLOR) 3146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 3147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 3148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 3149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SCISSOR_BOX) 3150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_SCISSOR_BOX: 3151560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SCISSOR_BOX) 3152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VIEWPORT) 3153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_VIEWPORT: 3154560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VIEWPORT) 3155560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = 4; 3156560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 3157560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_MATRIX) 3158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MODELVIEW_MATRIX: 3159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX) 3160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 3161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: 3162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 3163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_MATRIX) 3164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_PROJECTION_MATRIX: 3165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_MATRIX) 3166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 3167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: 3168560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 3169560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_MATRIX) 3170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_MATRIX: 3171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_MATRIX) 3172560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 3173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: 3174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 3175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = 16; 3176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 3177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COMPRESSED_TEXTURE_FORMATS) 3178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich case GL_COMPRESSED_TEXTURE_FORMATS: 3179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS) 3180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = getNumCompressedTextureFormats(); 3181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 3182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich default: 3183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _needed = 0; 3184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich break; 3185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < _needed) { 3187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 31882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 31892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 3190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 319217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 319317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 319417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 319517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 3196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetIntegerv( 3197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3201560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3202560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 3203560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 3204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 32052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 32062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 32072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3208560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3209560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetProgramiv ( GLuint program, GLenum pname, GLint *params ) */ 3211560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetProgramiv__II_3II 3213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint pname, jintArray params_ref, jint offset) { 3214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 32152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 32162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params_base = (GLint *) 0; 3218560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 3220560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3221560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 3222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 32232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 32242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 3225560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 3228560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 32292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 32302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 3231560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3232560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3233560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 3234560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLint *) 3235560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3236560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 3237560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3238560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetProgramiv( 3239560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 3240560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3241560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3242560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3243560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3244560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3245560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 3246560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3247560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3248560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 32492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 32502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 32512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3252560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3253560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3254560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetProgramiv ( GLuint program, GLenum pname, GLint *params ) */ 3255560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3256560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetProgramiv__IILjava_nio_IntBuffer_2 3257560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint pname, jobject params_buf) { 3258560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 325917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 3260560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3261560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 3262560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 326317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 326417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 326517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 326617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 326717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 3268560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetProgramiv( 3269560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 3270560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3271560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3272560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3273560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 32742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 3275560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3276560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3277560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 327824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include <stdlib.h> 3279560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3280560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetProgramInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */ 328124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetProgramInfoLog(JNIEnv *_env, jobject, jint shader) { 3282560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint infoLen = 0; 3283560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetProgramiv(shader, GL_INFO_LOG_LENGTH, &infoLen); 328424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes if (!infoLen) { 328524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes return _env->NewStringUTF(""); 3286560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 328724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes char* buf = (char*) malloc(infoLen); 328824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes if (buf == NULL) { 328924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 329024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes return NULL; 3291560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 329224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes glGetProgramInfoLog(shader, infoLen, NULL, buf); 329324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jstring result = _env->NewStringUTF(buf); 329424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes free(buf); 329524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes return result; 3296560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3297560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetRenderbufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 3298560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3299560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetRenderbufferParameteriv__II_3II 3300560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 3301560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 33022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 33032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3304560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params_base = (GLint *) 0; 3305560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3306560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 3307560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3308560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 3309560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 33102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 33112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 3312560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3313560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3314560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 3315560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 33162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 33172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 3318560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3320560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 3321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLint *) 3322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 3324560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3325560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetRenderbufferParameteriv( 3326560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 3327560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3328560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3329560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3330560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3331560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3332560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 3333560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3334560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3335560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 33362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 33372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 33382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3339560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3340560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetRenderbufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 3342560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetRenderbufferParameteriv__IILjava_nio_IntBuffer_2 3344560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 3345560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 334617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 3347560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3348560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 3349560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 335017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 335117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 335217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 335317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 335417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 3355560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetRenderbufferParameteriv( 3356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 3357560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 33612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 3362560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3363560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3364560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3365560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderiv ( GLuint shader, GLenum pname, GLint *params ) */ 3366560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3367560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderiv__II_3II 3368560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint shader, jint pname, jintArray params_ref, jint offset) { 3369560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 33702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 33712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3372560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params_base = (GLint *) 0; 3373560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3374560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 3375560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3376560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 3377560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 33782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 33792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 3380560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3381560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3382560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 3383560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 33842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 33852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 3386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3388560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 3389560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLint *) 3390560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 3392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3393560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetShaderiv( 3394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)shader, 3395560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3396560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3397560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3398560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 3401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3402560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3403560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 34042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 34052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 34062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3407560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderiv ( GLuint shader, GLenum pname, GLint *params ) */ 3410560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3411560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderiv__IILjava_nio_IntBuffer_2 3412560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint shader, jint pname, jobject params_buf) { 3413560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 341417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 3415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 3417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 341817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 341917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 342017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 342117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 342217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 3423560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetShaderiv( 3424560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)shader, 3425560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3426560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3427560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3428560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 34292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 3430560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3431560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3432560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 343324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include <stdlib.h> 3434560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3435560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */ 343624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetShaderInfoLog(JNIEnv *_env, jobject, jint shader) { 3437560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint infoLen = 0; 3438560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); 343924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes if (!infoLen) { 344024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes return _env->NewStringUTF(""); 3441560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 344224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes char* buf = (char*) malloc(infoLen); 344324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes if (buf == NULL) { 344424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 344524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes return NULL; 3446560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 344724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes glGetShaderInfoLog(shader, infoLen, NULL, buf); 344824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jstring result = _env->NewStringUTF(buf); 344924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes free(buf); 345024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes return result; 3451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3452560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderPrecisionFormat ( GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision ) */ 3453560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderPrecisionFormat__II_3II_3II 3455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint shadertype, jint precisiontype, jintArray range_ref, jint rangeOffset, jintArray precision_ref, jint precisionOffset) { 3456560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 34572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 34582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *range_base = (GLint *) 0; 3460560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _rangeRemaining; 3461560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *range = (GLint *) 0; 3462560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *precision_base = (GLint *) 0; 3463560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _precisionRemaining; 3464560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *precision = (GLint *) 0; 3465560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3466560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!range_ref) { 3467560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 34682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 34692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "range == null"; 3470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3472560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (rangeOffset < 0) { 3473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 34742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 34752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "rangeOffset < 0"; 3476560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3477560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _rangeRemaining = _env->GetArrayLength(range_ref) - rangeOffset; 3479560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich range_base = (GLint *) 3480560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(range_ref, (jboolean *)0); 3481560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich range = range_base + rangeOffset; 3482560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3483560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!precision_ref) { 3484560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 34852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 34862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "precision == null"; 3487560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (precisionOffset < 0) { 3490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 34912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 34922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "precisionOffset < 0"; 3493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3494560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _precisionRemaining = _env->GetArrayLength(precision_ref) - precisionOffset; 3496560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich precision_base = (GLint *) 3497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(precision_ref, (jboolean *)0); 3498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich precision = precision_base + precisionOffset; 3499560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3500560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetShaderPrecisionFormat( 3501560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)shadertype, 3502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)precisiontype, 3503560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)range, 3504560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)precision 3505560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3506560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3507560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3508560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (precision_base) { 3509560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(precision_ref, precision_base, 3510560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3511560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3512560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (range_base) { 3513560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(range_ref, range_base, 3514560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3515560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 35162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 35172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 35182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3520560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderPrecisionFormat ( GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision ) */ 3522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 3524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint shadertype, jint precisiontype, jobject range_buf, jobject precision_buf) { 3525560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _rangeArray = (jarray) 0; 352617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _rangeBufferOffset = (jint) 0; 3527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _precisionArray = (jarray) 0; 352817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _precisionBufferOffset = (jint) 0; 3529560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _rangeRemaining; 3530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *range = (GLint *) 0; 3531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _precisionRemaining; 3532560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *precision = (GLint *) 0; 3533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 353417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer range = (GLint *)getPointer(_env, range_buf, &_rangeArray, &_rangeRemaining, &_rangeBufferOffset); 353517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer precision = (GLint *)getPointer(_env, precision_buf, &_precisionArray, &_precisionRemaining, &_precisionBufferOffset); 353617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (range == NULL) { 353717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _rangeBase = (char *)_env->GetPrimitiveArrayCritical(_rangeArray, (jboolean *) 0); 353817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer range = (GLint *) (_rangeBase + _rangeBufferOffset); 353917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 354017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (precision == NULL) { 354117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _precisionBase = (char *)_env->GetPrimitiveArrayCritical(_precisionArray, (jboolean *) 0); 354217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer precision = (GLint *) (_precisionBase + _precisionBufferOffset); 354317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 3544560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetShaderPrecisionFormat( 3545560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)shadertype, 3546560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)precisiontype, 3547560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)range, 3548560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)precision 3549560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3550560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_precisionArray) { 355117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer releasePointer(_env, _precisionArray, precision, JNI_TRUE); 355217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 355317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (_rangeArray) { 355417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer releasePointer(_env, _rangeArray, range, JNI_TRUE); 3555560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3556560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3557560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3558560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderSource ( GLuint shader, GLsizei bufsize, GLsizei *length, char *source ) */ 3559560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3560560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderSource__II_3II_3BI 3561560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint shader, jint bufsize, jintArray length_ref, jint lengthOffset, jbyteArray source_ref, jint sourceOffset) { 3562560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 35632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 35642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3565560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *length_base = (GLsizei *) 0; 3566560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _lengthRemaining; 3567560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *length = (GLsizei *) 0; 3568560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich char *source_base = (char *) 0; 3569560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _sourceRemaining; 3570560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich char *source = (char *) 0; 3571560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3572560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!length_ref) { 3573560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 35742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 35752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length == null"; 3576560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3577560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3578560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (lengthOffset < 0) { 3579560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 35802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 35812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "lengthOffset < 0"; 3582560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3583560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3584560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; 3585560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich length_base = (GLsizei *) 3586560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0); 3587560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich length = length_base + lengthOffset; 3588560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3589560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!source_ref) { 3590560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 35912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 35922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "source == null"; 3593560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3594560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3595560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (sourceOffset < 0) { 3596560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 35972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 35982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "sourceOffset < 0"; 3599560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3600560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3601560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _sourceRemaining = _env->GetArrayLength(source_ref) - sourceOffset; 3602560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich source_base = (char *) 3603560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(source_ref, (jboolean *)0); 3604560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich source = source_base + sourceOffset; 3605560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3606560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetShaderSource( 3607560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)shader, 3608560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)bufsize, 3609560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei *)length, 3610560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (char *)source 3611560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3612560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3613560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3614560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (source_base) { 3615560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(source_ref, source_base, 3616560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3617560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3618560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (length_base) { 3619560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(length_ref, length_base, 3620560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3621560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 36222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 36232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 36242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3625560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3626560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3627560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderSource ( GLuint shader, GLsizei bufsize, GLsizei *length, char *source ) */ 3628560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3629560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderSource__IILjava_nio_IntBuffer_2B 3630560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint shader, jint bufsize, jobject length_buf, jbyte source) { 3631560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 363217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 3633560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3634560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLsizei *length = (GLsizei *) 0; 3635560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 363617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer length = (GLsizei *)getPointer(_env, length_buf, &_array, &_remaining, &_bufferOffset); 363717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (length == NULL) { 363817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 363917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer length = (GLsizei *) (_lengthBase + _bufferOffset); 364017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 3641560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetShaderSource( 3642560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)shader, 3643560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)bufsize, 3644560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei *)length, 3645560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (char *)source 3646560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3647560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 36482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, length, JNI_TRUE); 3649560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3650560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3651560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3652dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer/* void glGetShaderSource ( GLuint shader, GLsizei bufsize, GLsizei *length, char *source ) */ 3653dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshoferstatic jstring android_glGetShaderSource(JNIEnv *_env, jobject, jint shader) { 3654dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer GLint shaderLen = 0; 3655dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer glGetShaderiv((GLuint)shader, GL_SHADER_SOURCE_LENGTH, &shaderLen); 3656dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (!shaderLen) { 3657dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return _env->NewStringUTF(""); 3658dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 3659dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer char* buf = (char*) malloc(shaderLen); 3660dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer if (buf == NULL) { 3661dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 3662dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return NULL; 3663dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer } 3664dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer glGetShaderSource(shader, shaderLen, NULL, buf); 3665dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer jstring result = _env->NewStringUTF(buf); 3666dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer free(buf); 3667dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer return result; 3668dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer} 3669560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* const GLubyte * glGetString ( GLenum name ) */ 367024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetString(JNIEnv* _env, jobject, jint name) { 367124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes const char* chars = (const char*) glGetString((GLenum) name); 367224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes return _env->NewStringUTF(chars); 3673560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3674560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */ 3675560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3676560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetTexParameterfv__II_3FI 3677560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 3678560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 36792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 36802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3681560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params_base = (GLfloat *) 0; 3682560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3683560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params = (GLfloat *) 0; 3684560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3685560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 3686560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 36872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 36882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 3689560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3690560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3691560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 3692560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 36932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 36942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 3695560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3696560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3697560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 3698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < 1) { 3699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 37002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 37012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 3702560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3703560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLfloat *) 3705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 3707560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3708560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetTexParameterfv( 3709560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 3710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3711560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)params 3712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3713560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3714560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3715560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 3716560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3717560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3718560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 37192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 37202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 37212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3722560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3723560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3724560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */ 3725560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 3727560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 3728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 37292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 37302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3731560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 373217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 3733560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3734560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params = (GLfloat *) 0; 3735560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 373617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 3737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < 1) { 3738560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 37392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 37402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 3741560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3742560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 374317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 374417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 374517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 374617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 3747560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetTexParameterfv( 3748560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 3749560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3750560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)params 3751560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3752560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3753560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3754560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 3755560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 3756560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 37572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 37582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 37592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3760560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3762560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 3763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetTexParameteriv__II_3II 3765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 3766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 37672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 37682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3769560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params_base = (GLint *) 0; 3770560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3771560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 3772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 3774560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 37752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 37762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 3777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3778560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3779560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 3780560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 37812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 37822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 3783560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3784560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 3786560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < 1) { 3787560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 37882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 37892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 3790560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3791560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3792560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLint *) 3793560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3794560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 3795560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3796560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetTexParameteriv( 3797560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 3798560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3803560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 3804560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3805560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 38072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 38082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 38092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3810560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3811560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3812560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 3813560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3814560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetTexParameteriv__IILjava_nio_IntBuffer_2 3815560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 3816560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 38172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 38182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3819560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 382017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 3821560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3822560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 3823560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 382417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 3825560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < 1) { 3826560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 38272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 38282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 3829560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3830560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 383117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 383217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 383317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 383417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 3835560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetTexParameteriv( 3836560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 3837560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 3838560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3839560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3840560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3841560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3842560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 3843560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 3844560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 38452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 38462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 38472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3848560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3849560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3850560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetUniformfv ( GLuint program, GLint location, GLfloat *params ) */ 3851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3852560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetUniformfv__II_3FI 3853560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint location, jfloatArray params_ref, jint offset) { 3854560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 38552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 38562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3857560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params_base = (GLfloat *) 0; 3858560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3859560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params = (GLfloat *) 0; 3860560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3861560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 3862560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 38632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 38642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 3865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3866560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3867560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 3868560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 38692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 38702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 3871560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3872560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3873560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 3874560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLfloat *) 3875560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3876560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 3877560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3878560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetUniformfv( 3879560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 3880560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 3881560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)params 3882560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3883560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3884560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3885560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 3886560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3887560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3888560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 38892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 38902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 38912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3892560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3893560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3894560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetUniformfv ( GLuint program, GLint location, GLfloat *params ) */ 3895560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3896560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetUniformfv__IILjava_nio_FloatBuffer_2 3897560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint location, jobject params_buf) { 3898560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 389917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 3900560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3901560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params = (GLfloat *) 0; 3902560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 390317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 390417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 390517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 390617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 390717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 3908560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetUniformfv( 3909560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 3910560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 3911560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)params 3912560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3913560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 39142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 3915560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3916560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3917560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3918560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetUniformiv ( GLuint program, GLint location, GLint *params ) */ 3919560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3920560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetUniformiv__II_3II 3921560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint location, jintArray params_ref, jint offset) { 3922560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 39232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 39242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3925560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params_base = (GLint *) 0; 3926560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3927560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 3928560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3929560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 3930560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 39312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 39322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 3933560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3934560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3935560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 3936560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 39372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 39382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 3939560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 3940560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3941560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 3942560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLint *) 3943560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3944560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 3945560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3946560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetUniformiv( 3947560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 3948560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 3949560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3950560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3951560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3952560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 3953560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 3954560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3955560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 3956560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 39572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 39582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 39592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 3960560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3961560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3962560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetUniformiv ( GLuint program, GLint location, GLint *params ) */ 3963560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 3964560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetUniformiv__IILjava_nio_IntBuffer_2 3965560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jint location, jobject params_buf) { 3966560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 396717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 3968560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 3969560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 3970560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 397117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 397217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 397317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 397417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 397517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 3976560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetUniformiv( 3977560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 3978560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 3979560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 3980560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 3981560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 39822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 3983560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 3984560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 3985560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3986560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* int glGetUniformLocation ( GLuint program, const char *name ) */ 3987560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint 3988560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetUniformLocation__ILjava_lang_String_2 3989560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program, jstring name) { 39902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 39912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 39922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 3993560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich int _returnValue = 0; 3994560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich const char* _nativename = 0; 3995560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 3996560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!name) { 39972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 39982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "name == null"; 3999560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4000560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4001560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _nativename = _env->GetStringUTFChars(name, 0); 4002560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4003560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glGetUniformLocation( 4004560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program, 4005560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (char *)_nativename 4006560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4007560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4008560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4009560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_nativename) { 4010560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleaseStringUTFChars(name, _nativename); 4011560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4012560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 40132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 40142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 40152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4016560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 4017560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4018560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4019560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetVertexAttribfv ( GLuint index, GLenum pname, GLfloat *params ) */ 4020560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4021560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetVertexAttribfv__II_3FI 4022560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint index, jint pname, jfloatArray params_ref, jint offset) { 4023560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 40242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 40252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 4026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params_base = (GLfloat *) 0; 4027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params = (GLfloat *) 0; 4029560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4030560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 4031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 40322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 40332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 4034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 4037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 40382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 40392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 4040560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4041560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 4043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLfloat *) 4044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 4045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 4046560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4047560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetVertexAttribfv( 4048560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index, 4049560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)params 4051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4053560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4054560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 4055560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 4056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 4057560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 40582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 40592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 40602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4062560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4063560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetVertexAttribfv ( GLuint index, GLenum pname, GLfloat *params ) */ 4064560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetVertexAttribfv__IILjava_nio_FloatBuffer_2 4066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint index, jint pname, jobject params_buf) { 4067560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 406817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 4069560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4070560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params = (GLfloat *) 0; 4071560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 407217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 407317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 407417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 407517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 407617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 4077560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetVertexAttribfv( 4078560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index, 4079560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4080560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)params 4081560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4082560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 40832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 4084560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4085560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4086560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4087560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetVertexAttribiv ( GLuint index, GLenum pname, GLint *params ) */ 4088560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4089560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetVertexAttribiv__II_3II 4090560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint index, jint pname, jintArray params_ref, jint offset) { 4091560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _exception = 0; 40922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 40932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 4094560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params_base = (GLint *) 0; 4095560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4096560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 4097560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4098560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 4099560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 41002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 41012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 4102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 4105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception = 1; 41062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 41072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 4108560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4109560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 4111560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLint *) 4112560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 4113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 4114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4115560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetVertexAttribiv( 4116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index, 4117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4118560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 4119560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 4123560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 4124560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _exception ? JNI_ABORT: 0); 4125560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 41262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 41272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 41282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetVertexAttribiv ( GLuint index, GLenum pname, GLint *params ) */ 4132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetVertexAttribiv__IILjava_nio_IntBuffer_2 4134560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint index, jint pname, jobject params_buf) { 4135560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 413617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 4137560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 4139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 414017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 414117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 414217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 414317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 414417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 4145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glGetVertexAttribiv( 4146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)index, 4147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 4149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 41512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 4152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4154560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4155560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glHint ( GLenum target, GLenum mode ) */ 4156560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4157560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glHint__II 4158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint mode) { 4159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glHint( 4160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 4161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)mode 4162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsBuffer ( GLuint buffer ) */ 4166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean 4167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsBuffer__I 4168560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint buffer) { 4169560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean _returnValue; 4170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glIsBuffer( 4171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)buffer 4172560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 4174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsEnabled ( GLenum cap ) */ 4177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean 4178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsEnabled__I 4179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 4180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean _returnValue; 4181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glIsEnabled( 4182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)cap 4183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 4185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsFramebuffer ( GLuint framebuffer ) */ 4188560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean 4189560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsFramebuffer__I 4190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint framebuffer) { 4191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean _returnValue; 4192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glIsFramebuffer( 4193560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)framebuffer 4194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 4196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsProgram ( GLuint program ) */ 4199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean 4200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsProgram__I 4201560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program) { 4202560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean _returnValue; 4203560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glIsProgram( 4204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program 4205560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 4207560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4208560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4209560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsRenderbuffer ( GLuint renderbuffer ) */ 4210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean 4211560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsRenderbuffer__I 4212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint renderbuffer) { 4213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean _returnValue; 4214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glIsRenderbuffer( 4215560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)renderbuffer 4216560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 4218560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4220560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsShader ( GLuint shader ) */ 4221560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean 4222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsShader__I 4223560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint shader) { 4224560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean _returnValue; 4225560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glIsShader( 4226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)shader 4227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4228560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 4229560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4230560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4231560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsTexture ( GLuint texture ) */ 4232560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean 4233560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsTexture__I 4234560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 4235560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLboolean _returnValue; 4236560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _returnValue = glIsTexture( 4237560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)texture 4238560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4239560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return _returnValue; 4240560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4241560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4242560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glLineWidth ( GLfloat width ) */ 4243560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4244560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glLineWidth__F 4245560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jfloat width) { 4246560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glLineWidth( 4247560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)width 4248560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4249560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4250560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4251560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glLinkProgram ( GLuint program ) */ 4252560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4253560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glLinkProgram__I 4254560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program) { 4255560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glLinkProgram( 4256560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program 4257560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4258560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4259560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4260560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glPixelStorei ( GLenum pname, GLint param ) */ 4261560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4262560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glPixelStorei__II 4263560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 4264560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glPixelStorei( 4265560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4266560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)param 4267560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4268560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4269560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4270560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */ 4271560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4272560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glPolygonOffset__FF 4273560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) { 4274560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glPolygonOffset( 4275560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)factor, 4276560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)units 4277560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4278560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4279560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4280560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */ 4281560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4282560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glReadPixels__IIIIIILjava_nio_Buffer_2 4283560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) { 4284560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 428517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 4286560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4287560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *pixels = (GLvoid *) 0; 4288560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 428917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 429017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (pixels == NULL) { 429117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 429217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 429317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 4294560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glReadPixels( 4295560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)x, 4296560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)y, 4297560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)width, 4298560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)height, 4299560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)format, 4300560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)type, 4301560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)pixels 4302560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4303560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 43042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, pixels, JNI_TRUE); 4305560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4306560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4307560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4308560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glReleaseShaderCompiler ( void ) */ 4309560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4310560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glReleaseShaderCompiler__ 4311560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this) { 4312560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glReleaseShaderCompiler(); 4313560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4314560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4315560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glRenderbufferStorage ( GLenum target, GLenum internalformat, GLsizei width, GLsizei height ) */ 4316560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4317560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glRenderbufferStorage__IIII 4318560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint width, jint height) { 4319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glRenderbufferStorage( 4320560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 4321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)internalformat, 4322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)width, 4323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)height 4324560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4325560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4326560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4327560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */ 4328560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4329560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glSampleCoverage__FZ 4330560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) { 4331560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glSampleCoverage( 4332560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLclampf)value, 4333560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)invert 4334560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4335560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4336560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4337560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 4338560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4339560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glScissor__IIII 4340560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 4341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glScissor( 4342560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)x, 4343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)y, 4344560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)width, 4345560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)height 4346560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4347560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4348560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4349560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glShaderBinary ( GLsizei n, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length ) */ 4350560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4351560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glShaderBinary__I_3IIILjava_nio_Buffer_2I 4352560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray shaders_ref, jint offset, jint binaryformat, jobject binary_buf, jint length) { 43532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 43542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 43552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 4356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 435717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 4358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *shaders_base = (GLuint *) 0; 4359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _shadersRemaining; 4360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *shaders = (GLuint *) 0; 4361560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _binaryRemaining; 4362560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *binary = (GLvoid *) 0; 4363560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4364560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!shaders_ref) { 43652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 43662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 43672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "shaders == null"; 4368560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4369560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4370560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 43712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 43722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 43732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 4374560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4375560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4376560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _shadersRemaining = _env->GetArrayLength(shaders_ref) - offset; 4377560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich shaders_base = (GLuint *) 4378560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(shaders_ref, (jboolean *)0); 4379560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich shaders = shaders_base + offset; 4380560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 438117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer binary = (GLvoid *)getPointer(_env, binary_buf, &_array, &_binaryRemaining, &_bufferOffset); 438217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (binary == NULL) { 438317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _binaryBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 438417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer binary = (GLvoid *) (_binaryBase + _bufferOffset); 438517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 4386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glShaderBinary( 4387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 4388560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)shaders, 4389560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)binaryformat, 4390560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)binary, 4391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)length 4392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4393560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4395560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 4396560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, binary, JNI_FALSE); 4397560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4398560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (shaders_base) { 4399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(shaders_ref, shaders_base, 4400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 4401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 44022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 44032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 44042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4405560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4406560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4407560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glShaderBinary ( GLsizei n, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length ) */ 4408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glShaderBinary__ILjava_nio_IntBuffer_2ILjava_nio_Buffer_2I 4410560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject shaders_buf, jint binaryformat, jobject binary_buf, jint length) { 4411560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _shadersArray = (jarray) 0; 441217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _shadersBufferOffset = (jint) 0; 4413560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _binaryArray = (jarray) 0; 441417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _binaryBufferOffset = (jint) 0; 4415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _shadersRemaining; 4416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLuint *shaders = (GLuint *) 0; 4417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _binaryRemaining; 4418560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *binary = (GLvoid *) 0; 4419560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 442017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer shaders = (GLuint *)getPointer(_env, shaders_buf, &_shadersArray, &_shadersRemaining, &_shadersBufferOffset); 442117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer binary = (GLvoid *)getPointer(_env, binary_buf, &_binaryArray, &_binaryRemaining, &_binaryBufferOffset); 442217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (shaders == NULL) { 442317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _shadersBase = (char *)_env->GetPrimitiveArrayCritical(_shadersArray, (jboolean *) 0); 442417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer shaders = (GLuint *) (_shadersBase + _shadersBufferOffset); 442517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 442617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (binary == NULL) { 442717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _binaryBase = (char *)_env->GetPrimitiveArrayCritical(_binaryArray, (jboolean *) 0); 442817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer binary = (GLvoid *) (_binaryBase + _binaryBufferOffset); 442917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 4430560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glShaderBinary( 4431560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)n, 4432560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint *)shaders, 4433560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)binaryformat, 4434560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)binary, 4435560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)length 4436560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4437560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_binaryArray) { 443817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer releasePointer(_env, _binaryArray, binary, JNI_FALSE); 443917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 444017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (_shadersArray) { 444117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer releasePointer(_env, _shadersArray, shaders, JNI_FALSE); 4442560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4443560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4444560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4445560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4446560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glShaderSource ( GLuint shader, GLsizei count, const GLchar ** string, const GLint * length ) */ 4447560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic 4448560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichvoid 4449560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glShaderSource 4450560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint shader, jstring string) { 4451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4452560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!string) { 445324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jniThrowException(_env, "java/lang/IllegalArgumentException", "string == null"); 4454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return; 4455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4456560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4457560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich const char* nativeString = _env->GetStringUTFChars(string, 0); 4458560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich const char* strings[] = {nativeString}; 4459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glShaderSource(shader, 1, strings, 0); 4460560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleaseStringUTFChars(string, nativeString); 4461560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4462560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */ 4463560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4464560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilFunc__III 4465560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) { 4466560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glStencilFunc( 4467560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)func, 4468560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)ref, 4469560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)mask 4470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4472560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilFuncSeparate ( GLenum face, GLenum func, GLint ref, GLuint mask ) */ 4474560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4475560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilFuncSeparate__IIII 4476560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint func, jint ref, jint mask) { 4477560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glStencilFuncSeparate( 4478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)face, 4479560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)func, 4480560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)ref, 4481560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)mask 4482560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4483560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4484560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4485560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilMask ( GLuint mask ) */ 4486560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4487560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilMask__I 4488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint mask) { 4489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glStencilMask( 4490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)mask 4491560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4492560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4494560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilMaskSeparate ( GLenum face, GLuint mask ) */ 4495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4496560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilMaskSeparate__II 4497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint mask) { 4498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glStencilMaskSeparate( 4499560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)face, 4500560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)mask 4501560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4503560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4504560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */ 4505560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4506560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilOp__III 4507560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) { 4508560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glStencilOp( 4509560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)fail, 4510560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)zfail, 4511560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)zpass 4512560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4513560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4514560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4515560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilOpSeparate ( GLenum face, GLenum fail, GLenum zfail, GLenum zpass ) */ 4516560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4517560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilOpSeparate__IIII 4518560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint fail, jint zfail, jint zpass) { 4519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glStencilOpSeparate( 4520560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)face, 4521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)fail, 4522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)zfail, 4523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)zpass 4524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4525560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4526560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */ 4528560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4529560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 4530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) { 4531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 453217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 4533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4534560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *pixels = (GLvoid *) 0; 4535560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4536560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (pixels_buf) { 453717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 453817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 453937c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer if (pixels_buf && pixels == NULL) { 454017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 454117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 4542560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4543560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glTexImage2D( 4544560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 4545560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)level, 4546560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)internalformat, 4547560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)width, 4548560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)height, 4549560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)border, 4550560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)format, 4551560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)type, 4552560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)pixels 4553560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4554560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 4555560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, pixels, JNI_FALSE); 4556560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4557560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4558560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4559560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */ 4560560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4561560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameterf__IIF 4562560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) { 4563560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glTexParameterf( 4564560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 4565560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4566560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)param 4567560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4568560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4569560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4570560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 4571560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4572560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameterfv__II_3FI 4573560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 45742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 45752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 45762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 4577560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params_base = (GLfloat *) 0; 4578560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4579560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params = (GLfloat *) 0; 4580560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4581560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 45822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 45832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 45842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 4585560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4586560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4587560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 45882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 45892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 45902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 4591560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4592560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4593560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 4594560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < 1) { 45952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 45962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 45972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 4598560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4599560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4600560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLfloat *) 4601560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 4602560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 4603560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4604560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glTexParameterfv( 4605560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 4606560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4607560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)params 4608560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4609560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4610560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4611560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 4612560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 4613560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 4614560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 46152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 46162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 46172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4618560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4619560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4620560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 4621560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4622560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameterfv__IILjava_nio_FloatBuffer_2 4623560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 46242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 46252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 46262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 4627560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 462817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 4629560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4630560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *params = (GLfloat *) 0; 4631560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 463217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 4633560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < 1) { 46342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 46352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 46362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 4637560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4638560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 463917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 464017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 464117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 464217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 4643560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glTexParameterfv( 4644560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 4645560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4646560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)params 4647560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4648560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4649560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4650560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 4651560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 4652560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 46532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 46542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 46552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4656560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4657560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4658560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */ 4659560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4660560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameteri__III 4661560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 4662560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glTexParameteri( 4663560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 4664560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4665560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)param 4666560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4667560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4668560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4669560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */ 4670560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4671560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameteriv__II_3II 4672560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 46732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 46742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 46752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 4676560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params_base = (GLint *) 0; 4677560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4678560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 4679560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4680560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!params_ref) { 46812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 46822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 46832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 4684560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4685560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4686560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 46872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 46882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 46892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 4690560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4691560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4692560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 4693560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < 1) { 46942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 46952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 46962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 4697560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params_base = (GLint *) 4700560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 4701560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich params = params_base + offset; 4702560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4703560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glTexParameteriv( 4704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 4705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 4707560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4708560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4709560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (params_base) { 4711560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 4712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 4713560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 47142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 47152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 47162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4717560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4718560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4719560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */ 4720560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4721560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameteriv__IILjava_nio_IntBuffer_2 4722560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 47232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 47242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 47252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 4726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 472717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 4728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4729560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *params = (GLint *) 0; 4730560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 473117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 4732560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_remaining < 1) { 47332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 47342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 47352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 4736560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 473817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 473917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 474017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 474117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 4742560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glTexParameteriv( 4743560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 4744560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)pname, 4745560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)params 4746560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4747560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4748560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4749560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 4750560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 4751560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 47522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 47532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 47542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4755560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4756560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4757560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */ 4758560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4759560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 4760560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) { 4761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 476217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 4763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *pixels = (GLvoid *) 0; 4765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (pixels_buf) { 476717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 476817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 476937c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer if (pixels_buf && pixels == NULL) { 477017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 477117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 4772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glTexSubImage2D( 4774560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)target, 4775560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)level, 4776560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)xoffset, 4777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)yoffset, 4778560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)width, 4779560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)height, 4780560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)format, 4781560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)type, 4782560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)pixels 4783560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4784560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 4785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, pixels, JNI_FALSE); 4786560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4787560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4788560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4789560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1f ( GLint location, GLfloat x ) */ 4790560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4791560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1f__IF 4792560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jfloat x) { 4793560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform1f( 4794560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 4795560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)x 4796560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4797560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4798560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1fv ( GLint location, GLsizei count, const GLfloat *v ) */ 4800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1fv__II_3FI 4802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) { 48032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 48042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 48052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 4806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v_base = (GLfloat *) 0; 4807560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4808560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v = (GLfloat *) 0; 4809560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4810560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!v_ref) { 48112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 48122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 48132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "v == null"; 4814560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4815560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4816560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 48172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 48182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 48192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 4820560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4821560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4822560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(v_ref) - offset; 4823560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v_base = (GLfloat *) 4824560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 4825560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v = v_base + offset; 4826560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4827560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform1fv( 4828560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 4829560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 4830560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)v 4831560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4832560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4833560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4834560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (v_base) { 4835560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 4836560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 4837560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 48382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 48392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 48402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4841560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4842560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4843560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1fv ( GLint location, GLsizei count, const GLfloat *v ) */ 4844560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4845560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1fv__IILjava_nio_FloatBuffer_2 4846560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 4847560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 484817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 4849560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4850560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v = (GLfloat *) 0; 4851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 485217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 485317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (v == NULL) { 485417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 485517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLfloat *) (_vBase + _bufferOffset); 485617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 4857560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform1fv( 4858560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 4859560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 4860560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)v 4861560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4862560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 4863560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, v, JNI_FALSE); 4864560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4866560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4867560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1i ( GLint location, GLint x ) */ 4868560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4869560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1i__II 4870560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint x) { 4871560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform1i( 4872560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 4873560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)x 4874560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4875560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4876560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4877560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1iv ( GLint location, GLsizei count, const GLint *v ) */ 4878560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4879560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1iv__II_3II 4880560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) { 48812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 48822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 48832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 4884560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v_base = (GLint *) 0; 4885560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4886560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v = (GLint *) 0; 4887560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4888560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!v_ref) { 48892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 48902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 48912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "v == null"; 4892560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4893560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4894560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 48952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 48962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 48972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 4898560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4899560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4900560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(v_ref) - offset; 4901560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v_base = (GLint *) 4902560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 4903560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v = v_base + offset; 4904560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4905560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform1iv( 4906560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 4907560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 4908560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)v 4909560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4910560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4911560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4912560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (v_base) { 4913560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 4914560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 4915560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 49162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 49172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 49182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4919560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4920560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4921560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1iv ( GLint location, GLsizei count, const GLint *v ) */ 4922560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4923560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1iv__IILjava_nio_IntBuffer_2 4924560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 4925560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 492617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 4927560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4928560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v = (GLint *) 0; 4929560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 493017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 493117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (v == NULL) { 493217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 493317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLint *) (_vBase + _bufferOffset); 493417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 4935560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform1iv( 4936560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 4937560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 4938560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)v 4939560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4940560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 4941560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, v, JNI_FALSE); 4942560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4943560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4944560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4945560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2f ( GLint location, GLfloat x, GLfloat y ) */ 4946560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4947560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2f__IFF 4948560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jfloat x, jfloat y) { 4949560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform2f( 4950560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 4951560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)x, 4952560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)y 4953560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4954560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4955560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4956560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2fv ( GLint location, GLsizei count, const GLfloat *v ) */ 4957560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 4958560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2fv__II_3FI 4959560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) { 49602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 49612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 49622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 4963560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v_base = (GLfloat *) 0; 4964560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 4965560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v = (GLfloat *) 0; 4966560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4967560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!v_ref) { 49682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 49692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 49702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "v == null"; 4971560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4972560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4973560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 49742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 49752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 49762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 4977560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 4978560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 4979560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(v_ref) - offset; 4980560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v_base = (GLfloat *) 4981560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 4982560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v = v_base + offset; 4983560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4984560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform2fv( 4985560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 4986560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 4987560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)v 4988560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 4989560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 4990560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 4991560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (v_base) { 4992560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 4993560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 4994560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 49952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 49962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 49972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 4998560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 4999560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5000560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2fv ( GLint location, GLsizei count, const GLfloat *v ) */ 5001560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5002560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2fv__IILjava_nio_FloatBuffer_2 5003560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5004560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 500517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5006560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5007560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v = (GLfloat *) 0; 5008560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 500917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 501017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (v == NULL) { 501117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 501217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLfloat *) (_vBase + _bufferOffset); 501317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5014560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform2fv( 5015560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5016560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5017560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)v 5018560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5019560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5020560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, v, JNI_FALSE); 5021560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5022560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5023560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5024560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2i ( GLint location, GLint x, GLint y ) */ 5025560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2i__III 5027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint x, jint y) { 5028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform2i( 5029560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5030560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)x, 5031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)y 5032560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5033560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2iv ( GLint location, GLsizei count, const GLint *v ) */ 5036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2iv__II_3II 5038560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) { 50392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 50402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 50412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v_base = (GLint *) 0; 5043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v = (GLint *) 0; 5045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5046560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!v_ref) { 50472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 50482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 50492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "v == null"; 5050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 50532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 50542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 50552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5057560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5058560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(v_ref) - offset; 5059560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v_base = (GLint *) 5060560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 5061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v = v_base + offset; 5062560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5063560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform2iv( 5064560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)v 5067560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5068560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5069560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5070560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (v_base) { 5071560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 5072560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5073560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 50742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 50752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 50762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5077560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5078560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5079560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2iv ( GLint location, GLsizei count, const GLint *v ) */ 5080560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5081560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2iv__IILjava_nio_IntBuffer_2 5082560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5083560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 508417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5085560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5086560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v = (GLint *) 0; 5087560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 508817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 508917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (v == NULL) { 509017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 509117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLint *) (_vBase + _bufferOffset); 509217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5093560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform2iv( 5094560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5095560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5096560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)v 5097560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5098560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5099560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, v, JNI_FALSE); 5100560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5101560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3f ( GLint location, GLfloat x, GLfloat y, GLfloat z ) */ 5104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3f__IFFF 5106560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jfloat x, jfloat y, jfloat z) { 5107560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform3f( 5108560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5109560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)x, 5110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)y, 5111560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)z 5112560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5115560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3fv ( GLint location, GLsizei count, const GLfloat *v ) */ 5116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3fv__II_3FI 5118560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) { 51192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 51202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 51212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v_base = (GLfloat *) 0; 5123560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5124560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v = (GLfloat *) 0; 5125560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5126560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!v_ref) { 51272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 51282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 51292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "v == null"; 5130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 51332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 51342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 51352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5136560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5137560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(v_ref) - offset; 5139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v_base = (GLfloat *) 5140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 5141560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v = v_base + offset; 5142560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5143560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform3fv( 5144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)v 5147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (v_base) { 5151560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 5152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 51542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 51552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 51562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5157560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3fv ( GLint location, GLsizei count, const GLfloat *v ) */ 5160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3fv__IILjava_nio_FloatBuffer_2 5162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 516417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v = (GLfloat *) 0; 5167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 516817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 516917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (v == NULL) { 517017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 517117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLfloat *) (_vBase + _bufferOffset); 517217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform3fv( 5174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)v 5177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, v, JNI_FALSE); 5180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3i ( GLint location, GLint x, GLint y, GLint z ) */ 5184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3i__IIII 5186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint x, jint y, jint z) { 5187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform3i( 5188560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5189560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)x, 5190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)y, 5191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)z 5192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5193560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3iv ( GLint location, GLsizei count, const GLint *v ) */ 5196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3iv__II_3II 5198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) { 51992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 52002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 52012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5202560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v_base = (GLint *) 0; 5203560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v = (GLint *) 0; 5205560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!v_ref) { 52072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 52082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 52092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "v == null"; 5210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5211560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 52132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 52142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 52152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5216560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5218560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(v_ref) - offset; 5219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v_base = (GLint *) 5220560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 5221560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v = v_base + offset; 5222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5223560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform3iv( 5224560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5225560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)v 5227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5228560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5229560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5230560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (v_base) { 5231560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 5232560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5233560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 52342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 52352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 52362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5237560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5238560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5239560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3iv ( GLint location, GLsizei count, const GLint *v ) */ 5240560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5241560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3iv__IILjava_nio_IntBuffer_2 5242560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5243560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 524417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5245560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5246560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v = (GLint *) 0; 5247560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 524817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 524917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (v == NULL) { 525017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 525117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLint *) (_vBase + _bufferOffset); 525217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5253560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform3iv( 5254560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5255560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5256560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)v 5257560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5258560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5259560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, v, JNI_FALSE); 5260560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5261560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5262560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5263560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4f ( GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) */ 5264560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5265560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4f__IFFFF 5266560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jfloat x, jfloat y, jfloat z, jfloat w) { 5267560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform4f( 5268560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5269560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)x, 5270560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)y, 5271560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)z, 5272560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)w 5273560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5274560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5275560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5276560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4fv ( GLint location, GLsizei count, const GLfloat *v ) */ 5277560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5278560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4fv__II_3FI 5279560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) { 52802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 52812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 52822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5283560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v_base = (GLfloat *) 0; 5284560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5285560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v = (GLfloat *) 0; 5286560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5287560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!v_ref) { 52882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 52892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 52902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "v == null"; 5291560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5292560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5293560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 52942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 52952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 52962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5297560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5298560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5299560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(v_ref) - offset; 5300560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v_base = (GLfloat *) 5301560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 5302560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v = v_base + offset; 5303560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5304560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform4fv( 5305560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5306560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5307560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)v 5308560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5309560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5310560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5311560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (v_base) { 5312560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 5313560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5314560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 53152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 53162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 53172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5318560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5320560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4fv ( GLint location, GLsizei count, const GLfloat *v ) */ 5321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4fv__IILjava_nio_FloatBuffer_2 5323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5324560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 532517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5326560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5327560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *v = (GLfloat *) 0; 5328560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 532917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 533017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (v == NULL) { 533117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 533217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLfloat *) (_vBase + _bufferOffset); 533317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5334560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform4fv( 5335560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5336560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5337560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)v 5338560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5339560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5340560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, v, JNI_FALSE); 5341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5342560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5344560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4i ( GLint location, GLint x, GLint y, GLint z, GLint w ) */ 5345560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5346560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4i__IIIII 5347560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint x, jint y, jint z, jint w) { 5348560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform4i( 5349560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5350560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)x, 5351560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)y, 5352560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)z, 5353560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)w 5354560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5355560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5357560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4iv ( GLint location, GLsizei count, const GLint *v ) */ 5358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4iv__II_3II 5360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) { 53612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 53622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 53632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5364560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v_base = (GLint *) 0; 5365560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5366560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v = (GLint *) 0; 5367560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5368560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!v_ref) { 53692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 53702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 53712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "v == null"; 5372560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5373560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5374560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 53752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 53762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 53772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5378560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5379560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5380560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(v_ref) - offset; 5381560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v_base = (GLint *) 5382560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 5383560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich v = v_base + offset; 5384560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5385560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform4iv( 5386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5388560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)v 5389560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5390560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (v_base) { 5393560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 5394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5395560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 53962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 53972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 53982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4iv ( GLint location, GLsizei count, const GLint *v ) */ 5402560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5403560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4iv__IILjava_nio_IntBuffer_2 5404560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5405560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 540617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5407560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLint *v = (GLint *) 0; 5409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 541017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 541117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (v == NULL) { 541217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 541317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer v = (GLint *) (_vBase + _bufferOffset); 541417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniform4iv( 5416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5418560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint *)v 5419560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5420560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5421560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, v, JNI_FALSE); 5422560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5423560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5424560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5425560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5426560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5427560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix2fv__IIZ_3FI 5428560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { 54292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 54302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 54312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5432560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *value_base = (GLfloat *) 0; 5433560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5434560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *value = (GLfloat *) 0; 5435560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5436560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!value_ref) { 54372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 54382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 54392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "value == null"; 5440560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5441560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5442560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 54432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 54442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 54452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5446560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5447560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5448560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(value_ref) - offset; 5449560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich value_base = (GLfloat *) 5450560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); 5451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich value = value_base + offset; 5452560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5453560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniformMatrix2fv( 5454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5456560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)transpose, 5457560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)value 5458560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5460560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5461560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (value_base) { 5462560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(value_ref, value_base, 5463560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5464560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 54652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 54662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 54672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5468560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5469560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5472560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2 5473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { 5474560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 547517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5476560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5477560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *value = (GLfloat *) 0; 5478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 547917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); 548017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (value == NULL) { 548117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 548217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer value = (GLfloat *) (_valueBase + _bufferOffset); 548317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5484560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniformMatrix2fv( 5485560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5486560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5487560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)transpose, 5488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)value 5489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5491560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, value, JNI_FALSE); 5492560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5494560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5496560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix3fv__IIZ_3FI 5498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { 54992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 55002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 55012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *value_base = (GLfloat *) 0; 5503560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5504560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *value = (GLfloat *) 0; 5505560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5506560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!value_ref) { 55072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 55082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 55092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "value == null"; 5510560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5511560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5512560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 55132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 55142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 55152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5516560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5517560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5518560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(value_ref) - offset; 5519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich value_base = (GLfloat *) 5520560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); 5521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich value = value_base + offset; 5522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniformMatrix3fv( 5524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5525560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5526560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)transpose, 5527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)value 5528560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5529560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (value_base) { 5532560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(value_ref, value_base, 5533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5534560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 55352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 55362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 55372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5538560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5539560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5540560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5541560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5542560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2 5543560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { 5544560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 554517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5546560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5547560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *value = (GLfloat *) 0; 5548560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 554917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); 555017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (value == NULL) { 555117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 555217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer value = (GLfloat *) (_valueBase + _bufferOffset); 555317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5554560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniformMatrix3fv( 5555560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5556560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5557560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)transpose, 5558560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)value 5559560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5560560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5561560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, value, JNI_FALSE); 5562560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5563560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5564560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5565560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5566560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5567560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix4fv__IIZ_3FI 5568560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { 55692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 55702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 55712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5572560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *value_base = (GLfloat *) 0; 5573560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5574560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *value = (GLfloat *) 0; 5575560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5576560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!value_ref) { 55772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 55782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 55792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "value == null"; 5580560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5581560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5582560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 55832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 55842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 55852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5586560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5587560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5588560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(value_ref) - offset; 5589560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich value_base = (GLfloat *) 5590560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); 5591560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich value = value_base + offset; 5592560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5593560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniformMatrix4fv( 5594560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5595560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5596560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)transpose, 5597560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)value 5598560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5599560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5600560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5601560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (value_base) { 5602560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(value_ref, value_base, 5603560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5604560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 56052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 56062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 56072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5608560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5609560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5610560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5611560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5612560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2 5613560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { 5614560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 561517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5616560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5617560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *value = (GLfloat *) 0; 5618560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 561917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); 562017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (value == NULL) { 562117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 562217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer value = (GLfloat *) (_valueBase + _bufferOffset); 562317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5624560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUniformMatrix4fv( 5625560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)location, 5626560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)count, 5627560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)transpose, 5628560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)value 5629560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5630560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5631560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, value, JNI_FALSE); 5632560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5633560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5634560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5635560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUseProgram ( GLuint program ) */ 5636560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5637560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUseProgram__I 5638560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program) { 5639560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glUseProgram( 5640560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program 5641560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5642560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5643560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5644560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glValidateProgram ( GLuint program ) */ 5645560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5646560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glValidateProgram__I 5647560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint program) { 5648560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glValidateProgram( 5649560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)program 5650560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5651560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5652560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5653560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib1f ( GLuint indx, GLfloat x ) */ 5654560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5655560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib1f__IF 5656560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jfloat x) { 5657560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib1f( 5658560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5659560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)x 5660560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5661560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5662560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5663560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib1fv ( GLuint indx, const GLfloat *values ) */ 5664560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5665560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib1fv__I_3FI 5666560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) { 56672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 56682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 56692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5670560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values_base = (GLfloat *) 0; 5671560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5672560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values = (GLfloat *) 0; 5673560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5674560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!values_ref) { 56752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 56762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 56772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "values == null"; 5678560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5679560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5680560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 56812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 56822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 56832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5684560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5685560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5686560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(values_ref) - offset; 5687560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich values_base = (GLfloat *) 5688560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); 5689560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich values = values_base + offset; 5690560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5691560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib1fv( 5692560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5693560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)values 5694560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5695560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5696560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5697560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (values_base) { 5698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(values_ref, values_base, 5699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5700560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 57012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 57022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 57032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib1fv ( GLuint indx, const GLfloat *values ) */ 5707560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5708560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib1fv__ILjava_nio_FloatBuffer_2 5709560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) { 5710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 571117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5713560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values = (GLfloat *) 0; 5714560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 571517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); 571617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (values == NULL) { 571717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 571817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer values = (GLfloat *) (_valuesBase + _bufferOffset); 571917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5720560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib1fv( 5721560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5722560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)values 5723560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5724560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5725560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, values, JNI_FALSE); 5726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5727560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5729560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib2f ( GLuint indx, GLfloat x, GLfloat y ) */ 5730560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5731560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib2f__IFF 5732560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jfloat x, jfloat y) { 5733560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib2f( 5734560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5735560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)x, 5736560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)y 5737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5738560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5739560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5740560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib2fv ( GLuint indx, const GLfloat *values ) */ 5741560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5742560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib2fv__I_3FI 5743560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) { 57442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 57452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 57462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5747560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values_base = (GLfloat *) 0; 5748560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5749560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values = (GLfloat *) 0; 5750560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5751560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!values_ref) { 57522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 57532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 57542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "values == null"; 5755560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5756560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5757560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 57582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 57592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 57602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5762560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(values_ref) - offset; 5764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich values_base = (GLfloat *) 5765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); 5766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich values = values_base + offset; 5767560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5768560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib2fv( 5769560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5770560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)values 5771560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5774560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (values_base) { 5775560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(values_ref, values_base, 5776560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 57782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 57792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 57802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5781560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5782560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5783560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib2fv ( GLuint indx, const GLfloat *values ) */ 5784560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib2fv__ILjava_nio_FloatBuffer_2 5786560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) { 5787560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 578817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5789560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5790560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values = (GLfloat *) 0; 5791560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 579217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); 579317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (values == NULL) { 579417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 579517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer values = (GLfloat *) (_valuesBase + _bufferOffset); 579617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5797560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib2fv( 5798560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)values 5800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, values, JNI_FALSE); 5803560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5804560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5805560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib3f ( GLuint indx, GLfloat x, GLfloat y, GLfloat z ) */ 5807560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5808560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib3f__IFFF 5809560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jfloat x, jfloat y, jfloat z) { 5810560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib3f( 5811560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5812560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)x, 5813560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)y, 5814560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)z 5815560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5816560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5817560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5818560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib3fv ( GLuint indx, const GLfloat *values ) */ 5819560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5820560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib3fv__I_3FI 5821560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) { 58222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 58232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 58242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5825560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values_base = (GLfloat *) 0; 5826560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5827560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values = (GLfloat *) 0; 5828560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5829560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!values_ref) { 58302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 58312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 58322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "values == null"; 5833560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5834560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5835560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 58362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 58372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 58382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5839560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5840560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5841560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(values_ref) - offset; 5842560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich values_base = (GLfloat *) 5843560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); 5844560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich values = values_base + offset; 5845560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5846560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib3fv( 5847560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5848560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)values 5849560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5850560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5852560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (values_base) { 5853560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(values_ref, values_base, 5854560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5855560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 58562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 58572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 58582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5859560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5860560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5861560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib3fv ( GLuint indx, const GLfloat *values ) */ 5862560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5863560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib3fv__ILjava_nio_FloatBuffer_2 5864560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) { 5865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 586617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5867560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5868560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values = (GLfloat *) 0; 5869560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 587017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); 587117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (values == NULL) { 587217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 587317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer values = (GLfloat *) (_valuesBase + _bufferOffset); 587417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5875560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib3fv( 5876560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5877560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)values 5878560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5879560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5880560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, values, JNI_FALSE); 5881560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5882560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5883560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5884560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib4f ( GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) */ 5885560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5886560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib4f__IFFFF 5887560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jfloat x, jfloat y, jfloat z, jfloat w) { 5888560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib4f( 5889560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5890560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)x, 5891560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)y, 5892560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)z, 5893560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat)w 5894560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5895560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5896560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5897560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib4fv ( GLuint indx, const GLfloat *values ) */ 5898560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5899560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib4fv__I_3FI 5900560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) { 59012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 59022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 59032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 5904560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values_base = (GLfloat *) 0; 5905560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5906560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values = (GLfloat *) 0; 5907560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5908560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (!values_ref) { 59092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 59102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 59112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "values == null"; 5912560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5913560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5914560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (offset < 0) { 59152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 59162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 59172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 5918560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich goto exit; 5919560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5920560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _remaining = _env->GetArrayLength(values_ref) - offset; 5921560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich values_base = (GLfloat *) 5922560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); 5923560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich values = values_base + offset; 5924560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5925560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib4fv( 5926560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5927560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)values 5928560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5929560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5930560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit: 5931560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (values_base) { 5932560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich _env->ReleasePrimitiveArrayCritical(values_ref, values_base, 5933560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich JNI_ABORT); 5934560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 59352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 59362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 59372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 5938560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5939560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5940560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib4fv ( GLuint indx, const GLfloat *values ) */ 5941560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5942560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib4fv__ILjava_nio_FloatBuffer_2 5943560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) { 5944560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 594517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5946560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5947560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLfloat *values = (GLfloat *) 0; 5948560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 594917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); 595017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (values == NULL) { 595117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 595217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer values = (GLfloat *) (_valuesBase + _bufferOffset); 595317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 5954560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttrib4fv( 5955560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5956560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLfloat *)values 5957560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 5958560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (_array) { 5959560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich releasePointer(_env, _array, values, JNI_FALSE); 5960560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5961560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 5962560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5963224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich/* void glVertexAttribPointer ( GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLint offset ) */ 5964224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevichstatic void 5965224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevichandroid_glVertexAttribPointer__IIIZII 5966224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (JNIEnv *_env, jobject _this, jint indx, jint size, jint type, jboolean normalized, jint stride, jint offset) { 5967224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich glVertexAttribPointer( 5968224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (GLuint)indx, 5969224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (GLint)size, 5970224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (GLenum)type, 5971224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (GLboolean)normalized, 5972224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (GLsizei)stride, 5973224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich (const GLvoid *)offset 5974224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich ); 5975224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich} 5976224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich 5977560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttribPointer ( GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *ptr ) */ 5978560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 5979560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttribPointerBounds__IIIZILjava_nio_Buffer_2I 5980560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint indx, jint size, jint type, jboolean normalized, jint stride, jobject ptr_buf, jint remaining) { 5981560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jarray _array = (jarray) 0; 598217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 5983560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich jint _remaining; 5984560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich GLvoid *ptr = (GLvoid *) 0; 5985560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 5986560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if (ptr_buf) { 5987560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ptr = (GLvoid *) getDirectBufferPointer(_env, ptr_buf); 5988560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich if ( ! ptr ) { 5989560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return; 5990560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5991560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich } 5992560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glVertexAttribPointerBounds( 5993560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLuint)indx, 5994560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)size, 5995560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLenum)type, 5996560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLboolean)normalized, 5997560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)stride, 5998560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLvoid *)ptr, 5999560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)remaining 6000560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 6001560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 6002560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 6003560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 6004560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void 6005560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glViewport__IIII 6006560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 6007560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich glViewport( 6008560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)x, 6009560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLint)y, 6010560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)width, 6011560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich (GLsizei)height 6012560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich ); 6013560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 6014560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 6015560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic const char *classPathName = "android/opengl/GLES20"; 6016560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 6017560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic JNINativeMethod methods[] = { 6018560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit }, 6019560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I }, 6020560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glAttachShader", "(II)V", (void *) android_glAttachShader__II }, 6021560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBindAttribLocation", "(IILjava/lang/String;)V", (void *) android_glBindAttribLocation__IILjava_lang_String_2 }, 6022560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II }, 6023560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBindFramebuffer", "(II)V", (void *) android_glBindFramebuffer__II }, 6024560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBindRenderbuffer", "(II)V", (void *) android_glBindRenderbuffer__II }, 6025560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBindTexture", "(II)V", (void *) android_glBindTexture__II }, 6026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBlendColor", "(FFFF)V", (void *) android_glBlendColor__FFFF }, 6027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBlendEquation", "(I)V", (void *) android_glBlendEquation__I }, 6028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBlendEquationSeparate", "(II)V", (void *) android_glBlendEquationSeparate__II }, 6029560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II }, 6030560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBlendFuncSeparate", "(IIII)V", (void *) android_glBlendFuncSeparate__IIII }, 6031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I }, 6032560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 }, 6033560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCheckFramebufferStatus", "(I)I", (void *) android_glCheckFramebufferStatus__I }, 6034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glClear", "(I)V", (void *) android_glClear__I }, 6035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF }, 6036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F }, 6037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glClearStencil", "(I)V", (void *) android_glClearStencil__I }, 6038560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ }, 6039560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCompileShader", "(I)V", (void *) android_glCompileShader__I }, 6040560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 }, 6041560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 6042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII }, 6043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII }, 6044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCreateProgram", "()I", (void *) android_glCreateProgram__ }, 6045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCreateShader", "(I)I", (void *) android_glCreateShader__I }, 6046560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCullFace", "(I)V", (void *) android_glCullFace__I }, 6047560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II }, 6048560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 }, 6049560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteFramebuffers", "(I[II)V", (void *) android_glDeleteFramebuffers__I_3II }, 6050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteFramebuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteFramebuffers__ILjava_nio_IntBuffer_2 }, 6051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteProgram", "(I)V", (void *) android_glDeleteProgram__I }, 6052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteRenderbuffers", "(I[II)V", (void *) android_glDeleteRenderbuffers__I_3II }, 6053560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteRenderbuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteRenderbuffers__ILjava_nio_IntBuffer_2 }, 6054560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteShader", "(I)V", (void *) android_glDeleteShader__I }, 6055560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II }, 6056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 }, 6057560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I }, 6058560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z }, 6059560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF }, 6060560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDetachShader", "(II)V", (void *) android_glDetachShader__II }, 6061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDisable", "(I)V", (void *) android_glDisable__I }, 6062560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDisableVertexAttribArray", "(I)V", (void *) android_glDisableVertexAttribArray__I }, 6063560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III }, 6064224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich{"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII }, 6065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 }, 6066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glEnable", "(I)V", (void *) android_glEnable__I }, 6067560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glEnableVertexAttribArray", "(I)V", (void *) android_glEnableVertexAttribArray__I }, 6068560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glFinish", "()V", (void *) android_glFinish__ }, 6069560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glFlush", "()V", (void *) android_glFlush__ }, 6070560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glFramebufferRenderbuffer", "(IIII)V", (void *) android_glFramebufferRenderbuffer__IIII }, 6071560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glFramebufferTexture2D", "(IIIII)V", (void *) android_glFramebufferTexture2D__IIIII }, 6072560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glFrontFace", "(I)V", (void *) android_glFrontFace__I }, 6073560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II }, 6074560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 }, 6075560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenerateMipmap", "(I)V", (void *) android_glGenerateMipmap__I }, 6076560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenFramebuffers", "(I[II)V", (void *) android_glGenFramebuffers__I_3II }, 6077560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenFramebuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenFramebuffers__ILjava_nio_IntBuffer_2 }, 6078560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenRenderbuffers", "(I[II)V", (void *) android_glGenRenderbuffers__I_3II }, 6079560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenRenderbuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenRenderbuffers__ILjava_nio_IntBuffer_2 }, 6080560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II }, 6081560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 }, 6082560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetActiveAttrib", "(III[II[II[II[BI)V", (void *) android_glGetActiveAttrib__III_3II_3II_3II_3BI }, 6083560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetActiveAttrib", "(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V", (void *) android_glGetActiveAttrib__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B }, 6084dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer{"glGetActiveAttrib", "(II[II[II)Ljava/lang/String;", (void *) android_glGetActiveAttrib1 }, 6085dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer{"glGetActiveAttrib", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)Ljava/lang/String;", (void *) android_glGetActiveAttrib2 }, 6086560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetActiveUniform", "(III[II[II[II[BI)V", (void *) android_glGetActiveUniform__III_3II_3II_3II_3BI }, 6087dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer{"glGetActiveUniform", "(II[II[II)Ljava/lang/String;", (void *) android_glGetActiveUniform1 }, 6088560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetActiveUniform", "(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V", (void *) android_glGetActiveUniform__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B }, 6089dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer{"glGetActiveUniform", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)Ljava/lang/String;", (void *) android_glGetActiveUniform2 }, 6090560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetAttachedShaders", "(II[II[II)V", (void *) android_glGetAttachedShaders__II_3II_3II }, 6091560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetAttachedShaders", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V", (void *) android_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 }, 6092560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetAttribLocation", "(ILjava/lang/String;)I", (void *) android_glGetAttribLocation__ILjava_lang_String_2 }, 6093560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI }, 6094560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 }, 6095560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II }, 6096560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 }, 6097560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetError", "()I", (void *) android_glGetError__ }, 6098560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI }, 6099560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 }, 6100560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetFramebufferAttachmentParameteriv", "(III[II)V", (void *) android_glGetFramebufferAttachmentParameteriv__III_3II }, 6101560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetFramebufferAttachmentParameteriv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2 }, 6102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II }, 6103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 }, 6104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetProgramiv", "(II[II)V", (void *) android_glGetProgramiv__II_3II }, 6105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetProgramiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetProgramiv__IILjava_nio_IntBuffer_2 }, 6106560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetProgramInfoLog", "(I)Ljava/lang/String;", (void *) android_glGetProgramInfoLog }, 6107560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetRenderbufferParameteriv", "(II[II)V", (void *) android_glGetRenderbufferParameteriv__II_3II }, 6108560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetRenderbufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetRenderbufferParameteriv__IILjava_nio_IntBuffer_2 }, 6109560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderiv", "(II[II)V", (void *) android_glGetShaderiv__II_3II }, 6110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetShaderiv__IILjava_nio_IntBuffer_2 }, 6111560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderInfoLog", "(I)Ljava/lang/String;", (void *) android_glGetShaderInfoLog }, 6112560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderPrecisionFormat", "(II[II[II)V", (void *) android_glGetShaderPrecisionFormat__II_3II_3II }, 6113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderPrecisionFormat", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V", (void *) android_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 }, 6114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderSource", "(II[II[BI)V", (void *) android_glGetShaderSource__II_3II_3BI }, 6115560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderSource", "(IILjava/nio/IntBuffer;B)V", (void *) android_glGetShaderSource__IILjava_nio_IntBuffer_2B }, 6116dd06946252be852aa53eb6142a119b0fccc83cd1Thomas Tafertshofer{"glGetShaderSource", "(I)Ljava/lang/String;", (void *) android_glGetShaderSource }, 6117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString }, 6118560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI }, 6119560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 }, 6120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II }, 6121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 }, 6122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetUniformfv", "(II[FI)V", (void *) android_glGetUniformfv__II_3FI }, 6123560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetUniformfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetUniformfv__IILjava_nio_FloatBuffer_2 }, 6124560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetUniformiv", "(II[II)V", (void *) android_glGetUniformiv__II_3II }, 6125560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetUniformiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetUniformiv__IILjava_nio_IntBuffer_2 }, 6126560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetUniformLocation", "(ILjava/lang/String;)I", (void *) android_glGetUniformLocation__ILjava_lang_String_2 }, 6127560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetVertexAttribfv", "(II[FI)V", (void *) android_glGetVertexAttribfv__II_3FI }, 6128560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetVertexAttribfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetVertexAttribfv__IILjava_nio_FloatBuffer_2 }, 6129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetVertexAttribiv", "(II[II)V", (void *) android_glGetVertexAttribiv__II_3II }, 6130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetVertexAttribiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetVertexAttribiv__IILjava_nio_IntBuffer_2 }, 6131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glHint", "(II)V", (void *) android_glHint__II }, 6132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I }, 6133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I }, 6134560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsFramebuffer", "(I)Z", (void *) android_glIsFramebuffer__I }, 6135560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsProgram", "(I)Z", (void *) android_glIsProgram__I }, 6136560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsRenderbuffer", "(I)Z", (void *) android_glIsRenderbuffer__I }, 6137560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsShader", "(I)Z", (void *) android_glIsShader__I }, 6138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsTexture", "(I)Z", (void *) android_glIsTexture__I }, 6139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glLineWidth", "(F)V", (void *) android_glLineWidth__F }, 6140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glLinkProgram", "(I)V", (void *) android_glLinkProgram__I }, 6141560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II }, 6142560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF }, 6143560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 }, 6144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glReleaseShaderCompiler", "()V", (void *) android_glReleaseShaderCompiler__ }, 6145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glRenderbufferStorage", "(IIII)V", (void *) android_glRenderbufferStorage__IIII }, 6146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ }, 6147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glScissor", "(IIII)V", (void *) android_glScissor__IIII }, 6148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glShaderBinary", "(I[IIILjava/nio/Buffer;I)V", (void *) android_glShaderBinary__I_3IIILjava_nio_Buffer_2I }, 6149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glShaderBinary", "(ILjava/nio/IntBuffer;ILjava/nio/Buffer;I)V", (void *) android_glShaderBinary__ILjava_nio_IntBuffer_2ILjava_nio_Buffer_2I }, 6150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glShaderSource", "(ILjava/lang/String;)V", (void *) android_glShaderSource }, 6151560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III }, 6152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilFuncSeparate", "(IIII)V", (void *) android_glStencilFuncSeparate__IIII }, 6153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilMask", "(I)V", (void *) android_glStencilMask__I }, 6154560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilMaskSeparate", "(II)V", (void *) android_glStencilMaskSeparate__II }, 6155560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilOp", "(III)V", (void *) android_glStencilOp__III }, 6156560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilOpSeparate", "(IIII)V", (void *) android_glStencilOpSeparate__IIII }, 6157560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 }, 6158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF }, 6159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI }, 6160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 }, 6161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III }, 6162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II }, 6163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 }, 6164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 6165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1f", "(IF)V", (void *) android_glUniform1f__IF }, 6166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1fv", "(II[FI)V", (void *) android_glUniform1fv__II_3FI }, 6167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform1fv__IILjava_nio_FloatBuffer_2 }, 6168560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1i", "(II)V", (void *) android_glUniform1i__II }, 6169560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1iv", "(II[II)V", (void *) android_glUniform1iv__II_3II }, 6170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform1iv__IILjava_nio_IntBuffer_2 }, 6171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2f", "(IFF)V", (void *) android_glUniform2f__IFF }, 6172560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2fv", "(II[FI)V", (void *) android_glUniform2fv__II_3FI }, 6173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform2fv__IILjava_nio_FloatBuffer_2 }, 6174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2i", "(III)V", (void *) android_glUniform2i__III }, 6175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2iv", "(II[II)V", (void *) android_glUniform2iv__II_3II }, 6176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform2iv__IILjava_nio_IntBuffer_2 }, 6177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3f", "(IFFF)V", (void *) android_glUniform3f__IFFF }, 6178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3fv", "(II[FI)V", (void *) android_glUniform3fv__II_3FI }, 6179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform3fv__IILjava_nio_FloatBuffer_2 }, 6180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3i", "(IIII)V", (void *) android_glUniform3i__IIII }, 6181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3iv", "(II[II)V", (void *) android_glUniform3iv__II_3II }, 6182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform3iv__IILjava_nio_IntBuffer_2 }, 6183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4f", "(IFFFF)V", (void *) android_glUniform4f__IFFFF }, 6184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4fv", "(II[FI)V", (void *) android_glUniform4fv__II_3FI }, 6185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform4fv__IILjava_nio_FloatBuffer_2 }, 6186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4i", "(IIIII)V", (void *) android_glUniform4i__IIIII }, 6187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4iv", "(II[II)V", (void *) android_glUniform4iv__II_3II }, 6188560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform4iv__IILjava_nio_IntBuffer_2 }, 6189560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix2fv", "(IIZ[FI)V", (void *) android_glUniformMatrix2fv__IIZ_3FI }, 6190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix2fv", "(IIZLjava/nio/FloatBuffer;)V", (void *) android_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2 }, 6191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix3fv", "(IIZ[FI)V", (void *) android_glUniformMatrix3fv__IIZ_3FI }, 6192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix3fv", "(IIZLjava/nio/FloatBuffer;)V", (void *) android_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2 }, 6193560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix4fv", "(IIZ[FI)V", (void *) android_glUniformMatrix4fv__IIZ_3FI }, 6194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix4fv", "(IIZLjava/nio/FloatBuffer;)V", (void *) android_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2 }, 6195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUseProgram", "(I)V", (void *) android_glUseProgram__I }, 6196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glValidateProgram", "(I)V", (void *) android_glValidateProgram__I }, 6197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib1f", "(IF)V", (void *) android_glVertexAttrib1f__IF }, 6198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib1fv", "(I[FI)V", (void *) android_glVertexAttrib1fv__I_3FI }, 6199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib1fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib1fv__ILjava_nio_FloatBuffer_2 }, 6200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib2f", "(IFF)V", (void *) android_glVertexAttrib2f__IFF }, 6201560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib2fv", "(I[FI)V", (void *) android_glVertexAttrib2fv__I_3FI }, 6202560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib2fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib2fv__ILjava_nio_FloatBuffer_2 }, 6203560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib3f", "(IFFF)V", (void *) android_glVertexAttrib3f__IFFF }, 6204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib3fv", "(I[FI)V", (void *) android_glVertexAttrib3fv__I_3FI }, 6205560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib3fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib3fv__ILjava_nio_FloatBuffer_2 }, 6206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib4f", "(IFFFF)V", (void *) android_glVertexAttrib4f__IFFFF }, 6207560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib4fv", "(I[FI)V", (void *) android_glVertexAttrib4fv__I_3FI }, 6208560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib4fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib4fv__ILjava_nio_FloatBuffer_2 }, 6209224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich{"glVertexAttribPointer", "(IIIZII)V", (void *) android_glVertexAttribPointer__IIIZII }, 6210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttribPointerBounds", "(IIIZILjava/nio/Buffer;I)V", (void *) android_glVertexAttribPointerBounds__IIIZILjava_nio_Buffer_2I }, 6211560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glViewport", "(IIII)V", (void *) android_glViewport__IIII }, 6212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}; 6213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich 6214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichint register_android_opengl_jni_GLES20(JNIEnv *_env) 6215560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{ 6216560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich int err; 6217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods)); 6218560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich return err; 6219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich} 6220