127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* 227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** 327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** Copyright 2009, The Android Open Source Project 427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** 524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** Licensed under the Apache License, Version 2.0 (the "License"); 624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** you may not use this file except in compliance with the License. 724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** You may obtain a copy of the License at 827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** 924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** http://www.apache.org/licenses/LICENSE-2.0 1027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** 1124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** Unless required by applicable law or agreed to in writing, software 1224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** distributed under the License is distributed on an "AS IS" BASIS, 1324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** See the License for the specific language governing permissions and 1527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** limitations under the License. 1627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich*/ 1727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 1827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// This source file is automatically generated 1927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "jni.h" 2124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "JNIHelp.h" 2227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <android_runtime/AndroidRuntime.h> 2327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <utils/misc.h> 2427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <assert.h> 2627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <GLES/gl.h> 27be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#include <GLES/glext.h> 2827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 29be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich/* special calls implemented in Android's GLES wrapper used to more 30be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich * efficiently bound-check passed arrays */ 31be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichextern "C" { 32be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack PalevichGL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type, GLsizei stride, 33be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich const GLvoid *ptr, GLsizei count); 34be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich} 35be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich 3627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic int initialized = 0; 3727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 3827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass nioAccessClass; 3927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass bufferClass; 4027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBasePointerID; 4127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayID; 4227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayOffsetID; 4327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID positionID; 4427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID limitID; 4527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID elementSizeShiftID; 4627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 4727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* Cache method IDs each time the class is loaded. */ 4827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 4927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 5024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass) 5127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 5227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess"); 5327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal); 5427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 5527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass bufferClassLocal = _env->FindClass("java/nio/Buffer"); 5627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal); 5727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 5827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBasePointerID = _env->GetStaticMethodID(nioAccessClass, 5927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBasePointer", "(Ljava/nio/Buffer;)J"); 6027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, 6127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;"); 6227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass, 6327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBaseArrayOffset", "(Ljava/nio/Buffer;)I"); 6427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 6527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich positionID = _env->GetFieldID(bufferClass, "position", "I"); 6627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich limitID = _env->GetFieldID(bufferClass, "limit", "I"); 6727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich elementSizeShiftID = 6827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetFieldID(bufferClass, "_elementSizeShift", "I"); 6927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 7027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 7127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 7227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void * 7317045a16575ece34cfadb63da4791f115625df78Thomas TafertshofergetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset) 7427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 7527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint position; 7627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint limit; 7727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint elementSizeShift; 7827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jlong pointer; 7927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 8027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich position = _env->GetIntField(buffer, positionID); 8127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich limit = _env->GetIntField(buffer, limitID); 8227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 8327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *remaining = (limit - position) << elementSizeShift; 8427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich pointer = _env->CallStaticLongMethod(nioAccessClass, 8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBasePointerID, buffer); 8627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pointer != 0L) { 8727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *array = NULL; 8827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return (void *) (jint) pointer; 8927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 9024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes 9127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass, 9227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayID, buffer); 9317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer *offset = _env->CallStaticIntMethod(nioAccessClass, 9427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayOffsetID, buffer); 9524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes 9617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer return NULL; 9727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 9827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 9927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 10027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 10127f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) 10227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 10327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(array, data, 10427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich commit ? 0 : JNI_ABORT); 10527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 10627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 107be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichstatic void * 108be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) { 109be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich char* buf = (char*) _env->GetDirectBufferAddress(buffer); 110be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich if (buf) { 111be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich jint position = _env->GetIntField(buffer, positionID); 112be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 113be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich buf += position << elementSizeShift; 114be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich } else { 11524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jniThrowException(_env, "java/lang/IllegalArgumentException", 11624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes "Must use a native order direct Buffer"); 117be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich } 118be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich return (void*) buf; 119be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich} 120be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich 12127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// -------------------------------------------------------------------------- 12227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindBuffer ( GLenum target, GLuint buffer ) */ 12327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 12427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindBuffer__II 12527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint buffer) { 12627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBindBuffer( 12727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 12827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)buffer 12927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 13027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 13127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 13227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */ 13327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 13427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBufferData__IILjava_nio_Buffer_2I 13527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) { 1362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 1372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 1382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 13927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 14017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 14127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 14227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 14327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 14427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (data_buf) { 14517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 146c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich if (_remaining < size) { 1472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 1482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < size < needed"; 150c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich goto exit; 151c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich } 15227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 15337c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer if (data_buf && data == NULL) { 15417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 15517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 15617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 15727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBufferData( 15827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 15927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizeiptr)size, 16027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data, 16127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)usage 16227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 163c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich 164c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit: 16527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 16627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 16727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 1682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 1692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 1702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 17127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 17227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 17327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */ 17427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 17527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBufferSubData__IIILjava_nio_Buffer_2 17627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) { 1772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 1782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 1792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 18027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 18117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 18227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 18327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 18427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 18517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 186c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich if (_remaining < size) { 1872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 1882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 1892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < size < needed"; 190c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich goto exit; 191c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich } 19217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 19317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 19417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 19517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 19627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBufferSubData( 19727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 19827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLintptr)offset, 19927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizeiptr)size, 20027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data 20127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 202c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich 203c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit: 20427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 20527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 20627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 2072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 2082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 2092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 21027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 21127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 21227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */ 21327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 21427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanef__I_3FI 21527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) { 2162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 2172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 2182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 21927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *equation_base = (GLfloat *) 0; 22027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 22127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *equation = (GLfloat *) 0; 22227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 22327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!equation_ref) { 2242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 2252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 2262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "equation == null"; 22727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 22827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 2302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 2312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 2322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 23327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 23427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 23527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(equation_ref) - offset; 23627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation_base = (GLfloat *) 23727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); 23827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation = equation_base + offset; 23927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 24027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanef( 24127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 24227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)equation 24327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 24427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 24527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 24627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (equation_base) { 24727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, 24827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 24927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 2502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 2512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 2522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 25327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 25427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 25527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */ 25627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 25727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanef__ILjava_nio_FloatBuffer_2 25827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) { 2592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 2602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 2612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 26227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 26317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 26427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 26527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *equation = (GLfloat *) 0; 26627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 26717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset); 26817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (equation == NULL) { 26917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 27017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer equation = (GLfloat *) (_equationBase + _bufferOffset); 27117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 27227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanef( 27327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 27427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)equation 27527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 27627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 27727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, equation, JNI_FALSE); 27827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 2792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 2802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 2812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 28227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 28327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 28427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */ 28527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 28627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanex__I_3II 28727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) { 2882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 2892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 2902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 29127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *equation_base = (GLfixed *) 0; 29227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 29327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *equation = (GLfixed *) 0; 29427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 29527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!equation_ref) { 2962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 2972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 2982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "equation == null"; 29927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 30027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 30127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 3022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 3032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 3042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 30527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 30627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 30727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(equation_ref) - offset; 30827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation_base = (GLfixed *) 30927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); 31027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation = equation_base + offset; 31127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 31227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanex( 31327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 31427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)equation 31527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 31627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 31727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 31827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (equation_base) { 31927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, 32027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 32127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 3222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 3232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 3242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 32527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 32627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 32727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */ 32827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 32927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanex__ILjava_nio_IntBuffer_2 33027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) { 3312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 3322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 3332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 33427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 33517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 33627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 33727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *equation = (GLfixed *) 0; 33827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 33917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset); 34017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (equation == NULL) { 34117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 34217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer equation = (GLfixed *) (_equationBase + _bufferOffset); 34317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 34427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanex( 34527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 34627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)equation 34727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 34827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 34927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, equation, JNI_FALSE); 35027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 3512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 3522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 3532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 35427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 35527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 35627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) */ 35727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 35827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4ub__BBBB 35927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jbyte red, jbyte green, jbyte blue, jbyte alpha) { 36027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColor4ub( 36127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)red, 36227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)green, 36327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)blue, 36427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)alpha 36527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 36627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 36727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 36827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ 36927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 37027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorPointer__IIII 37127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) { 37227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColorPointer( 37327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 37427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 37527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 37627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (const GLvoid *)offset 37727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 37827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 37927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 38027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */ 38127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 38227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteBuffers__I_3II 38327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) { 3842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 3852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 3862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 38727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers_base = (GLuint *) 0; 38827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 38927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 39027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 39127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!buffers_ref) { 3922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 3932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 3942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "buffers == null"; 39527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 39627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 39727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 3982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 3992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 4002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 40127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 40227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 40327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(buffers_ref) - offset; 40427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 4052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 4062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 4072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 40827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 40927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 41027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers_base = (GLuint *) 41127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); 41227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers = buffers_base + offset; 41327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 41427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteBuffers( 41527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 41627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 41727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 41827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 41927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 42027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (buffers_base) { 42127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, 42227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 42327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 4242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 4252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 4262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 42727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 42827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 42927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */ 43027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 43127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteBuffers__ILjava_nio_IntBuffer_2 43227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) { 4332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 4342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 4352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 43627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 43717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 43827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 43927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 44027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 44117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset); 44227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 4432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 4442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 4452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 44817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (buffers == NULL) { 44917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 45017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *) (_buffersBase + _bufferOffset); 45117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 45227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteBuffers( 45327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 45427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 45527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 45627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 45727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 45827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 45927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, buffers, JNI_FALSE); 46027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 4612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 4622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 4632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 46427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 46527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 46627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */ 46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 46827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawElements__IIII 46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) { 4702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 4712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 4722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 47327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDrawElements( 47427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode, 47527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)count, 47627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (const GLvoid *)offset 47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 4792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 4802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 4812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 48227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 48327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 48427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */ 48527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 48627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenBuffers__I_3II 48727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) { 48827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 4892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 4902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 49127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers_base = (GLuint *) 0; 49227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 49327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 49427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 49527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!buffers_ref) { 49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 4972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 4982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "buffers == null"; 49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 50127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 50227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 5032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 50727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(buffers_ref) - offset; 50827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 50927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 5102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 51427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers_base = (GLuint *) 51527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); 51627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers = buffers_base + offset; 51727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 51827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenBuffers( 51927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 52027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 52127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 52227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 52327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 52427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (buffers_base) { 52527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, 52627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 52727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 5282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 5292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 5302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 53127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 53227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 53327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */ 53427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 53527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenBuffers__ILjava_nio_IntBuffer_2 53627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) { 53727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 5382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 5392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 54027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 54117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 54227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 54327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 54427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 54517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset); 54627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 54727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 5482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 55217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (buffers == NULL) { 55317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 55417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *) (_buffersBase + _bufferOffset); 55517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 55627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenBuffers( 55727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 55827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 55927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 56027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 56127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 56227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 56327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE); 56427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 5652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 5662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 5672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 56827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 56927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 57027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ 57127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 57227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBooleanv__I_3ZI 57327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) { 57427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 5752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 5762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 57727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean *params_base = (GLboolean *) 0; 57827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 57927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean *params = (GLboolean *) 0; 58027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 58127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 58227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 5832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 58527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 58627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 5892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 59127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 59227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 59427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLboolean *) 59527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 59627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 59727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 59827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetBooleanv( 59927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 60027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean *)params 60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 60227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 60327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 60427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 60527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 6082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 61127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 61227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 61327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ 61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBooleanv__ILjava_nio_IntBuffer_2 61627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 61727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 61817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 61927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean *params = (GLboolean *) 0; 62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 62217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 62317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 62417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 62517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLboolean *) (_paramsBase + _bufferOffset); 62617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetBooleanv( 62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 62927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean *)params 63027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 63127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 6322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 63827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBufferParameteriv__II_3II 63927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 64073108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _exception = 0; 6412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 6422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 64373108675c944ab4ee89631dced23566b12341b66Jack Palevich GLint *params_base = (GLint *) 0; 64473108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _remaining; 64573108675c944ab4ee89631dced23566b12341b66Jack Palevich GLint *params = (GLint *) 0; 64673108675c944ab4ee89631dced23566b12341b66Jack Palevich 64773108675c944ab4ee89631dced23566b12341b66Jack Palevich if (!params_ref) { 64873108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 6492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 65173108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 65273108675c944ab4ee89631dced23566b12341b66Jack Palevich } 65373108675c944ab4ee89631dced23566b12341b66Jack Palevich if (offset < 0) { 65473108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 6552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 65773108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 65873108675c944ab4ee89631dced23566b12341b66Jack Palevich } 65973108675c944ab4ee89631dced23566b12341b66Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 66073108675c944ab4ee89631dced23566b12341b66Jack Palevich if (_remaining < 1) { 66173108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 6622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 66473108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 66573108675c944ab4ee89631dced23566b12341b66Jack Palevich } 66673108675c944ab4ee89631dced23566b12341b66Jack Palevich params_base = (GLint *) 66773108675c944ab4ee89631dced23566b12341b66Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 66873108675c944ab4ee89631dced23566b12341b66Jack Palevich params = params_base + offset; 66973108675c944ab4ee89631dced23566b12341b66Jack Palevich 67073108675c944ab4ee89631dced23566b12341b66Jack Palevich glGetBufferParameteriv( 67173108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)target, 67273108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)pname, 67373108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLint *)params 67473108675c944ab4ee89631dced23566b12341b66Jack Palevich ); 67573108675c944ab4ee89631dced23566b12341b66Jack Palevich 67673108675c944ab4ee89631dced23566b12341b66Jack Palevichexit: 67773108675c944ab4ee89631dced23566b12341b66Jack Palevich if (params_base) { 67873108675c944ab4ee89631dced23566b12341b66Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 67973108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception ? JNI_ABORT: 0); 68073108675c944ab4ee89631dced23566b12341b66Jack Palevich } 6812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 68427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 68527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 68627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 68727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 68827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 68927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 69073108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _exception = 0; 6912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 6922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 69373108675c944ab4ee89631dced23566b12341b66Jack Palevich jarray _array = (jarray) 0; 69417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 69573108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _remaining; 69673108675c944ab4ee89631dced23566b12341b66Jack Palevich GLint *params = (GLint *) 0; 69773108675c944ab4ee89631dced23566b12341b66Jack Palevich 69817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 69973108675c944ab4ee89631dced23566b12341b66Jack Palevich if (_remaining < 1) { 70073108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 7012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 70373108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 70473108675c944ab4ee89631dced23566b12341b66Jack Palevich } 70517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 70617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 70717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 70817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 70973108675c944ab4ee89631dced23566b12341b66Jack Palevich glGetBufferParameteriv( 71073108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)target, 71173108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)pname, 71273108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLint *)params 71373108675c944ab4ee89631dced23566b12341b66Jack Palevich ); 71473108675c944ab4ee89631dced23566b12341b66Jack Palevich 71573108675c944ab4ee89631dced23566b12341b66Jack Palevichexit: 71673108675c944ab4ee89631dced23566b12341b66Jack Palevich if (_array) { 71773108675c944ab4ee89631dced23566b12341b66Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 71873108675c944ab4ee89631dced23566b12341b66Jack Palevich } 7192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 7202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 7212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 72327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 72427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */ 72527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 72627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanef__I_3FI 72727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) { 72827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 7292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 7302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 73127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *eqn_base = (GLfloat *) 0; 73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 73327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *eqn = (GLfloat *) 0; 73427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 73527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!eqn_ref) { 73627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 7372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "eqn == null"; 73927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 7432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 74527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 74627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 74727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(eqn_ref) - offset; 74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn_base = (GLfloat *) 74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); 75027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn = eqn_base + offset; 75127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 75227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanef( 75327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 75427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)eqn 75527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 75627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 75727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 75827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (eqn_base) { 75927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, 76027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 7622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 7632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 7642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 76527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 76627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 76727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */ 76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanef__ILjava_nio_FloatBuffer_2 77027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) { 77127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 77217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 77327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 77427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *eqn = (GLfloat *) 0; 77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 77617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset); 77717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (eqn == NULL) { 77817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 77917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer eqn = (GLfloat *) (_eqnBase + _bufferOffset); 78017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanef( 78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)eqn 78427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 78527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 7862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, eqn, JNI_TRUE); 78727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */ 79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 79227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanex__I_3II 79327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) { 79427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 7952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 7962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 79727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *eqn_base = (GLfixed *) 0; 79827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 79927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *eqn = (GLfixed *) 0; 80027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 80127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!eqn_ref) { 80227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 8032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "eqn == null"; 80527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 80627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 80727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 80827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 8092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 81127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 81227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 81327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(eqn_ref) - offset; 81427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn_base = (GLfixed *) 81527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); 81627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn = eqn_base + offset; 81727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 81827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanex( 81927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 82027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)eqn 82127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 82227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 82327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 82427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (eqn_base) { 82527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, 82627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 82727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 8282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 8292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 8302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 83127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 83227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 83327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */ 83427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 83527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanex__ILjava_nio_IntBuffer_2 83627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) { 83727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 83817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 84027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *eqn = (GLfixed *) 0; 84127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 84217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset); 84317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (eqn == NULL) { 84417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 84517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer eqn = (GLfixed *) (_eqnBase + _bufferOffset); 84617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 84727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanex( 84827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 84927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)eqn 85027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 85127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 8522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, eqn, JNI_TRUE); 85327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 85427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 85527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 85627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFixedv ( GLenum pname, GLfixed *params ) */ 85727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 85827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFixedv__I_3II 85927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 86027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 8612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 8622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 86327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 86427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 86527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 86627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 86727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 86827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 8692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 87127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 87227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 87327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 87427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 8752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 87727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 87827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 87927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 88027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 88127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 88227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 88327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 88427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetFixedv( 88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 88727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 88827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 88927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 89027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 89127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 89227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 89327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 8942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 8952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 8962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 89727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 89827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 89927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFixedv ( GLenum pname, GLfixed *params ) */ 90027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 90127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFixedv__ILjava_nio_IntBuffer_2 90227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 90327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 90417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 90527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 90627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 90727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 90817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 90917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 91017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 91117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 91217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 91327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetFixedv( 91427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 91527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 91627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 91727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 9182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 91927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 92027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 92127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 92227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */ 92327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 92427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFloatv__I_3FI 92527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 92627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 9272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 9282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 92927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 93027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 93127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 93227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 93327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 9352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 93727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 93827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 93927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 94027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 9412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 94327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 94427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 94527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 94627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 94727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 94827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 94927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 95027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetFloatv( 95127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 95227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 95327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 95427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 95527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 95627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 95727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 95827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 95927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 9602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 9612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 9622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 96327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 96427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 96527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */ 96627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 96727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFloatv__ILjava_nio_FloatBuffer_2 96827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 96927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 97017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 97127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 97227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 97327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 97417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 97517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 97617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 97717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 97817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 97927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetFloatv( 98027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 98127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 98227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 98327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 9842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 98627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 98727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 98827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */ 98927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 99027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightfv__II_3FI 99127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) { 99227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 9932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 9942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 99527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 99627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 99727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 99827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 99927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 100027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 10012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 100327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 100427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 100527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 100627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 10072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 100927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 101027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 101127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 101227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 101327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 101427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 101527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 101627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 101727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 101827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 101927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 102127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 102227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 102327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 102427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 102527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 102627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 102727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 102827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 102927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 103027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 103127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 103227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 103327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 103427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 103527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 103627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 103727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 103827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 103927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 104027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 104127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 104227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 104327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 104427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 104527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 104627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 104727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 104827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 104927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 105027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 105127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 105227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 105327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 105427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 105527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 10562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 105827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 105927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 106027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 106127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 106227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 106327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 106427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightfv( 106527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 106627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 106727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 106827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 106927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 107027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 107127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 107227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 107327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 107427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 10752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 10762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 10772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 107827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 107927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */ 108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightfv__IILjava_nio_FloatBuffer_2 108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 10852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 10862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 108727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 108817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 108927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 109027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 109127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 109217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 109327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 109427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 109527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 109627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 109727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 109827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 109927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 110027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 110127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 110227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 110327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 110427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 110727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 110827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 110927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 111027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 111127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 111227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 111327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 111427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 111527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 111627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 111827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 112127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 112227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 112327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 112427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 112527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 112627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 112727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 112827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 112927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 113027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 113127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 113227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 113327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 113427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 113527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 113627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 113927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 114027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 114117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 114217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 114317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 114417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 114527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightfv( 114627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 114727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 114827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 114927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 115027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 115127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 115227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 115327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 115427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 11552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 11562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 11572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 115827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 115927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 116027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */ 116127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 116227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightxv__II_3II 116327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) { 116427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 11652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 11662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 116727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 117027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 117127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 117227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 117527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 117627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 117727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 117827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 118127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 118227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 118327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 118427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 118527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 118627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 118727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 118827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 118927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 119027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 119127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 119227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 119327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 119427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 119527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 119627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 119727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 119827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 119927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 120027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 120127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 120227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 120527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 120627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 120727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 120827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 120927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 121027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 121127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 121227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 121327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 121427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 121527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 121627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 121727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 121827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 121927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 122027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 122127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 122227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 122327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 122427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 122527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 122627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 122727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 12282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "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 glGetLightxv( 123727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 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 } 12472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 12482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 12492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 125027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 125227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */ 125327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 125427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightxv__IILjava_nio_IntBuffer_2 125527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 125627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 12572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 12582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 125927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 126017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 126127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 126227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 126327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 126417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 126527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 126627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 126727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 126827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 127027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 127127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 127227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 127327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 127427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 127527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 127627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 127727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 127827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 127927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 128027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 128127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 128227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 128327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 128427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 128527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 128627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 128727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 128827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 128927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 129027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 129127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 129227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 129327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 129427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 129527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 129627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 129727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 129827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 129927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 130027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 130127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 130227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 130327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 130427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 130527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 130627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 130727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 130827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 13092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 131127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 131227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 131317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 131417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 131517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 131617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 131727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightxv( 131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 131927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 132027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 132127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 132227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 132327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 132427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 132527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 132627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 13272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 13282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 13292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 133027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 133127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 133227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */ 133327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 133427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialfv__II_3FI 133527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) { 133627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 13372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 13382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 133927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 134027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 134127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 134327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 134427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 13452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 134727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 134827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 134927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 135027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 13512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 135327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 135427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 135527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 135627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 135727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 135827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 135927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 136027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 136127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 136227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 136327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 136427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 136527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 136627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 136727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 136827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 136927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 137027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 137127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 137227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 137327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 137427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 137527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 137627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 137727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 137827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 137927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 138027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 138127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 138327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 138427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 138527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 13862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 138827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 138927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 139027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 139127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 139227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 139327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 139427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialfv( 139527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 139627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 139727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 139827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 139927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 140027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 140127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 140227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 140327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 140427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 14052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 14062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 14072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 140827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 140927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 141027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */ 141127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 141227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialfv__IILjava_nio_FloatBuffer_2 141327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 141427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 14152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 14162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 141727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 141817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 141927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 142027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 142127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 142217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 142327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 142427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 142527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 142627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 142727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 142827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 142927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 143027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 143127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 143227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 143327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 143427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 143527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 143627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 143727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 143827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 143927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 144027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 144127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 144227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 144327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 144427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 144527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 144627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 144727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 144827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 145027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 145127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 145227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 14532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 145527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 145627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 145717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 145817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 145917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 146017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 146127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialfv( 146227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 146327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 146427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 146527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 146627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 146727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 146827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 146927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 147027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 14712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 14722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 14732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */ 147727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 147827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialxv__II_3II 147927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) { 148027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 14812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 14822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 148327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 148427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 148527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 148627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 148727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 148827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 14892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 149127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 149227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 149327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 149427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 14952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 149727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 149827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 149927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 150027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 150127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 150227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 150327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 150427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 150527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 150627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 150727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 150827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 150927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 151027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 151127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 151227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 151327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 151427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 151527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 151627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 151727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 151827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 151927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 152027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 152127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 152227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 152327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 152427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 152527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 152627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 152727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 152827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 152927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 15302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 15312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 153227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 153327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 153427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 153527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 153627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 153727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 153827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialxv( 153927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 154027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 154227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 154327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 154427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 154527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 154627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 154727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 154827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 15492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 15502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 15512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 155227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 155327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 155427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */ 155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 155627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialxv__IILjava_nio_IntBuffer_2 155727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 155827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 15592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 15602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 156127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 156217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 156327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 156427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 156527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 156617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 156727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 156827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 156927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 157027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 157127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 157227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 157327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 157427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 157527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 157627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 157727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 157827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 157927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 158027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 158127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 158227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 158327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 158427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 158527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 158627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 158727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 158827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 158927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 159027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 159127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 159227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 159327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 159427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 159527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 15972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 15982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 159927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 160027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 160117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 160217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 160317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 160417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 160527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialxv( 160627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 160727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 160827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 160927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 161027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 161127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 161227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 161327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 161427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 16152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 16162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 16172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 161827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 161927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 162027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params ) */ 162127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 162227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvfv__II_3FI 162327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jfloatArray params_ref, jint offset) { 162427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 16252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 16262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 162727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 162827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 162927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 16332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 163527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 163627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 163727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 163827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 16392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 164127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 164227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 164327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 164427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 164527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 164627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 164727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 164827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 164927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 165027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 165127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 165227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 165327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 165427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 165527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 165627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 165727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 165827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 165927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 166027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 166127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 166227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 166327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 166427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 166527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 166627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 166727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 16682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 167027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 167127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 167227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 167327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 167427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 167627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvfv( 167727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 167827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 167927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 168027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 168127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 168227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 168327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 168427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 168527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 168627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 16872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 16882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 16892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 169027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 169127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 169227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params ) */ 169327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 169427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvfv__IILjava_nio_FloatBuffer_2 169527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { 169627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 16972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 16982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 170017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 170127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 170227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 170327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 170417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 170527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 170827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 170927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 171027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 171127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 171227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 171327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 171427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 171527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 171627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 171827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 171927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 172027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 172127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 172227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 172327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 172427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 172527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 172627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 172727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 172827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 17292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 173127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 173227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 173317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 173417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 173517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 173617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 173727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvfv( 173827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 173927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 174027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 174127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 174227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 174327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 174427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 174527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 174627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 17472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 17482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 17492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 175027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */ 175327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 175427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnviv__II_3II 175527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) { 175627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 17572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 17582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 175927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 176027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 176127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 176227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 176327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 176427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 17652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 176727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 176827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 17712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 177427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 177527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 177627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 177727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 177827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 177927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 178227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 178327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 178427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 178527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 178627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 178727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 178827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 178927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 179027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 179127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 179227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 179327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 179427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 179527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 179627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 179727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 179827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 179927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 18002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 180227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 180327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 180427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 180527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 180627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 180727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 180827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnviv( 180927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 181027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 181127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 181227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 181327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 181427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 181527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 181627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 181727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 181827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 182227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 182327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 182427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */ 182527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnviv__IILjava_nio_IntBuffer_2 182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { 182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 18292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 18302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 183127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 183217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 183327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 183427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 183527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 183617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 183727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 183827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 183927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 184027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 184127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 184227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 184327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 184427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 184527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 184627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 184727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 184827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 185027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 185127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 185227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 185327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 185427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 185527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 185627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 185727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 185827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 185927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 186027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 18612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 186327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 186427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 186517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 186617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 186717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 186817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 186927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnviv( 187027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 187127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 187227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 187327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 187427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 187527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 187627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 187727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 187827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 188227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 188327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 188427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */ 188527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 188627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvxv__II_3II 188727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) { 188827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 18892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 18902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 189227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 189327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 189427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 189527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 189627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 18972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 189927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 190027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 190127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 190227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 19032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 190527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 190627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 190727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 190827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 190927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 191027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 191127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 191827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 191927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 192027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 192127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 192227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 192327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 192427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 192727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 192827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 192927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 193027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 193127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 19322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 193427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 193527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 193727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 193827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 193927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 194027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvxv( 194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 194227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 194327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 194427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 194527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 194627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 194727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 194827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 194927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 19512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 19522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 19532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 195627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */ 195727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 195827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvxv__IILjava_nio_IntBuffer_2 195927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { 196027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 19612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 19622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 196417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 196527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 196627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 196727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 196817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 196927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 197027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 197127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 197227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 197327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 197427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 197527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 197627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 197727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 197827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 197927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 198027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 198127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 198227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 198327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 198427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 198527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 198627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 198727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 198827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 198927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 199027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 199127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 199227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 19932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 199527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 199627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 199717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 199817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 199917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 200017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 200127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvxv( 200227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 200327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 200427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 200527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 200627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 200727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 200927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 201027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 20122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 20132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 201427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 201527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 201627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */ 201727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 201827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterfv__II_3FI 201927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 202027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 20212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 20222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 202327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 202427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 202527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 202727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 202827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 20292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 203127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 203227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 203327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 203427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 20352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 203727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 203827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 203927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 204127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 20422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 204427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 204527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 204627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 204727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 204827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 204927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 205027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterfv( 205127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 205227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 205327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 205427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 205527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 205627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 205727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 205927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 206027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 20622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 20632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 206427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 206527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 206627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */ 206727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 207027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 20712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 20722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 207327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 207417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 207527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 207627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 207727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 207817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 20812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 208327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 208427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 208517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 208617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 208717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 208817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 208927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterfv( 209027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 209127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 209227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 209327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 209427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 209527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 209627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 209727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 209827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 21002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 21012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 210227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 210327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 210427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 210527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 210627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameteriv__II_3II 210727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 210827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 21092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 21102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 211127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 211227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 211327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 211427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 211527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 211627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 21172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 211927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 212027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 212127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 212227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 21232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 212527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 212627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 212727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 212827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 212927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 21302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 213227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 213427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 213527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 213627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameteriv( 213927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 214027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 214127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 214227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 214327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 214427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 214527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 214627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 214727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 214827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 21492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 21502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 21512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 215227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 215327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 215427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 215527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 215627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameteriv__IILjava_nio_IntBuffer_2 215727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 215827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 21592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 21602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 216127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 216217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 216327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 216427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 216527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 216617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 216727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 21692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 217227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 217317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 217417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 217517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 217617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 217727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameteriv( 217827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 217927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 218027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 218127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 218227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 218327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 218427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 218527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 218627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 21872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 21882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 21892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 219027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 219127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 219227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */ 219327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 219427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterxv__II_3II 219527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 219627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 21972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 21982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 219927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 220027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 220127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 220227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 220327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 220427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 22052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 220727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 220827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 220927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 221027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 22112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 22182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 222027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 222127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 222227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 222327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 222427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 222527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 222627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterxv( 222727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 222827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 222927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 223027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 223127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 223227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 223327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 223427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 223527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 224027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 224127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 224227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */ 224327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 224427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterxv__IILjava_nio_IntBuffer_2 224527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 224627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 22472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 22482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 224927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 225017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 225127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 225227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 225327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 225417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 225527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 225627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 22572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 225927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 226027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 226117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 226217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 226317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 226417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 226527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterxv( 226627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 226727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 226827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 226927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 227227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 227327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 227427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 227827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 227927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 228027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsBuffer ( GLuint buffer ) */ 228127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean 228227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsBuffer__I 228327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint buffer) { 228427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean _returnValue; 228527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glIsBuffer( 228627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)buffer 228727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 228827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return _returnValue; 228927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 229027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 229127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsEnabled ( GLenum cap ) */ 229227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean 229327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsEnabled__I 229427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 229527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean _returnValue; 229627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glIsEnabled( 229727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)cap 229827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 229927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return _returnValue; 230027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 230127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 230227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsTexture ( GLuint texture ) */ 230327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean 230427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsTexture__I 230527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 230627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean _returnValue; 230727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glIsTexture( 230827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)texture 230927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 231027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return _returnValue; 231127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 231227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 231327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormalPointer ( GLenum type, GLsizei stride, GLint offset ) */ 231427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 231527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormalPointer__III 231627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint type, jint stride, jint offset) { 231727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormalPointer( 231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (const GLvoid *)offset 232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 232227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 232327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 232427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterf ( GLenum pname, GLfloat param ) */ 232527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 232627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterf__IF 232727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 232827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterf( 232927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 233027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 233127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 233227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 233327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 233427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */ 233527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 233627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterfv__I_3FI 233727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 23382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 23392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 23402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 234127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 234227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 234327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 234427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 234527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 23462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 23472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 234927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 235027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 235127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 23522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 23532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 23592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 23602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 236227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 236327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 236427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 236527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 236627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 236727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 236827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterfv( 236927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 237027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 237127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 237227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 237327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 237427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 237527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 237627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 237727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 23782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 23792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 23802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 238127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 238227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 238327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */ 238427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 238527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterfv__ILjava_nio_FloatBuffer_2 238627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 23872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 23882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 23892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 239027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 239117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 239227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 239327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 239427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 239517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 239627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 23972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 23982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 240027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 240127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 240217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 240317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 240417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 240517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 240627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterfv( 240727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 240827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 240927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 241027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 241127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 241227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 241327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 241427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 24152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 24162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 24172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 241827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 241927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 242027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterx ( GLenum pname, GLfixed param ) */ 242127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 242227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterx__II 242327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 242427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterx( 242527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 242627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 242727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 242827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 242927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 243027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */ 243127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 243227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxv__I_3II 243327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 24342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 24352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 24362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 243727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 243827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 243927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 244027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 244127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 24422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 244627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 244727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 24482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 245127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 24552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 245827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 245927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 246027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 246127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 246227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 246327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 246427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterxv( 246527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 246627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 246727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 246827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 246927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 247027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 247127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 247227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 247327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 24742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 24752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 24762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 247727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 247827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 247927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */ 248027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 248127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxv__ILjava_nio_IntBuffer_2 248227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 24832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 24842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 24852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 248627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 248717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 248827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 248927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 249027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 249117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 249227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 24932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 249627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 249727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 249817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 249917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 250017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 250117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 250227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterxv( 250327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 250427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 250527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 250627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 250727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 250827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 250927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 251027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 25112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 25122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 25132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 251427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 251527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 251627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer ) */ 251727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 2518be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I 2519be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) { 252027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 252117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 252227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 252327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 252427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2525be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich if (pointer_buf) { 2526be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 2527be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich if ( ! pointer ) { 2528be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich return; 2529be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich } 2530be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich } 2531be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich glPointSizePointerOESBounds( 253227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 253327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 2534be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich (GLvoid *)pointer, 2535be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich (GLsizei)remaining 253627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 253727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 253827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 253927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ 254027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 254127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexCoordPointer__IIII 254227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) { 254327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexCoordPointer( 254427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 254527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 254627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 254727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (const GLvoid *)offset 254827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 254927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 255027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 255127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvi ( GLenum target, GLenum pname, GLint param ) */ 255227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 255327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvi__III 255427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 255527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvi( 255627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 255727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 255827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)param 255927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 256027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 256127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 256227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */ 256327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 256427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnviv__II_3II 256527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 25662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 25672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 25682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 256927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 257027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 257127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 257227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 257327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 25742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 25752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 25762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 257727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 257827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 257927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 25802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 25812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 25822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 258327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 258427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 258527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 258627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 258727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 258827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 258927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 259027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 259127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 259227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 259327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 259427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 259527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 259627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 259727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 259827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 259927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 260027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 260127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 260227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 260327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 260427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 260527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 260627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 260727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 260827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 26092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 26102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 26112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 261227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 261327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 261427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 261527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 261627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 261727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 261827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnviv( 261927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 262027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 262127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 262227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 262327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 262427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 262527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 262627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 262727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 262827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 26292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 26302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 26312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 263227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 263327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 263427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */ 263527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 263627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnviv__IILjava_nio_IntBuffer_2 263727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 26382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 26392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 26402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 264127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 264217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 264327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 264427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 264527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 264617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 264727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 264827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 264927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 265027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 265127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 265227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 265327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 265427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 265527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 265627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 265727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 265827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 265927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 266027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 266127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 266227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 266327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 266427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 266527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 266627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 266727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 266827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 266927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 26702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 26712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 26722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 267327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 267427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 267517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 267617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 267717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 267817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 267927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnviv( 268027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 268127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 268227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 268327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 268427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 268527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 268627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 268727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 268827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 26892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 26902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 26912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 269227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 269327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 269427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 269527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 269627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterfv__II_3FI 269727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 26982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 26992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 27002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 270127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 270227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 270327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 270427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 270527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 27062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 270927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 271027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 271127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 27122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 271527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 271627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 271727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 271827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 27192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 272227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 272327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 272427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 272527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 272627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 272727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 272827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterfv( 272927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 273027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 273127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 273227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 273327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 273427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 273527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 273627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 273727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 273827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 27392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 27402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 27412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 274227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 274327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 274427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 274527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 274627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterfv__IILjava_nio_FloatBuffer_2 274727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 27482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 27492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 27502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 275127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 275217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 275327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 275427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 275527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 275617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 275727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 27582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 276127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 276227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 276317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 276417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 276517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 276617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 276727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterfv( 276827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 276927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 277027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 277127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 277227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 277327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 277427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 277527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 277627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 27772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 27782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 27792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 278027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 278127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 278227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */ 278327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 278427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteri__III 278527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 278627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameteri( 278727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 278827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 278927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)param 279027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 279127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 279227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 279327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */ 279427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 279527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteriv__II_3II 279627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 27972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 27982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 27992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 280027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 280127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 280227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 280327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 280427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 28052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 280827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 280927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 281027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 28112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 281427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 281527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 281627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 281727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 28182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 282127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 282227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 282327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 282427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 282527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 282627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 282727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameteriv( 282827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 282927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 283027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 283127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 283227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 283327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 283427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 283527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 283627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 283727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 28382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 28392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 28402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 284127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 284227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 284327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */ 284427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 284527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteriv__IILjava_nio_IntBuffer_2 284627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 28472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 28482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 28492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 285027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 285117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 285227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 285327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 285427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 285517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 285627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 28572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 286027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 286127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 286217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 286317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 286417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 286517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 286627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameteriv( 286727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 286827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 286927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 287027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 287127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 287227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 287327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 287427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 287527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 28762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 28772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 28782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 287927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 288027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 288127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 288227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 288327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxv__II_3II 288427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 28852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 28862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 28872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 288827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 288927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 289027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 289127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 289227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 28932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 289627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 289727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 289827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 28992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 29002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 29012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 290227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 290327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 290427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 290527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 29062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 29072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 29082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 290927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 291027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 291127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 291227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 291327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 291427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 291527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterxv( 291627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 291727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 291827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 291927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 292027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 292127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 292227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 292327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 292427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 292527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 29262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 29272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 29282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 292927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 293027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 293127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 293227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 293327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxv__IILjava_nio_IntBuffer_2 293427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 29352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 29362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 29372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 293827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 293917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 294027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 294127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 294227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 294317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 294427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 29452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 29462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 29472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 294827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 294927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 295017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 295117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 295217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 295317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 295427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterxv( 295527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 295627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 295727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 295827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 295927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 296027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 296127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 296227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 296327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 29642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 29652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 29662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 296727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 296827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 296927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ 297027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 297127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glVertexPointer__IIII 297227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) { 297327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glVertexPointer( 297427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 297527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 297627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 297727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (const GLvoid *)offset 297827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 297927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 298027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 298127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES11"; 298227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 298327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic JNINativeMethod methods[] = { 298427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit }, 298527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II }, 298627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I }, 298727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 }, 298827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanef", "(I[FI)V", (void *) android_glClipPlanef__I_3FI }, 298927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanef__ILjava_nio_FloatBuffer_2 }, 299027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanex", "(I[II)V", (void *) android_glClipPlanex__I_3II }, 299127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanex__ILjava_nio_IntBuffer_2 }, 299227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4ub", "(BBBB)V", (void *) android_glColor4ub__BBBB }, 299327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorPointer", "(IIII)V", (void *) android_glColorPointer__IIII }, 299427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II }, 299527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 }, 299627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII }, 299727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II }, 299827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 }, 299927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI }, 300027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 }, 300127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II }, 300227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 }, 300327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanef", "(I[FI)V", (void *) android_glGetClipPlanef__I_3FI }, 300427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 }, 300527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanex", "(I[II)V", (void *) android_glGetClipPlanex__I_3II }, 300627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanex__ILjava_nio_IntBuffer_2 }, 300727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFixedv", "(I[II)V", (void *) android_glGetFixedv__I_3II }, 300827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFixedv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedv__ILjava_nio_IntBuffer_2 }, 300927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI }, 301027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 }, 301127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightfv", "(II[FI)V", (void *) android_glGetLightfv__II_3FI }, 301227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetLightfv__IILjava_nio_FloatBuffer_2 }, 301327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightxv", "(II[II)V", (void *) android_glGetLightxv__II_3II }, 301427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxv__IILjava_nio_IntBuffer_2 }, 301527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialfv", "(II[FI)V", (void *) android_glGetMaterialfv__II_3FI }, 301627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 }, 301727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialxv", "(II[II)V", (void *) android_glGetMaterialxv__II_3II }, 301827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxv__IILjava_nio_IntBuffer_2 }, 301927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvfv", "(II[FI)V", (void *) android_glGetTexEnvfv__II_3FI }, 302027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexEnvfv__IILjava_nio_FloatBuffer_2 }, 302127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnviv", "(II[II)V", (void *) android_glGetTexEnviv__II_3II }, 302227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnviv__IILjava_nio_IntBuffer_2 }, 302327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvxv", "(II[II)V", (void *) android_glGetTexEnvxv__II_3II }, 302427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 }, 302527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI }, 302627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 }, 302727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II }, 302827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 }, 302927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterxv", "(II[II)V", (void *) android_glGetTexParameterxv__II_3II }, 303027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 }, 303127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I }, 303227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I }, 303327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsTexture", "(I)Z", (void *) android_glIsTexture__I }, 303427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormalPointer", "(III)V", (void *) android_glNormalPointer__III }, 303527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterf", "(IF)V", (void *) android_glPointParameterf__IF }, 303627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterfv", "(I[FI)V", (void *) android_glPointParameterfv__I_3FI }, 303727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glPointParameterfv__ILjava_nio_FloatBuffer_2 }, 303827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterx", "(II)V", (void *) android_glPointParameterx__II }, 303927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxv", "(I[II)V", (void *) android_glPointParameterxv__I_3II }, 304027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxv__ILjava_nio_IntBuffer_2 }, 3041be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glPointSizePointerOESBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I }, 304227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexCoordPointer", "(IIII)V", (void *) android_glTexCoordPointer__IIII }, 304327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvi", "(III)V", (void *) android_glTexEnvi__III }, 304427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnviv", "(II[II)V", (void *) android_glTexEnviv__II_3II }, 304527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnviv__IILjava_nio_IntBuffer_2 }, 304627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI }, 304727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 }, 304827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III }, 304927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II }, 305027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 }, 305127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxv", "(II[II)V", (void *) android_glTexParameterxv__II_3II }, 305227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxv__IILjava_nio_IntBuffer_2 }, 305327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glVertexPointer", "(IIII)V", (void *) android_glVertexPointer__IIII }, 305427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}; 305527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 305627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES11(JNIEnv *_env) 305727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 305827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int err; 305927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods)); 306027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return err; 306127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 3062