android_opengl_GLES11.cpp revision c620a52b69a5f29563e06497e30877809f5d67a5
127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* 227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** 327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** Copyright 2009, The Android Open Source Project 427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** 527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** Licensed under the Apache License, Version 2.0 (the "License"); 627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** you may not use this file except in compliance with the License. 727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** You may obtain a copy of the License at 827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** 927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** http://www.apache.org/licenses/LICENSE-2.0 1027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** 1127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** Unless required by applicable law or agreed to in writing, software 1227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** distributed under the License is distributed on an "AS IS" BASIS, 1327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** See the License for the specific language governing permissions and 1527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** limitations under the License. 1627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich*/ 1727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 1827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// This source file is automatically generated 1927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <android_runtime/AndroidRuntime.h> 2127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <utils/misc.h> 2227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <assert.h> 2427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <GLES/gl.h> 25be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#include <GLES/glext.h> 2627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic int initialized = 0; 2827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass nioAccessClass; 3027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass bufferClass; 3127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass OOMEClass; 3227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass UOEClass; 3327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass IAEClass; 3427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass AIOOBEClass; 3527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBasePointerID; 3627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayID; 3727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayOffsetID; 3827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID positionID; 3927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID limitID; 4027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID elementSizeShiftID; 4127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 4227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* Cache method IDs each time the class is loaded. */ 4327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 4427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 4527f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichnativeClassInitBuffer(JNIEnv *_env) 4627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 4727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess"); 4827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal); 4927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 5027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass bufferClassLocal = _env->FindClass("java/nio/Buffer"); 5127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal); 5227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 5327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBasePointerID = _env->GetStaticMethodID(nioAccessClass, 5427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBasePointer", "(Ljava/nio/Buffer;)J"); 5527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, 5627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;"); 5727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass, 5827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBaseArrayOffset", "(Ljava/nio/Buffer;)I"); 5927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 6027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich positionID = _env->GetFieldID(bufferClass, "position", "I"); 6127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich limitID = _env->GetFieldID(bufferClass, "limit", "I"); 6227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich elementSizeShiftID = 6327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetFieldID(bufferClass, "_elementSizeShift", "I"); 6427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 6527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 6627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 6727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 6827f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichnativeClassInit(JNIEnv *_env, jclass glImplClass) 6927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 7027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich nativeClassInitBuffer(_env); 7127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 7227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass IAEClassLocal = 7327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->FindClass("java/lang/IllegalArgumentException"); 7427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass OOMEClassLocal = 7527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->FindClass("java/lang/OutOfMemoryError"); 7627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass UOEClassLocal = 7727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->FindClass("java/lang/UnsupportedOperationException"); 7827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass AIOOBEClassLocal = 7927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->FindClass("java/lang/ArrayIndexOutOfBoundsException"); 8027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 8127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal); 8227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal); 8327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal); 8427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal); 8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 8627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 8727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void * 8827f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichgetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining) 8927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 9027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint position; 9127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint limit; 9227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint elementSizeShift; 9327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jlong pointer; 9427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint offset; 9527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich void *data; 9627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 9727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich position = _env->GetIntField(buffer, positionID); 9827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich limit = _env->GetIntField(buffer, limitID); 9927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 10027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *remaining = (limit - position) << elementSizeShift; 10127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich pointer = _env->CallStaticLongMethod(nioAccessClass, 10227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBasePointerID, buffer); 10327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pointer != 0L) { 10427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *array = NULL; 10527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return (void *) (jint) pointer; 10627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 10727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 10827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass, 10927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayID, buffer); 11027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich offset = _env->CallStaticIntMethod(nioAccessClass, 11127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayOffsetID, buffer); 11227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0); 11327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 11427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return (void *) ((char *) data + offset); 11527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 11627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 11727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 11827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 11927f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) 12027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 12127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(array, data, 12227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich commit ? 0 : JNI_ABORT); 12327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 12427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 12527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// -------------------------------------------------------------------------- 12627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 12727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindBuffer ( GLenum target, GLuint buffer ) */ 12827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 12927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindBuffer__II 13027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint buffer) { 13127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBindBuffer( 13227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 13327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)buffer 13427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 13527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 13627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 13727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */ 13827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 13927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBufferData__IILjava_nio_Buffer_2I 14027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) { 14127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 14227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 14327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 14427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 14527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (data_buf) { 14627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining); 147c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich if (_remaining < size) { 148c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich _env->ThrowNew(IAEClass, "remaining() < size"); 149c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich goto exit; 150c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich } 15127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 15227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBufferData( 15327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 15427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizeiptr)size, 15527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data, 15627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)usage 15727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 158c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich 159c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit: 16027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 16127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 16227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 16327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 16427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 16527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */ 16627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 16727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBufferSubData__IIILjava_nio_Buffer_2 16827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) { 16927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 17027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 17127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 17227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 17327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining); 174c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich if (_remaining < size) { 175c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich _env->ThrowNew(IAEClass, "remaining() < size"); 176c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich goto exit; 177c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich } 17827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBufferSubData( 17927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 18027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLintptr)offset, 18127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizeiptr)size, 18227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data 18327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 184c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich 185c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit: 18627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 18727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 18827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 19027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 19127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */ 19227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 19327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanef__I_3FI 19427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) { 19527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *equation_base = (GLfloat *) 0; 19627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 19727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *equation = (GLfloat *) 0; 19827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 19927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!equation_ref) { 20027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "equation == null"); 20127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 20227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 20427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 20527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 20627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(equation_ref) - offset; 20827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation_base = (GLfloat *) 20927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); 21027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation = equation_base + offset; 21127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 21227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanef( 21327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 21427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)equation 21527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 21627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 21727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 21827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (equation_base) { 21927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, 22027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 22127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 22327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 22427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */ 22527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 22627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanef__ILjava_nio_FloatBuffer_2 22727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) { 22827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 22927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 23027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *equation = (GLfloat *) 0; 23127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 23227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining); 23327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanef( 23427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 23527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)equation 23627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 23727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 23827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, equation, JNI_FALSE); 23927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 24027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 24127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 24227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */ 24327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 24427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanex__I_3II 24527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) { 24627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *equation_base = (GLfixed *) 0; 24727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 24827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *equation = (GLfixed *) 0; 24927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 25027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!equation_ref) { 25127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "equation == null"); 25227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 25327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 25427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 25527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 25627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 25727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 25827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(equation_ref) - offset; 25927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation_base = (GLfixed *) 26027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); 26127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation = equation_base + offset; 26227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 26327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanex( 26427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 26527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)equation 26627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 26727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 26827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 26927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (equation_base) { 27027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, 27127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 27227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 27327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 27427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 27527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */ 27627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 27727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanex__ILjava_nio_IntBuffer_2 27827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) { 27927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 28027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 28127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *equation = (GLfixed *) 0; 28227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 28327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining); 28427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanex( 28527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 28627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)equation 28727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 28827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 28927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, equation, JNI_FALSE); 29027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 29127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 29227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 29327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) */ 29427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 29527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4ub__BBBB 29627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jbyte red, jbyte green, jbyte blue, jbyte alpha) { 29727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColor4ub( 29827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)red, 29927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)green, 30027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)blue, 30127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)alpha 30227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 30327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 30427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 30527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ 30627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 30727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorPointer__IIII 30827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) { 30927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColorPointer( 31027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 31127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 31227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 31327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (const GLvoid *)offset 31427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 31527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 31627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 31727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */ 31827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 31927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteBuffers__I_3II 32027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) { 32127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers_base = (GLuint *) 0; 32227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 32327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 32427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 32527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!buffers_ref) { 32627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "buffers == null"); 32727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 32827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 32927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 33027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 33127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 33227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 33327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(buffers_ref) - offset; 33427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 33527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < n"); 33627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 33727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 33827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers_base = (GLuint *) 33927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); 34027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers = buffers_base + offset; 34127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 34227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteBuffers( 34327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 34427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 34527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 34627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 34727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 34827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (buffers_base) { 34927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, 35027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 35127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 35227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 35327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 35427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */ 35527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 35627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteBuffers__ILjava_nio_IntBuffer_2 35727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) { 35827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 35927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 36027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 36127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 36227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining); 36327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 36427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < n"); 36527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 36627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 36727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteBuffers( 36827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 36927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 37027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 37127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 37227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 37327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 37427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, buffers, JNI_FALSE); 37527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 37627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 37727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 37827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */ 37927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 38027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawElements__IIII 38127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) { 38227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDrawElements( 38327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode, 38427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)count, 38527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 38627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (const GLvoid *)offset 38727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 38827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 38927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 39027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */ 39127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 39227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenBuffers__I_3II 39327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) { 39427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 39527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers_base = (GLuint *) 0; 39627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 39727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 39827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 39927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!buffers_ref) { 40027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 40127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "buffers == null"); 40227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 40327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 40427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 40527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 40627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 40727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 40827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 40927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(buffers_ref) - offset; 41027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 41127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 41227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < n"); 41327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 41427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 41527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers_base = (GLuint *) 41627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); 41727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers = buffers_base + offset; 41827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 41927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenBuffers( 42027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 42127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 42227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 42327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 42427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 42527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (buffers_base) { 42627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, 42727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 42827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 42927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 43027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 43127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */ 43227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 43327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenBuffers__ILjava_nio_IntBuffer_2 43427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) { 43527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 43627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 43727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 43827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 43927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 44027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining); 44127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 44227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 44327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < n"); 44427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 44527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenBuffers( 44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 44827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 44927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 45027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 45127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 45227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 45327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE); 45427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 45527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 45627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 45727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ 45827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 45927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBooleanv__I_3ZI 46027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) { 46127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 46227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean *params_base = (GLboolean *) 0; 46327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 46427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean *params = (GLboolean *) 0; 46527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 46627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 46827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 47027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 47127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 47227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 47327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 47427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 47527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 47627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLboolean *) 47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 47927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 48027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 48127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetBooleanv( 48227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 48327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean *)params 48427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 48527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 48627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 48727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 48827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 48927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 49027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 49127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 49227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 49327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ 49427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 49527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBooleanv__ILjava_nio_IntBuffer_2 49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 49727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 49827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean *params = (GLboolean *) 0; 50127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 50227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining); 50327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetBooleanv( 50427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean *)params 50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 50727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 50827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 50927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 51027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 51127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 51427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBufferParameteriv__II_3II 51527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 51627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(UOEClass, 51727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "glGetBufferParameteriv"); 51827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 51927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 52027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 52127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 52227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 52327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 52427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(UOEClass, 52527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "glGetBufferParameteriv"); 52627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 52727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 52827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */ 52927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 53027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanef__I_3FI 53127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) { 53227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 53327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *eqn_base = (GLfloat *) 0; 53427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 53527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *eqn = (GLfloat *) 0; 53627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 53727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!eqn_ref) { 53827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 53927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "eqn == null"); 54027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 54127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 54227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 54327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 54427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 54527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 54627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 54727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(eqn_ref) - offset; 54827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn_base = (GLfloat *) 54927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); 55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn = eqn_base + offset; 55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 55227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanef( 55327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 55427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)eqn 55527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 55627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 55727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 55827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (eqn_base) { 55927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, 56027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 56127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 56227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 56327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 56427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */ 56527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 56627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanef__ILjava_nio_FloatBuffer_2 56727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) { 56827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 56927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 57027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 57127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *eqn = (GLfloat *) 0; 57227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 57327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining); 57427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanef( 57527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 57627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)eqn 57727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 57827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 57927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE); 58027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 58127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 58227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 58327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */ 58427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 58527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanex__I_3II 58627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) { 58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *eqn_base = (GLfixed *) 0; 58927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 59027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *eqn = (GLfixed *) 0; 59127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 59227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!eqn_ref) { 59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 59427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "eqn == null"); 59527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 59627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 59727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 59827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 59927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 60027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 60227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(eqn_ref) - offset; 60327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn_base = (GLfixed *) 60427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); 60527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn = eqn_base + offset; 60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanex( 60827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 60927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)eqn 61027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 61127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 61227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 61327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (eqn_base) { 61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, 61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 61627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 61727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 61827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 61927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */ 62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanex__ILjava_nio_IntBuffer_2 62227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) { 62327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 62427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 62527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 62627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *eqn = (GLfixed *) 0; 62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining); 62927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanex( 63027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 63127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)eqn 63227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE); 63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 63827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFixedv ( GLenum pname, GLfixed *params ) */ 63927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 64027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFixedv__I_3II 64127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 64227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 64327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 64427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 64527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 64627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 64727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 64827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 64927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 65027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 65127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 65227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 65327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 65427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 65527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 65627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 65727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 65827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 65927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 66027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 66127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 66227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetFixedv( 66327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 66427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 66527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 66627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 66727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 66827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 66927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 67027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 67127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 67227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 67327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 67427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFixedv ( GLenum pname, GLfixed *params ) */ 67527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 67627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFixedv__ILjava_nio_IntBuffer_2 67727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 67827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 67927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 68027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 68127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 68227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 68327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 68427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetFixedv( 68527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 68627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 68727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 68827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 68927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 69027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 69127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 69227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 69327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */ 69427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 69527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFloatv__I_3FI 69627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 69727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 69827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 69927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 70027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 70127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 70227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 70327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 70427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 70527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 70627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 70727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 70827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 70927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 71027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 71127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 71227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 71327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 71427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 71527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 71627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 71727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetFloatv( 71827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 71927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 72027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 72127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 72327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 72427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 72527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 72627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 72727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 72827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 72927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */ 73027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 73127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFloatv__ILjava_nio_FloatBuffer_2 73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 73327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 73427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 73527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 73627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 73727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 73827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 73927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetFloatv( 74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 74327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 74427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 74527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 74627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 74727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */ 74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 75027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightfv__II_3FI 75127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) { 75227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 75327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 75427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 75527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 75627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 75727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 75827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 75927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 76027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 76227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 76327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 76427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 76527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 76627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 76727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 77027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 77127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 77227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 77327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 77427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 77627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 77727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 77827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 77927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 78027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 78427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 78527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 78627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 78727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 79227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 79327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 79427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 79527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 79627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 79727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 79827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 79927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 80027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 80127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 80227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 80327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 80427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 80527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 80627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 80727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 80827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 80927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 81027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 81127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 81227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < needed"); 81327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 81427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 81527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 81627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 81727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 81827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 81927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightfv( 82027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 82127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 82227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 82327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 82427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 82527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 82627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 82727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 82827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 82927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 83027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 83127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 83227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */ 83327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 83427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightfv__IILjava_nio_FloatBuffer_2 83527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 83627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 83727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 83827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 84027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 84127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 84227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 84327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 84427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 84527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 84627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 84727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 84827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 84927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 85027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 85127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 85227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 85327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 85427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 85527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 85627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 85727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 85827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 85927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 86027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 86127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 86227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 86327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 86427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 86527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 86627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 86727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 86827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 86927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 87027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 87127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 87227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 87327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 87427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 87527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 87627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 87727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 87827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 87927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 88027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 88127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 88227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 88327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 88427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < needed"); 88727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 88827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 88927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightfv( 89027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 89127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 89227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 89327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 89427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 89527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 89627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 89727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 89827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 89927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 90027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 90127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */ 90227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 90327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightxv__II_3II 90427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) { 90527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 90627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 90727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 90827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 90927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 91027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 91127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 91227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 91327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 91427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 91527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 91627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 91727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 91827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 91927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 92027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 92127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 92227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 92327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 92427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 92527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 92627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 92727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 92827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 92927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 93027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 93127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 93227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 93327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 93527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 93627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 93727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 93827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 93927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 94027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 94127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 94227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 94327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 94427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 94527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 94627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 94727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 94827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 94927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 95027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 95127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 95227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 95327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 95427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 95527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 95627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 95727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 95827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 95927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 96027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 96127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 96227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 96327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 96427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 96527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < needed"); 96627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 96727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 96827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 96927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 97027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 97127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 97227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightxv( 97327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 97427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 97527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 97627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 97727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 97827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 97927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 98027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 98127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 98227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 98327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 98427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */ 98627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 98727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightxv__IILjava_nio_IntBuffer_2 98827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 98927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 99027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 99127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 99227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 99327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 99427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 99527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 99627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 99727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 99827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 99927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 100027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 100127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 100227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 100327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 100427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 100527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 100627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 100727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 100827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 100927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 101027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 101127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 101227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 101327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 101427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 101527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 101627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 101727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 101827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 101927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 102127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 102227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 102327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 102427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 102527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 102627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 102727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 102827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 102927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 103027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 103127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 103227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 103327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 103427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 103527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 103627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 103727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 103827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 103927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < needed"); 104027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 104127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 104227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightxv( 104327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 104427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 104527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 104627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 104727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 104827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 104927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 105027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 105127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 105227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 105327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 105427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */ 105527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 105627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialfv__II_3FI 105727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) { 105827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 105927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 106027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 106127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 106227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 106327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 106427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 106527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 106627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 106727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 106827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 106927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 107027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 107127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 107227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 107327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 107427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 107527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 107627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 107727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 107827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 107927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 108527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 108627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 108727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 108827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 108927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 109027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 109127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 109227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 109327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 109427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 109527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 109627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 109727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 109827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 109927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 110027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 110127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 110227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 110327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 110427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < needed"); 110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 110727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 110827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 110927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 111027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 111127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialfv( 111227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 111327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 111427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 111527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 111627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 111827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 112127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 112227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 112327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 112427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */ 112527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 112627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialfv__IILjava_nio_FloatBuffer_2 112727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 112827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 112927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 113027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 113127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 113227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 113327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 113427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 113527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 113627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 113727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 113827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 113927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 114027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 114127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 114227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 114327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 114427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 114527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 114627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 114727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 114827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 114927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 115027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 115127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 115227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 115327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 115427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 115527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 115627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 115727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 115827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 115927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 116027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 116127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 116227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 116327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 116427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < needed"); 116527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 116627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 116727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialfv( 116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 117027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 117127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 117227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 117327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 117427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 117527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 117627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 117727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 117827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 117927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */ 118027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 118127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialxv__II_3II 118227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) { 118327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 118427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 118527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 118627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 118727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 118827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 118927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 119027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 119127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 119227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 119327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 119427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 119527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 119627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 119727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 119827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 119927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 120027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 120127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 120227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 120527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 120627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 120727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 120827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 120927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 121027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 121127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 121227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 121327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 121427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 121527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 121627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 121727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 121827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 121927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 122027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 122127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 122227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 122327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 122427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 122527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 122627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 122727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 122827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 122927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < needed"); 123027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 123127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 123227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 123327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 123427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 123527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 123627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialxv( 123727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 123827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 123927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 124027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 124127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 124227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 124327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 124427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 124527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 124627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 124727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 124827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 124927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */ 125027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialxv__IILjava_nio_IntBuffer_2 125227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 125327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 125427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 125527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 125627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 125727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 125827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 125927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 126027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 126127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 126227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 126327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 126427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 126527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 126627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 126727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 126827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 127027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 127127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 127227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 127327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 127427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 127527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 127627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 127727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 127827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 127927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 128027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 128127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 128227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 128327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 128427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 128527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 128627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 128727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 128827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 128927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < needed"); 129027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 129127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 129227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialxv( 129327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 129427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 129527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 129627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 129727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 129827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 129927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 130027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 130127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 130227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 130327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 130427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params ) */ 130527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 130627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvfv__II_3FI 130727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jfloatArray params_ref, jint offset) { 130827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 130927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 131027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 131127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 131227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 131327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 131427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 131527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 131627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 131727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 131927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 132027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 132127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 132227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 132327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 132427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 132527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 132627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 132727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 132827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 132927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 133027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 133127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 133227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 133327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 133427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 133527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 133627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 133727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 133827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 133927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 134027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 134127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 134327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 134427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 134527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 134627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 134727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 134827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < needed"); 134927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 135027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 135127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 135227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 135327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 135427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 135527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvfv( 135627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 135727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 135827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 135927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 136027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 136127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 136227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 136327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 136427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 136527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 136627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 136727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 136827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params ) */ 136927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 137027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvfv__IILjava_nio_FloatBuffer_2 137127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { 137227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 137327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 137427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 137527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 137627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 137727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 137827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 137927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 138027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 138127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 138327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 138427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 138527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 138627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 138727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 138827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 138927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 139027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 139127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 139227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 139327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 139427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 139527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 139627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 139727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 139827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 139927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 140027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 140127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 140227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < needed"); 140327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 140427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 140527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvfv( 140627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 140727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 140827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 140927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 141027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 141127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 141227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 141327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 141427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 141527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 141627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 141727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */ 141827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 141927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnviv__II_3II 142027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) { 142127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 142227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 142327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 142427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 142527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 142627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 142727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 142827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 142927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 143027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 143127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 143227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 143327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 143427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 143527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 143627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 143727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 143827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 143927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 144027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 144127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 144227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 144327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 144427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 144527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 144627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 144727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 144827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 145027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 145127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 145227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 145327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 145427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 145527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 145627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 145727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 145827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 145927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 146027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 146127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < needed"); 146227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 146327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 146427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 146527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 146627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 146727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 146827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnviv( 146927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 147027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 147127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 147227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 147327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 147727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 147827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 147927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 148027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 148127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */ 148227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 148327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnviv__IILjava_nio_IntBuffer_2 148427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { 148527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 148627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 148727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 148827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 148927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 149027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining); 149127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 149227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 149327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 149427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 149527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 149627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 149727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 149827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 149927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 150027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 150127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 150227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 150327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 150427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 150527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 150627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 150727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 150827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 150927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 151027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 151127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 151227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 151327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 151427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 151527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < needed"); 151627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 151727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 151827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnviv( 151927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 152027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 152127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 152227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 152327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 152427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 152527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 152627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 152727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 152827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 152927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 153027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */ 153127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 153227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvxv__II_3II 153327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) { 153427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 153527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 153627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 153727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 153827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 153927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 154027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 154227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 154327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 154427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 154527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 154627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 154727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 154827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 154927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 155027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 155127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 155227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 155327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 155427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 155627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 155727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 155827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 155927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 156027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 156127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 156227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 156327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 156427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 156527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 156627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 156727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 156827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 156927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 157027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 157127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 157227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 157327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 157427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < needed"); 157527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 157627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 157727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 157827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 157927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 158027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 158127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvxv( 158227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 158327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 158427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 158527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 158627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 158727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 158827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 158927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 159027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 159127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 159227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 159327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 159427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */ 159527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvxv__IILjava_nio_IntBuffer_2 159727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { 159827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 159927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 160027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 160127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 160227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 160327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 160427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 160527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 160627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 160727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 160827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 160927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 161027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 161127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 161227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 161327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 161427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 161527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 161627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 161727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 161827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 161927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 162027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 162127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 162227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 162327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 162427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 162527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 162627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 162727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 162827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < needed"); 162927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvxv( 163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 163327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 163427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 163527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 163627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 163727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 163827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 163927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 164027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 164127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 164227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 164327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */ 164427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 164527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterfv__II_3FI 164627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 164727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 164827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 164927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 165027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 165127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 165227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 165327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 165427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 165527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 165627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 165727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 165827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 165927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 166027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 166127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 166227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 166327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 166427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 166527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < 1"); 166627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 166727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 166827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 166927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 167027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 167127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 167227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterfv( 167327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 167427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 167627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 167727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 167827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 167927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 168027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 168127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 168227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 168327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 168427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 168527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */ 168627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 168727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 168827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 168927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 169027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 169127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 169227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 169327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 169427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 169527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 169627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 169727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < 1"); 169827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 170027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterfv( 170127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 170227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 170327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 170427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 170527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 170827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 170927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 171027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 171127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 171227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 171327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 171427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameteriv__II_3II 171527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 171627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 171827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 171927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 172027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 172127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 172227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 172327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 172427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 172527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 172627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 172727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 172827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 172927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 173027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 173127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 173227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 173327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 173427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < 1"); 173527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 173627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 173727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 173827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 173927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 174027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 174127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameteriv( 174227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 174327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 174427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 174527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 174627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 174727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 174827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 174927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 175027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 175327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 175427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 175527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 175627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameteriv__IILjava_nio_IntBuffer_2 175727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 175827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 175927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 176027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 176127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 176227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 176327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining); 176427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 176527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 176627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < 1"); 176727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 176827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameteriv( 177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 177127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 177227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 177427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 177527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 177627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 177727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 177827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 177927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */ 178227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 178327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterxv__II_3II 178427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 178527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 178627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 178727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 178827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 178927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 179027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 179127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 179227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 179327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 179427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 179527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 179627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 179727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 179827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 179927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 180027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 180127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 180227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 180327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < 1"); 180427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 180527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 180627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 180727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 180827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 180927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 181027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterxv( 181127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 181227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 181327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 181427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 181527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 181627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 181727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 181827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 181927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 182027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 182127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 182227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 182327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */ 182427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 182527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterxv__IILjava_nio_IntBuffer_2 182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 182927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 183027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 183127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 183227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 183327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 183427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 183527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < 1"); 183627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 183727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 183827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterxv( 183927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 184027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 184127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 184227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 184327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 184427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 184527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 184627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 184727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 184827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 185027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsBuffer ( GLuint buffer ) */ 185127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean 185227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsBuffer__I 185327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint buffer) { 185427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean _returnValue; 185527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glIsBuffer( 185627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)buffer 185727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 185827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return _returnValue; 185927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 186027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 186127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsEnabled ( GLenum cap ) */ 186227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean 186327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsEnabled__I 186427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 186527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean _returnValue; 186627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glIsEnabled( 186727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)cap 186827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 186927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return _returnValue; 187027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 187127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 187227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsTexture ( GLuint texture ) */ 187327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean 187427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsTexture__I 187527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 187627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean _returnValue; 187727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glIsTexture( 187827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)texture 187927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 188027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return _returnValue; 188127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 188227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 188327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormalPointer ( GLenum type, GLsizei stride, GLint offset ) */ 188427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 188527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormalPointer__III 188627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint type, jint stride, jint offset) { 188727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormalPointer( 188827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 188927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 189027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (const GLvoid *)offset 189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 189227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 189327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 189427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterf ( GLenum pname, GLfloat param ) */ 189527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 189627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterf__IF 189727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 189827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterf( 189927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 190027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 190127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 190227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 190327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 190427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */ 190527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 190627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterfv__I_3FI 190727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 190827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 190927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 191027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 191127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 191827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 191927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 192027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 192127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 192227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < 1"); 192327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 192427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 192727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 192827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 192927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterfv( 193027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 193127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 193227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 193327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 193427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 193527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 193727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 193827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 193927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 194027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */ 194227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 194327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterfv__ILjava_nio_FloatBuffer_2 194427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 194527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 194627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 194727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 194827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 194927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 195127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < 1"); 195227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 195327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterfv( 195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 195627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 195727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 195827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 195927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 196027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 196127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 196227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 196427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 196527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterx ( GLenum pname, GLfixed param ) */ 196627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 196727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterx__II 196827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 196927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterx( 197027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 197127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 197227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 197327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 197427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 197527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */ 197627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 197727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxv__I_3II 197827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 197927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 198027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 198127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 198227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 198327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 198427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 198527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 198627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 198727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 198827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 198927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 199027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 199127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 199227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 199327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < 1"); 199427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 199527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 199627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 199727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 199827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 199927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 200027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterxv( 200127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 200227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 200327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 200427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 200527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 200627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 200727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 200927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 201027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 201127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 201227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */ 201327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 201427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxv__ILjava_nio_IntBuffer_2 201527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 201627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 201727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 201827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 201927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 202027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 202127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 202227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < 1"); 202327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 202427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 202527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterxv( 202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 202727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 202827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 202927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 203027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 203127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 203227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 203327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 203427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 203527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 203627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer ) */ 203727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 203827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSizePointerOES__IILjava_nio_Buffer_2 203927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf) { 204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 204127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 204227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 204327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 204427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich pointer = (GLvoid *)getPointer(_env, pointer_buf, &_array, &_remaining); 204527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointSizePointerOES( 204627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 204727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 204827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer 204927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 205027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 205127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, pointer, JNI_FALSE); 205227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 205327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 205427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 205527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ 205627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 205727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexCoordPointer__IIII 205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) { 205927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexCoordPointer( 206027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 206127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 206227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 206327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (const GLvoid *)offset 206427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 206527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 206627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 206727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvi ( GLenum target, GLenum pname, GLint param ) */ 206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvi__III 207027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 207127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvi( 207227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 207327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 207427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)param 207527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 207627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 207727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 207827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */ 207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnviv__II_3II 208127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 208227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 208327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 208427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 208527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 208627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 208727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 208827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 208927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 209027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 209127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 209227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 209327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 209427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 209527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 209627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 209727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 209827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 209927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 210027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 210127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 210227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 210327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 210427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 210527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 210627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 210727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 210827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 210927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 211027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 211127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 211227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 211327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 211427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 211527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 211627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 211727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 211827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < needed"); 211927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 212027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 212127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 212227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 212327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 212427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 212527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnviv( 212627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 212727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 212827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 212927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 213027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 213127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 213227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 213427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 213527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 213627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */ 213927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 214027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnviv__IILjava_nio_IntBuffer_2 214127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 214227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 214327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 214427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 214527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 214627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining); 214727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 214827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 214927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 215027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 215127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 215227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 215327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 215427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 215527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 215627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 215727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 215827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 215927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 216027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 216127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 216227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 216327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 216427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 216527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 216627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 216727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 216927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 217027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < needed"); 217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 217227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 217327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnviv( 217427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 217527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 217627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 217727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 217827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 217927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 218027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 218127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 218227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 218327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 218427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 218527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 218627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 218727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterfv__II_3FI 218827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 218927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 219027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 219127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 219227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 219327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 219427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 219527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 219627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 219727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 219827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 219927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 220027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 220127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 220227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 220327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < 1"); 220427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 220527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 220627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 220727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 220827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 220927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 221027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterfv( 221127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 221227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 221827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 221927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 222027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 222127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 222227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 222327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 222427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 222527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterfv__IILjava_nio_FloatBuffer_2 222627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 222727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 222827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 222927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 223027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 223127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 223227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 223327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < 1"); 223427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 223527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterfv( 223727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 223827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 223927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 224027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 224127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 224227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 224327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 224427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 224527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 224627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 224727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 224827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */ 224927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 225027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteri__III 225127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 225227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameteri( 225327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 225427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 225527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)param 225627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 225727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 225827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 225927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */ 226027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 226127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteriv__II_3II 226227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 226327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 226427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 226527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 226627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 226727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 226827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 226927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 227227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 227327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 227427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 227527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 227627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 227727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < 1"); 227827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 227927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 228027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 228127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 228227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 228327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 228427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameteriv( 228527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 228627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 228727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 228827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 228927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 229027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 229127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 229227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 229327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 229427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 229527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 229627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 229727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */ 229827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 229927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteriv__IILjava_nio_IntBuffer_2 230027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 230127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 230227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 230327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 230427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 230527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining); 230627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 230727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < 1"); 230827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 230927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 231027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameteriv( 231127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 231227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 231327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 231427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 231527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 231627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 231727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 232227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 232327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 232427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxv__II_3II 232527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 232627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 232727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 232827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 232927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 233027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 233127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "params == null"); 233227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 233327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 233427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 233527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "offset < 0"); 233627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 233727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 233827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 233927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 234027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "length - offset < 1"); 234127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 234227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 234327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 234427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 234527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 234627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 234727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterxv( 234827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 234927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 235027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 235127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 235227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 235327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 235427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 235927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 236027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 236127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 236227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxv__IILjava_nio_IntBuffer_2 236327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 236427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 236527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 236627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 236727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 236827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 236927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 237027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ThrowNew(IAEClass, "remaining() < 1"); 237127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 237227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 237327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterxv( 237427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 237527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 237627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 237727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 237827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 237927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 238027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 238127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 238227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 238327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 238427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 238527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ 238627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 238727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glVertexPointer__IIII 238827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) { 238927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glVertexPointer( 239027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 239127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 239227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 239327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (const GLvoid *)offset 239427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 239527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 239627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 239727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES11"; 239827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 239927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic JNINativeMethod methods[] = { 240027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit }, 240127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II }, 240227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I }, 240327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 }, 240427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanef", "(I[FI)V", (void *) android_glClipPlanef__I_3FI }, 240527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanef__ILjava_nio_FloatBuffer_2 }, 240627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanex", "(I[II)V", (void *) android_glClipPlanex__I_3II }, 240727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanex__ILjava_nio_IntBuffer_2 }, 240827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4ub", "(BBBB)V", (void *) android_glColor4ub__BBBB }, 240927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorPointer", "(IIII)V", (void *) android_glColorPointer__IIII }, 241027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II }, 241127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 }, 241227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII }, 241327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II }, 241427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 }, 241527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI }, 241627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 }, 241727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II }, 241827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 }, 241927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanef", "(I[FI)V", (void *) android_glGetClipPlanef__I_3FI }, 242027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 }, 242127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanex", "(I[II)V", (void *) android_glGetClipPlanex__I_3II }, 242227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanex__ILjava_nio_IntBuffer_2 }, 242327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFixedv", "(I[II)V", (void *) android_glGetFixedv__I_3II }, 242427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFixedv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedv__ILjava_nio_IntBuffer_2 }, 242527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI }, 242627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 }, 242727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightfv", "(II[FI)V", (void *) android_glGetLightfv__II_3FI }, 242827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetLightfv__IILjava_nio_FloatBuffer_2 }, 242927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightxv", "(II[II)V", (void *) android_glGetLightxv__II_3II }, 243027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxv__IILjava_nio_IntBuffer_2 }, 243127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialfv", "(II[FI)V", (void *) android_glGetMaterialfv__II_3FI }, 243227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 }, 243327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialxv", "(II[II)V", (void *) android_glGetMaterialxv__II_3II }, 243427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxv__IILjava_nio_IntBuffer_2 }, 243527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvfv", "(II[FI)V", (void *) android_glGetTexEnvfv__II_3FI }, 243627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexEnvfv__IILjava_nio_FloatBuffer_2 }, 243727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnviv", "(II[II)V", (void *) android_glGetTexEnviv__II_3II }, 243827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnviv__IILjava_nio_IntBuffer_2 }, 243927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvxv", "(II[II)V", (void *) android_glGetTexEnvxv__II_3II }, 244027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 }, 244127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI }, 244227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 }, 244327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II }, 244427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 }, 244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterxv", "(II[II)V", (void *) android_glGetTexParameterxv__II_3II }, 244627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 }, 244727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I }, 244827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I }, 244927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsTexture", "(I)Z", (void *) android_glIsTexture__I }, 245027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormalPointer", "(III)V", (void *) android_glNormalPointer__III }, 245127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterf", "(IF)V", (void *) android_glPointParameterf__IF }, 245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterfv", "(I[FI)V", (void *) android_glPointParameterfv__I_3FI }, 245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glPointParameterfv__ILjava_nio_FloatBuffer_2 }, 245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterx", "(II)V", (void *) android_glPointParameterx__II }, 245527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxv", "(I[II)V", (void *) android_glPointParameterxv__I_3II }, 245627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxv__ILjava_nio_IntBuffer_2 }, 245727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSizePointerOES", "(IILjava/nio/Buffer;)V", (void *) android_glPointSizePointerOES__IILjava_nio_Buffer_2 }, 245827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexCoordPointer", "(IIII)V", (void *) android_glTexCoordPointer__IIII }, 245927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvi", "(III)V", (void *) android_glTexEnvi__III }, 246027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnviv", "(II[II)V", (void *) android_glTexEnviv__II_3II }, 246127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnviv__IILjava_nio_IntBuffer_2 }, 246227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI }, 246327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 }, 246427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III }, 246527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II }, 246627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 }, 246727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxv", "(II[II)V", (void *) android_glTexParameterxv__II_3II }, 246827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxv__IILjava_nio_IntBuffer_2 }, 246927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glVertexPointer", "(IIII)V", (void *) android_glVertexPointer__IIII }, 247027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}; 247127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 247227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES11(JNIEnv *_env) 247327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 247427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int err; 247527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods)); 247627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return err; 247727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 2478