android_opengl_GLES10.cpp revision 17045a16575ece34cfadb63da4791f115625df78
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 298331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian/* special calls implemented in Android's GLES wrapper used to more 308331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian * efficiently bound-check passed arrays */ 318331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopianextern "C" { 328331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride, 338331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian const GLvoid *ptr, GLsizei count); 348331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride, 358331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian const GLvoid *pointer, GLsizei count); 368331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type, 378331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian GLsizei stride, const GLvoid *pointer, GLsizei count); 388331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type, 398331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian GLsizei stride, const GLvoid *pointer, GLsizei count); 408331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian} 418331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian 4227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic int initialized = 0; 4327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 4427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass nioAccessClass; 4527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass bufferClass; 4627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBasePointerID; 4727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayID; 4827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayOffsetID; 4927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID positionID; 5027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID limitID; 5127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID elementSizeShiftID; 5227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 5327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* Cache method IDs each time the class is loaded. */ 5427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 5527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 5624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass) 5727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 5827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess"); 5927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal); 6027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 6127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass bufferClassLocal = _env->FindClass("java/nio/Buffer"); 6227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal); 6327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 6427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBasePointerID = _env->GetStaticMethodID(nioAccessClass, 6527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBasePointer", "(Ljava/nio/Buffer;)J"); 6627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, 6727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;"); 6827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass, 6927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBaseArrayOffset", "(Ljava/nio/Buffer;)I"); 7027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 7127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich positionID = _env->GetFieldID(bufferClass, "position", "I"); 7227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich limitID = _env->GetFieldID(bufferClass, "limit", "I"); 7327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich elementSizeShiftID = 7427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetFieldID(bufferClass, "_elementSizeShift", "I"); 7527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 7627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 7727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void * 7817045a16575ece34cfadb63da4791f115625df78Thomas TafertshofergetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset) 7927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 8027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint position; 8127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint limit; 8227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint elementSizeShift; 8327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jlong pointer; 8427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich position = _env->GetIntField(buffer, positionID); 8627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich limit = _env->GetIntField(buffer, limitID); 8727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 8827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *remaining = (limit - position) << elementSizeShift; 8927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich pointer = _env->CallStaticLongMethod(nioAccessClass, 9027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBasePointerID, buffer); 9127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pointer != 0L) { 9227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *array = NULL; 9327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return (void *) (jint) pointer; 9427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 9524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes 9627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass, 9727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayID, buffer); 9817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer *offset = _env->CallStaticIntMethod(nioAccessClass, 9927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayOffsetID, buffer); 10024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes 10117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer return NULL; 10227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 10327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 10427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 10527f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) 10627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 10727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(array, data, 10827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich commit ? 0 : JNI_ABORT); 10927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 11027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 11116e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevichstatic void * 11216e7972f0d986eebf846ea8feb50f4435a9c6970Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) { 11316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich char* buf = (char*) _env->GetDirectBufferAddress(buffer); 11416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich if (buf) { 11516e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich jint position = _env->GetIntField(buffer, positionID); 11616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 11716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich buf += position << elementSizeShift; 11816e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich } else { 11924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jniThrowException(_env, "java/lang/IllegalArgumentException", 12024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes "Must use a native order direct Buffer"); 12116e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich } 12216e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich return (void*) buf; 12316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich} 12416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich 125be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevichstatic int 126be509c9c7de5929d014dfe6d45e71cc8454ede0fJack PalevichgetNumCompressedTextureFormats() { 127be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich int numCompressedTextureFormats = 0; 128be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats); 129be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich return numCompressedTextureFormats; 130be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich} 131be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich 13227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// -------------------------------------------------------------------------- 13327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glActiveTexture ( GLenum texture ) */ 13427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 13527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glActiveTexture__I 13627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 13727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glActiveTexture( 13827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)texture 13927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 14027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 14127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 14227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFunc ( GLenum func, GLclampf ref ) */ 14327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 14427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFunc__IF 14527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func, jfloat ref) { 14627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glAlphaFunc( 14727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func, 14827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)ref 14927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 15027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 15127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 15227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */ 15327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 15427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFuncx__II 15527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func, jint ref) { 15627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glAlphaFuncx( 15727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func, 15827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)ref 15927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 16027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 16127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 16227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindTexture ( GLenum target, GLuint texture ) */ 16327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 16427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindTexture__II 16527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint texture) { 16627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBindTexture( 16727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 16827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)texture 16927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 17027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 17127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 17227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */ 17327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 17427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBlendFunc__II 17527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) { 17627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBlendFunc( 17727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)sfactor, 17827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)dfactor 17927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 18027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 18127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 18227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClear ( GLbitfield mask ) */ 18327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 18427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClear__I 18527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mask) { 18627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClear( 18727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLbitfield)mask 18827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 18927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 19027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 19127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */ 19227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 19327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColor__FFFF 19427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 19527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearColor( 19627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)red, 19727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)green, 19827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)blue, 19927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)alpha 20027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 20127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 20227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 20327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */ 20427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 20527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColorx__IIII 20627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) { 20727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearColorx( 20827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)red, 20927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)green, 21027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)blue, 21127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)alpha 21227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 21327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 21427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 21527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthf ( GLclampf depth ) */ 21627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 21727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthf__F 21827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat depth) { 21927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearDepthf( 22027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)depth 22127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 22227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 22327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 22427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthx ( GLclampx depth ) */ 22527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 22627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthx__I 22727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint depth) { 22827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearDepthx( 22927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)depth 23027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 23127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 23227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 23327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearStencil ( GLint s ) */ 23427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 23527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearStencil__I 23627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint s) { 23727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearStencil( 23827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)s 23927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 24027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 24127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 24227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClientActiveTexture ( GLenum texture ) */ 24327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 24427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClientActiveTexture__I 24527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 24627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClientActiveTexture( 24727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)texture 24827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 24927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 25027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 25127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */ 25227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 25327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4f__FFFF 25427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 25527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColor4f( 25627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)red, 25727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)green, 25827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)blue, 25927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)alpha 26027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 26127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 26227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 26327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */ 26427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 26527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4x__IIII 26627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) { 26727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColor4x( 26827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)red, 26927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)green, 27027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)blue, 27127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)alpha 27227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 27327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 27427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 27527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */ 27627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 27727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorMask__ZZZZ 27827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) { 27927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColorMask( 28027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)red, 28127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)green, 28227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)blue, 28327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)alpha 28427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 28527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 28627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 28727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 28827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 28927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorPointerBounds__IIILjava_nio_Buffer_2I 29027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 29127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 29217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 29327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 29427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 29527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 296e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 29716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 298e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 299e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 300e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 301e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 30227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColorPointerBounds( 30327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 30427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 30527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 30627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 30727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 30827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 30927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 31027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 31127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */ 31227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 31327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 31427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) { 31527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 31617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 31727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 31827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 31927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 32017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 32117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 32217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 32317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 32417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 32527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCompressedTexImage2D( 32627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 32727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 32827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)internalformat, 32927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 33027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 33127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)border, 33227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)imageSize, 33327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data 33427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 33527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 33627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 33727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 33827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 33927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 34027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */ 34127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 34227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 34327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) { 34427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 34517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 34627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 34727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 34827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 34917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 35017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 35117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 35217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 35317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 35427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCompressedTexSubImage2D( 35527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 35627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 35727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)xoffset, 35827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)yoffset, 35927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 36027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 36127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 36227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)imageSize, 36327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data 36427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 36527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 36627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 36727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 36827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 36927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 37027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */ 37127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 37227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexImage2D__IIIIIIII 37327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) { 37427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCopyTexImage2D( 37527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 37627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 37727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)internalformat, 37827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 37927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 38027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 38127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 38227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)border 38327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 38427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 38527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 38627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */ 38727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 38827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexSubImage2D__IIIIIIII 38927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) { 39027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCopyTexSubImage2D( 39127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 39227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 39327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)xoffset, 39427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)yoffset, 39527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 39627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 39727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 39827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height 39927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 40027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 40127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 40227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCullFace ( GLenum mode ) */ 40327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 40427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCullFace__I 40527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 40627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCullFace( 40727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 40827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 40927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 41027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 41127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 41227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 41327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__I_3II 41427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 4152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 4162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 4172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 41827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures_base = (GLuint *) 0; 41927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 42027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 42127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 42227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!textures_ref) { 4232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 4242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 4252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "textures == null"; 42627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 42727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 42827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 4292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 4302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 4312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 43227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 43327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 43427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(textures_ref) - offset; 43527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 4362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 4372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 4382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 43927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 44027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 44127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures_base = (GLuint *) 44227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 44327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures = textures_base + offset; 44427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 44527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteTextures( 44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 44827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 44927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 45027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 45127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (textures_base) { 45227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 45327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 45427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 4552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 4562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 4572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 45827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 45927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 46027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 46127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 46227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__ILjava_nio_IntBuffer_2 46327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 4642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 4652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 4662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 46817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 47027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 47127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 47217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); 47327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 4742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 4752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 4762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 47917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (textures == NULL) { 48017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 48117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *) (_texturesBase + _bufferOffset); 48217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 48327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteTextures( 48427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 48527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 48627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 48727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 48827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 48927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 49027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, textures, JNI_FALSE); 49127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 4922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 4932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 4942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 49527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 49727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthFunc ( GLenum func ) */ 49827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthFunc__I 50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func) { 50127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthFunc( 50227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func 50327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 50427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthMask ( GLboolean flag ) */ 50727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 50827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthMask__Z 50927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jboolean flag) { 51027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthMask( 51127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)flag 51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 51427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 51527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */ 51627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 51727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangef__FF 51827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) { 51927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthRangef( 52027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)zNear, 52127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)zFar 52227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 52327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 52427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 52527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */ 52627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 52727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangex__II 52827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint zNear, jint zFar) { 52927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthRangex( 53027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)zNear, 53127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)zFar 53227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 53327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 53427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 53527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisable ( GLenum cap ) */ 53627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 53727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisable__I 53827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 53927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDisable( 54027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)cap 54127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 54227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 54327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 54427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisableClientState ( GLenum array ) */ 54527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 54627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisableClientState__I 54727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint array) { 54827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDisableClientState( 54927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)array 55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 55227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 55327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */ 55427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 55527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawArrays__III 55627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) { 55727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDrawArrays( 55827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode, 55927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)first, 56027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)count 56127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 56227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 56327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 56427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */ 56527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 56627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawElements__IIILjava_nio_Buffer_2 56727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) { 5682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 5692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 5702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 57127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 57217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 57327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 57427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *indices = (GLvoid *) 0; 57527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 57617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset); 57727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < count) { 5782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 5792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/ArrayIndexOutOfBoundsException"; 5802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < count < needed"; 58127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 58227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 58317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (indices == NULL) { 58417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 58517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer indices = (GLvoid *) (_indicesBase + _bufferOffset); 58617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDrawElements( 58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode, 58927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)count, 59027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 59127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)indices 59227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 59427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 59527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 59627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, indices, JNI_FALSE); 59727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 5982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 5992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 60227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 60327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnable ( GLenum cap ) */ 60427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 60527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnable__I 60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glEnable( 60827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)cap 60927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 61027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 61127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 61227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnableClientState ( GLenum array ) */ 61327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnableClientState__I 61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint array) { 61627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glEnableClientState( 61727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)array 61827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 61927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFinish ( void ) */ 62227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 62327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFinish__ 62427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 62527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFinish(); 62627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFlush ( void ) */ 62927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 63027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFlush__ 63127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 63227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFlush(); 63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogf ( GLenum pname, GLfloat param ) */ 63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogf__IF 63827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 63927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogf( 64027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 64127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 64227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 64327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 64427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 64527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */ 64627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 64727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__I_3FI 64827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 6492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 6502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 6512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 65227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 65327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 65427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 65527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 65627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 6572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 66027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 66127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 66227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 6632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 66627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 66727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 66827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 66927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 67027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 67127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE) 67227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_MODE: 67327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE) 67427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY) 67527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_DENSITY: 67627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY) 67727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START) 67827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_START: 67927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START) 68027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END) 68127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_END: 68227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END) 68327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 68427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 68527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 68627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 68727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 68827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 68927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 69027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 69127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 69227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 69327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 69427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 6952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 69827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 69927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 70027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 70127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 70227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 70327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 70427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogfv( 70527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 70627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 70727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 70827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 70927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 71027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 71127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 71227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 71327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 7142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 7152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 7162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 71727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 71827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 71927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */ 72027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 72127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__ILjava_nio_FloatBuffer_2 72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 7232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 7242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 7252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 72627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 72717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 72827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 72927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 73027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 73117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 73327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 73427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE) 73527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_MODE: 73627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE) 73727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY) 73827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_DENSITY: 73927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY) 74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START) 74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_START: 74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START) 74327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END) 74427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_END: 74527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END) 74627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 74727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 75027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 75127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 75227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 75327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 75427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 75527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 75627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 75727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 7582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 7592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 76227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 76317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 76417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 76517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 76617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 76727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogfv( 76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 77027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 77127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 77227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 77327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 77427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 7762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 7772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 7782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 77927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 78027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogx ( GLenum pname, GLfixed param ) */ 78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogx__II 78427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 78527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogx( 78627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 78727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */ 79227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 79327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__I_3II 79427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 7952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 7962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 7972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 79827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 79927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 80027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 80127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 80227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 8032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 80627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 80727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 80827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 8092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 81227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 81327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 81427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 81527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 81627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 81727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE) 81827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_MODE: 81927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE) 82027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY) 82127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_DENSITY: 82227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY) 82327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START) 82427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_START: 82527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START) 82627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END) 82727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_END: 82827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END) 82927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 83027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 83127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 83227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 83327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 83427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 83527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 83627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 83727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 83827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 84027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 8412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 84427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 84527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 84627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 84727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 84827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 84927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 85027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogxv( 85127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 85227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 85327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 85427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 85527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 85627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 85727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 85827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 85927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 8602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 8612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 8622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 86327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 86427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 86527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */ 86627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 86727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__ILjava_nio_IntBuffer_2 86827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 8692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 8702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 8712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 87227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 87317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 87427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 87527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 87627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 87717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 87827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 87927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 88027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE) 88127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_MODE: 88227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE) 88327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY) 88427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_DENSITY: 88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY) 88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START) 88727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_START: 88827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START) 88927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END) 89027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_END: 89127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END) 89227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 89327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 89427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 89527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 89627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 89727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 89827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 89927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 90027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 90127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 90227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 90327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 9042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 9052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 90727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 90827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 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 glFogxv( 91427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 91527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 91627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 91727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 91827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 91927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 92027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 92127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 9222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 9232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 9242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 92527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 92627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 92727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrontFace ( GLenum mode ) */ 92827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 92927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrontFace__I 93027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 93127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFrontFace( 93227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 93327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 93527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 93627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */ 93727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 93827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumf__FFFFFF 93927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) { 94027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFrustumf( 94127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)left, 94227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)right, 94327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)bottom, 94427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)top, 94527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zNear, 94627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zFar 94727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 94827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 94927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 95027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */ 95127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 95227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumx__IIIIII 95327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) { 95427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFrustumx( 95527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)left, 95627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)right, 95727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)bottom, 95827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)top, 95927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zNear, 96027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zFar 96127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 96227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 96327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 96427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */ 96527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 96627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__I_3II 96727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 96827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 9692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 9702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 97127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures_base = (GLuint *) 0; 97227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 97327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 97427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 97527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!textures_ref) { 97627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 9772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "textures == null"; 97927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 98027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 98127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 98227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 9832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 98627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 98727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(textures_ref) - offset; 98827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 98927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 9902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 99227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 99327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 99427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures_base = (GLuint *) 99527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 99627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures = textures_base + offset; 99727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 99827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenTextures( 99927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 100027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 100127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 100227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 100327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 100427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (textures_base) { 100527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 100627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 100727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 10082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 10092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 10102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 101127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 101227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 101327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */ 101427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 101527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__ILjava_nio_IntBuffer_2 101627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 101727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 10182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 10192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 102117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 102227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 102327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 102427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 102517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); 102627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 102727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 10282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 103027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 103127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 103217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (textures == NULL) { 103317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 103417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *) (_texturesBase + _bufferOffset); 103517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 103627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenTextures( 103727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 103827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 103927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 104027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 104127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 104227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 104327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE); 104427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 10452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 10462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 10472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 104827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 104927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 105027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLenum glGetError ( void ) */ 105127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jint 105227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetError__ 105327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 105427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLenum _returnValue; 105527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glGetError(); 105627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return _returnValue; 105727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 105827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 105927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */ 106027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 106127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__I_3II 106227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 106327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 10642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 10652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 106627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 106727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 106827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 106927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 107027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 107127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 10722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 107427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 107527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 107627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 107727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 10782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 108527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_BITS) 108627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_ALPHA_BITS: 108727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_BITS) 108827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_FUNC) 108927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_ALPHA_TEST_FUNC: 109027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_FUNC) 109127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_REF) 109227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_ALPHA_TEST_REF: 109327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_REF) 109427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLEND_DST) 109527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_BLEND_DST: 109627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLEND_DST) 109727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLUE_BITS) 109827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_BLUE_BITS: 109927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLUE_BITS) 110027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_BUFFER_BINDING) 110127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_ARRAY_BUFFER_BINDING: 110227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING) 110327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_SIZE) 110427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_ARRAY_SIZE: 110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_SIZE) 110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_STRIDE) 110727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_ARRAY_STRIDE: 110827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_STRIDE) 110927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_TYPE) 111027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_ARRAY_TYPE: 111127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_TYPE) 111227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CULL_FACE) 111327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CULL_FACE: 111427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CULL_FACE) 111527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_BITS) 111627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DEPTH_BITS: 111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_BITS) 111827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_CLEAR_VALUE) 111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DEPTH_CLEAR_VALUE: 112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_CLEAR_VALUE) 112127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_FUNC) 112227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DEPTH_FUNC: 112327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_FUNC) 112427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_WRITEMASK) 112527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DEPTH_WRITEMASK: 112627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_WRITEMASK) 112727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY) 112827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_DENSITY: 112927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY) 113027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END) 113127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_END: 113227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END) 113327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE) 113427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_MODE: 113527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE) 113627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START) 113727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_START: 113827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START) 113927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FRONT_FACE) 114027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FRONT_FACE: 114127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FRONT_FACE) 114227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_GREEN_BITS) 114327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_GREEN_BITS: 114427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_GREEN_BITS) 114527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 114627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: 114727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 114827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 114927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: 115027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 1151be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL) 1152be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich case GL_LIGHT_MODEL_COLOR_CONTROL: 1153be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL) 1154be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 1155be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich case GL_LIGHT_MODEL_LOCAL_VIEWER: 1156be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 115727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE) 115827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_TWO_SIDE: 115927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 116027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_SMOOTH_HINT) 116127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINE_SMOOTH_HINT: 116227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_SMOOTH_HINT) 116327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_WIDTH) 116427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINE_WIDTH: 116527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_WIDTH) 116627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LOGIC_OP_MODE) 116727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LOGIC_OP_MODE: 116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LOGIC_OP_MODE) 116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 117027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: 117127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 117227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 117327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MATRIX_INDEX_ARRAY_SIZE_OES: 117427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 117527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 117627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MATRIX_INDEX_ARRAY_STRIDE_OES: 117727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 117827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 117927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MATRIX_INDEX_ARRAY_TYPE_OES: 118027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 118127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_MODE) 118227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MATRIX_MODE: 118327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_MODE) 118427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_CLIP_PLANES) 118527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_CLIP_PLANES: 118627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_CLIP_PLANES) 118727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_INDICES) 118827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_ELEMENTS_INDICES: 118927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_INDICES) 119027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_VERTICES) 119127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_ELEMENTS_VERTICES: 119227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_VERTICES) 119327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_LIGHTS) 119427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_LIGHTS: 119527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_LIGHTS) 119627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_MODELVIEW_STACK_DEPTH) 119727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_MODELVIEW_STACK_DEPTH: 119827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH) 119927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PALETTE_MATRICES_OES) 120027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_PALETTE_MATRICES_OES: 120127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PALETTE_MATRICES_OES) 120227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PROJECTION_STACK_DEPTH) 120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_PROJECTION_STACK_DEPTH: 120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH) 120527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_SIZE) 120627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_TEXTURE_SIZE: 120727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_SIZE) 120827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_STACK_DEPTH) 120927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_TEXTURE_STACK_DEPTH: 121027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH) 121127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_UNITS) 121227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_TEXTURE_UNITS: 121327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_UNITS) 121427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VERTEX_UNITS_OES) 121527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_VERTEX_UNITS_OES: 121627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VERTEX_UNITS_OES) 121727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_STACK_DEPTH) 121827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MODELVIEW_STACK_DEPTH: 121927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_STACK_DEPTH) 122027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 122127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_NORMAL_ARRAY_BUFFER_BINDING: 122227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 122327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_STRIDE) 122427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_NORMAL_ARRAY_STRIDE: 122527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_STRIDE) 122627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_TYPE) 122727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_NORMAL_ARRAY_TYPE: 122827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_TYPE) 122927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 123027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_NUM_COMPRESSED_TEXTURE_FORMATS: 123127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 123227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PACK_ALIGNMENT) 123327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_PACK_ALIGNMENT: 123427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PACK_ALIGNMENT) 123527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PERSPECTIVE_CORRECTION_HINT) 123627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_PERSPECTIVE_CORRECTION_HINT: 123727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT) 123827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE) 123927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POINT_SIZE: 124027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE) 124127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 124227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: 124327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 124427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 124527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POINT_SIZE_ARRAY_STRIDE_OES: 124627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 124727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 124827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POINT_SIZE_ARRAY_TYPE_OES: 124927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 125027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SMOOTH_HINT) 125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POINT_SMOOTH_HINT: 125227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SMOOTH_HINT) 125327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_FACTOR) 125427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POLYGON_OFFSET_FACTOR: 125527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_FACTOR) 125627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_UNITS) 125727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POLYGON_OFFSET_UNITS: 125827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_UNITS) 125927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_STACK_DEPTH) 126027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_PROJECTION_STACK_DEPTH: 126127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_STACK_DEPTH) 126227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_RED_BITS) 126327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_RED_BITS: 126427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_RED_BITS) 126527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHADE_MODEL) 126627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHADE_MODEL: 126727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHADE_MODEL) 126827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_BITS) 126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_BITS: 127027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_BITS) 127127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_CLEAR_VALUE) 127227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_CLEAR_VALUE: 127327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_CLEAR_VALUE) 127427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FAIL) 127527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_FAIL: 127627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FAIL) 127727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FUNC) 127827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_FUNC: 127927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FUNC) 128027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_FAIL) 128127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_PASS_DEPTH_FAIL: 128227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL) 128327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_PASS) 128427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_PASS_DEPTH_PASS: 128527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_PASS) 128627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_REF) 128727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_REF: 128827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_REF) 128927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_VALUE_MASK) 129027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_VALUE_MASK: 129127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_VALUE_MASK) 129227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_WRITEMASK) 129327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_WRITEMASK: 129427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_WRITEMASK) 129527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SUBPIXEL_BITS) 129627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SUBPIXEL_BITS: 129727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SUBPIXEL_BITS) 129827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_BINDING_2D) 129927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_BINDING_2D: 130027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_BINDING_2D) 130127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 130227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: 130327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 130427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_SIZE) 130527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_COORD_ARRAY_SIZE: 130627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE) 130727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 130827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_COORD_ARRAY_STRIDE: 130927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 131027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_TYPE) 131127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_COORD_ARRAY_TYPE: 131227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE) 131327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_STACK_DEPTH) 131427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_STACK_DEPTH: 131527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_STACK_DEPTH) 131627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_UNPACK_ALIGNMENT) 131727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_UNPACK_ALIGNMENT: 131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_UNPACK_ALIGNMENT) 131927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 132027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_VERTEX_ARRAY_BUFFER_BINDING: 132127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 132227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_SIZE) 132327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_VERTEX_ARRAY_SIZE: 132427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_SIZE) 132527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_STRIDE) 132627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_VERTEX_ARRAY_STRIDE: 132727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_STRIDE) 132827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_TYPE) 132927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_VERTEX_ARRAY_TYPE: 133027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_TYPE) 133127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 133227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: 133327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 133427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_SIZE_OES) 133527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_WEIGHT_ARRAY_SIZE_OES: 133627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES) 133727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_STRIDE_OES) 133827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_WEIGHT_ARRAY_STRIDE_OES: 133927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES) 134027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_TYPE_OES) 134127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_WEIGHT_ARRAY_TYPE_OES: 134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES) 134327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 134427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 134527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_POINT_SIZE_RANGE) 134627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_ALIASED_POINT_SIZE_RANGE: 134727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_POINT_SIZE_RANGE) 134827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_LINE_WIDTH_RANGE) 134927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_ALIASED_LINE_WIDTH_RANGE: 135027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE) 135127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_RANGE) 135227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DEPTH_RANGE: 135327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_RANGE) 135427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VIEWPORT_DIMS) 135527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_VIEWPORT_DIMS: 135627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VIEWPORT_DIMS) 135727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_LINE_WIDTH_RANGE) 135827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SMOOTH_LINE_WIDTH_RANGE: 135927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE) 136027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_POINT_SIZE_RANGE) 136127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SMOOTH_POINT_SIZE_RANGE: 136227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE) 136327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 2; 136427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 136527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_CLEAR_VALUE) 136627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_CLEAR_VALUE: 136727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_CLEAR_VALUE) 136827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_WRITEMASK) 136927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_WRITEMASK: 137027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_WRITEMASK) 1371be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_FOG_COLOR) 1372be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich case GL_FOG_COLOR: 1373be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_FOG_COLOR) 1374be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 1375be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich case GL_LIGHT_MODEL_AMBIENT: 1376be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 137727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SCISSOR_BOX) 137827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SCISSOR_BOX: 137927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SCISSOR_BOX) 138027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VIEWPORT) 138127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_VIEWPORT: 138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VIEWPORT) 138327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 138427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 138527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX) 138627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MODELVIEW_MATRIX: 138727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX) 138827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 138927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: 139027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 139127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX) 139227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_PROJECTION_MATRIX: 139327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX) 139427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 139527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: 139627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 139727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX) 139827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_MATRIX: 139927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX) 140027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 140127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: 140227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 140327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 16; 140427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 140527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMPRESSED_TEXTURE_FORMATS) 140627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMPRESSED_TEXTURE_FORMATS: 140727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS) 1408be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich _needed = getNumCompressedTextureFormats(); 140927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 141027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 141127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 141227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 141327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 141427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 141527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 14162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 141827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 141927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 142027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 142127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 142227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 142327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 142427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetIntegerv( 142527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 142627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 142727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 142827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 142927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 143027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 143127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 143227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 143327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 14342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 14352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 14362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 143727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 143827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 143927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */ 144027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 144127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__ILjava_nio_IntBuffer_2 144227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 144327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 14442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 14452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 144627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 144717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 144827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 145027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 145117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 145227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 145327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 145427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_BITS) 145527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_ALPHA_BITS: 145627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_BITS) 145727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_FUNC) 145827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_ALPHA_TEST_FUNC: 145927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_FUNC) 146027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_REF) 146127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_ALPHA_TEST_REF: 146227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_REF) 146327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLEND_DST) 146427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_BLEND_DST: 146527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLEND_DST) 146627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLUE_BITS) 146727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_BLUE_BITS: 146827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLUE_BITS) 146927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_BUFFER_BINDING) 147027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_ARRAY_BUFFER_BINDING: 147127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING) 147227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_SIZE) 147327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_ARRAY_SIZE: 147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_SIZE) 147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_STRIDE) 147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_ARRAY_STRIDE: 147727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_STRIDE) 147827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_TYPE) 147927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_ARRAY_TYPE: 148027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_TYPE) 148127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CULL_FACE) 148227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CULL_FACE: 148327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CULL_FACE) 148427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_BITS) 148527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DEPTH_BITS: 148627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_BITS) 148727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_CLEAR_VALUE) 148827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DEPTH_CLEAR_VALUE: 148927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_CLEAR_VALUE) 149027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_FUNC) 149127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DEPTH_FUNC: 149227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_FUNC) 149327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_WRITEMASK) 149427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DEPTH_WRITEMASK: 149527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_WRITEMASK) 149627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY) 149727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_DENSITY: 149827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY) 149927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END) 150027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_END: 150127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END) 150227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE) 150327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_MODE: 150427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE) 150527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START) 150627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_START: 150727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START) 150827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FRONT_FACE) 150927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FRONT_FACE: 151027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FRONT_FACE) 151127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_GREEN_BITS) 151227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_GREEN_BITS: 151327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_GREEN_BITS) 151427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 151527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: 151627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 151727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 151827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: 151927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 1520be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL) 1521be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich case GL_LIGHT_MODEL_COLOR_CONTROL: 1522be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL) 1523be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 1524be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich case GL_LIGHT_MODEL_LOCAL_VIEWER: 1525be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 152627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE) 152727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_TWO_SIDE: 152827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 152927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_SMOOTH_HINT) 153027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINE_SMOOTH_HINT: 153127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_SMOOTH_HINT) 153227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_WIDTH) 153327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINE_WIDTH: 153427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_WIDTH) 153527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LOGIC_OP_MODE) 153627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LOGIC_OP_MODE: 153727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LOGIC_OP_MODE) 153827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 153927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: 154027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 154227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MATRIX_INDEX_ARRAY_SIZE_OES: 154327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 154427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 154527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MATRIX_INDEX_ARRAY_STRIDE_OES: 154627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 154727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 154827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MATRIX_INDEX_ARRAY_TYPE_OES: 154927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 155027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_MODE) 155127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MATRIX_MODE: 155227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_MODE) 155327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_CLIP_PLANES) 155427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_CLIP_PLANES: 155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_CLIP_PLANES) 155627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_INDICES) 155727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_ELEMENTS_INDICES: 155827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_INDICES) 155927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_VERTICES) 156027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_ELEMENTS_VERTICES: 156127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_VERTICES) 156227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_LIGHTS) 156327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_LIGHTS: 156427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_LIGHTS) 156527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_MODELVIEW_STACK_DEPTH) 156627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_MODELVIEW_STACK_DEPTH: 156727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH) 156827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PALETTE_MATRICES_OES) 156927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_PALETTE_MATRICES_OES: 157027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PALETTE_MATRICES_OES) 157127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PROJECTION_STACK_DEPTH) 157227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_PROJECTION_STACK_DEPTH: 157327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH) 157427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_SIZE) 157527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_TEXTURE_SIZE: 157627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_SIZE) 157727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_STACK_DEPTH) 157827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_TEXTURE_STACK_DEPTH: 157927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH) 158027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_UNITS) 158127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_TEXTURE_UNITS: 158227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_UNITS) 158327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VERTEX_UNITS_OES) 158427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_VERTEX_UNITS_OES: 158527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VERTEX_UNITS_OES) 158627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_STACK_DEPTH) 158727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MODELVIEW_STACK_DEPTH: 158827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_STACK_DEPTH) 158927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 159027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_NORMAL_ARRAY_BUFFER_BINDING: 159127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 159227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_STRIDE) 159327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_NORMAL_ARRAY_STRIDE: 159427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_STRIDE) 159527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_TYPE) 159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_NORMAL_ARRAY_TYPE: 159727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_TYPE) 159827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 159927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_NUM_COMPRESSED_TEXTURE_FORMATS: 160027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 160127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PACK_ALIGNMENT) 160227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_PACK_ALIGNMENT: 160327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PACK_ALIGNMENT) 160427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PERSPECTIVE_CORRECTION_HINT) 160527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_PERSPECTIVE_CORRECTION_HINT: 160627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT) 160727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE) 160827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POINT_SIZE: 160927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE) 161027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 161127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: 161227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 161327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 161427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POINT_SIZE_ARRAY_STRIDE_OES: 161527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 161627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 161727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POINT_SIZE_ARRAY_TYPE_OES: 161827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 161927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SMOOTH_HINT) 162027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POINT_SMOOTH_HINT: 162127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SMOOTH_HINT) 162227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_FACTOR) 162327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POLYGON_OFFSET_FACTOR: 162427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_FACTOR) 162527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_UNITS) 162627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_POLYGON_OFFSET_UNITS: 162727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_UNITS) 162827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_STACK_DEPTH) 162927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_PROJECTION_STACK_DEPTH: 163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_STACK_DEPTH) 163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_RED_BITS) 163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_RED_BITS: 163327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_RED_BITS) 163427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHADE_MODEL) 163527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHADE_MODEL: 163627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHADE_MODEL) 163727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_BITS) 163827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_BITS: 163927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_BITS) 164027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_CLEAR_VALUE) 164127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_CLEAR_VALUE: 164227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_CLEAR_VALUE) 164327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FAIL) 164427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_FAIL: 164527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FAIL) 164627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FUNC) 164727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_FUNC: 164827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FUNC) 164927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_FAIL) 165027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_PASS_DEPTH_FAIL: 165127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL) 165227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_PASS) 165327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_PASS_DEPTH_PASS: 165427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_PASS) 165527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_REF) 165627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_REF: 165727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_REF) 165827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_VALUE_MASK) 165927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_VALUE_MASK: 166027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_VALUE_MASK) 166127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_WRITEMASK) 166227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_STENCIL_WRITEMASK: 166327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_WRITEMASK) 166427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SUBPIXEL_BITS) 166527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SUBPIXEL_BITS: 166627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SUBPIXEL_BITS) 166727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_BINDING_2D) 166827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_BINDING_2D: 166927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_BINDING_2D) 167027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 167127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: 167227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 167327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_SIZE) 167427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_COORD_ARRAY_SIZE: 167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE) 167627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 167727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_COORD_ARRAY_STRIDE: 167827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 167927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_TYPE) 168027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_COORD_ARRAY_TYPE: 168127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE) 168227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_STACK_DEPTH) 168327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_STACK_DEPTH: 168427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_STACK_DEPTH) 168527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_UNPACK_ALIGNMENT) 168627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_UNPACK_ALIGNMENT: 168727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_UNPACK_ALIGNMENT) 168827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 168927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_VERTEX_ARRAY_BUFFER_BINDING: 169027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 169127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_SIZE) 169227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_VERTEX_ARRAY_SIZE: 169327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_SIZE) 169427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_STRIDE) 169527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_VERTEX_ARRAY_STRIDE: 169627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_STRIDE) 169727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_TYPE) 169827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_VERTEX_ARRAY_TYPE: 169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_TYPE) 170027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 170127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: 170227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 170327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_SIZE_OES) 170427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_WEIGHT_ARRAY_SIZE_OES: 170527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES) 170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_STRIDE_OES) 170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_WEIGHT_ARRAY_STRIDE_OES: 170827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES) 170927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_TYPE_OES) 171027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_WEIGHT_ARRAY_TYPE_OES: 171127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES) 171227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 171327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 171427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_POINT_SIZE_RANGE) 171527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_ALIASED_POINT_SIZE_RANGE: 171627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_POINT_SIZE_RANGE) 171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_LINE_WIDTH_RANGE) 171827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_ALIASED_LINE_WIDTH_RANGE: 171927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE) 172027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_RANGE) 172127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DEPTH_RANGE: 172227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_RANGE) 172327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VIEWPORT_DIMS) 172427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MAX_VIEWPORT_DIMS: 172527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VIEWPORT_DIMS) 172627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_LINE_WIDTH_RANGE) 172727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SMOOTH_LINE_WIDTH_RANGE: 172827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE) 172927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_POINT_SIZE_RANGE) 173027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SMOOTH_POINT_SIZE_RANGE: 173127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE) 173227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 2; 173327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 173427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_CLEAR_VALUE) 173527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_CLEAR_VALUE: 173627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_CLEAR_VALUE) 173727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_WRITEMASK) 173827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COLOR_WRITEMASK: 173927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_WRITEMASK) 1740be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_FOG_COLOR) 1741be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich case GL_FOG_COLOR: 1742be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_FOG_COLOR) 1743be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 1744be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich case GL_LIGHT_MODEL_AMBIENT: 1745be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 174627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SCISSOR_BOX) 174727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SCISSOR_BOX: 174827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SCISSOR_BOX) 174927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VIEWPORT) 175027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_VIEWPORT: 175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VIEWPORT) 175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 175327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 175427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX) 175527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MODELVIEW_MATRIX: 175627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX) 175727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 175827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: 175927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 176027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX) 176127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_PROJECTION_MATRIX: 176227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX) 176327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 176427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: 176527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 176627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX) 176727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_MATRIX: 176827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX) 176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: 177127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 177227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 16; 177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 177427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMPRESSED_TEXTURE_FORMATS) 177527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMPRESSED_TEXTURE_FORMATS: 177627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS) 1777be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich _needed = getNumCompressedTextureFormats(); 177827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 177927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 178227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 178327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 178427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 17852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 178727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 178827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 178917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 179017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 179117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 179217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 179327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetIntegerv( 179427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 179527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 179627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 179727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 179827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 179927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 180027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 180127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 180527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 180627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 180727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* const GLubyte * glGetString ( GLenum name ) */ 180824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetString(JNIEnv* _env, jobject, jint name) { 180924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes const char* chars = (const char*) glGetString((GLenum) name); 181024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes return _env->NewStringUTF(chars); 181127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 181227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glHint ( GLenum target, GLenum mode ) */ 181327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 181427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glHint__II 181527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint mode) { 181627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glHint( 181727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 181827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 181927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 182027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 182127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 182227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelf ( GLenum pname, GLfloat param ) */ 182327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 182427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelf__IF 182527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelf( 182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 182927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 183027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 183127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 183227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */ 183327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 183427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__I_3FI 183527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 18362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 18372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 18382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 183927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 184027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 184127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 184227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 184327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 18442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 18452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 184727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 184827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 18502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 18512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 185327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 185427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 185527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 185627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 185727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 185827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE) 185927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_TWO_SIDE: 186027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 186127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 186227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 186327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 186427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 186527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 186627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 186727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 186827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 186927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 187027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 187127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 187227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 18732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 18742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 187627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 187727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 187827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 187927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 188027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 188127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 188227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelfv( 188327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 188427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 188527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 188627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 188727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 188827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 188927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 189027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 189527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 189627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 189727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */ 189827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 189927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__ILjava_nio_FloatBuffer_2 190027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 19012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 19022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 19032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 190427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 190517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 190627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 190727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 190827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 190917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 191027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 191127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE) 191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_TWO_SIDE: 191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 191827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 191927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 192027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 192127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 192227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 192327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 192427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 19272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 19282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 193027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 193127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 193217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 193317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 193417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 193517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelfv( 193727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 193827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 193927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 194027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 194227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 194327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 194427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 19452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 19462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 19472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 194827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 194927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelx ( GLenum pname, GLfixed param ) */ 195127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 195227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelx__II 195327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelx( 195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 195627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 195727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 195827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 195927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 196027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */ 196127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 196227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__I_3II 196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 19642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 19652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 19662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 196727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 196827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 196927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 197027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 197127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 19722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 19732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 197527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 197627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 197727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 19782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 19792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 198127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 198227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 198327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 198427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 198527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 198627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE) 198727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_TWO_SIDE: 198827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 198927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 199027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 199127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 199227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 199327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 199427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 199527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 199627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 199727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 199827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 199927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 200027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 20012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 20022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 200427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 200527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 200627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 200727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 200927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 201027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelxv( 201127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 201227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 201327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 201427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 201527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 201627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 201727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 201827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 201927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 20212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 20222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 202327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 202427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 202527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */ 202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 202727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__ILjava_nio_IntBuffer_2 202827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 20292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 20302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 20312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 203227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 203317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 203427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 203527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 203627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 203717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 203827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 203927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE) 204127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_TWO_SIDE: 204227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 204327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 204427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 204527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 204627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 204727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 204827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 204927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 205027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 205127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 205227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 205327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 205427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 20552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 20562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 205927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 206017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 206117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 206217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 206317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 206427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelxv( 206527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 206627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 206727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 207027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 207127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 207227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 20742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 20752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 207627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 207727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 207827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */ 207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightf__IIF 208127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) { 208227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightf( 208327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 208427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 208527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 208627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 208727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 208827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 208927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */ 209027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 209127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__II_3FI 209227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) { 20932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 20942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 20952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 209627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 209727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 209827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 209927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 210027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 21012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 21022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 210427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 210527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 210627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 21072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 21082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 211027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 211127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 211227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 211327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 211427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 211527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 211627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 211727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 211827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 211927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 212027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 212127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 212227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 212327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 212427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 212527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 212627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 212727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 212827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 212927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 213027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 213127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 213227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 213427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 213527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 213627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 213927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 214027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 214127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 214227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 214327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 214427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 214527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 214627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 214727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 214827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 214927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 215027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 215127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 215227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 215327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 215427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 215527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 21562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 21572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 215927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 216027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 216127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 216227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 216327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 216427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 216527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightfv( 216627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 216727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 216927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 217027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 217227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 217327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 217427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 217527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 21762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 21772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 21782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 217927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 218027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 218127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */ 218227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 218327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__IILjava_nio_FloatBuffer_2 218427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 21852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 21862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 21872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 218827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 218917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 219027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 219127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 219227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 219317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 219427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 219527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 219627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 219727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 219827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 219927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 220027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 220127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 220227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 220327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 220427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 220527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 220627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 220727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 220827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 220927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 221027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 221127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 221227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 221827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 221927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 222027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 222127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 222227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 222327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 222427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 222527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 222627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 222727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 222827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 222927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 223027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 223127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 223227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 223327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 223427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 223527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 22372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 22382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 224027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 224127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 224217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 224317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 224417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 224517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 224627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightfv( 224727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 224827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 224927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 225027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 225127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 225227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 225327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 225427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 225527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 225927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 226027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 226127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */ 226227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 226327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightx__III 226427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) { 226527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightx( 226627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 226727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 226827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 226927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 227227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */ 227327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 227427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__II_3II 227527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) { 22762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 22772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 22782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 227927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 228027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 228127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 228227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 228327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 22842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 22852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 228727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 228827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 228927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 22902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 22912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 229327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 229427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 229527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 229627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 229727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 229827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 229927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 230027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 230127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 230227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 230327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 230427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 230527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 230627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 230727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 230827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 230927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 231027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 231127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 231227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 231327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 231427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 231527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 231627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 231727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 232227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 232327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 232427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 232527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 232627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 232727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 232827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 232927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 233027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 233127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 233227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 233327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 233427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 233527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 233627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 233727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 233827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 23392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 23402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 234227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 234327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 234427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 234527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 234627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 234727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 234827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightxv( 234927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 235027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 235127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 235227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 235327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 235427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 23592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 23602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 23612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 236227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 236327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 236427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */ 236527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 236627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__IILjava_nio_IntBuffer_2 236727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 23682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 23692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 23702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 237127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 237217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 237327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 237427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 237527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 237617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 237727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 237827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 237927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT) 238027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_EXPONENT: 238127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT) 238227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF) 238327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_CUTOFF: 238427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF) 238527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION) 238627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_CONSTANT_ATTENUATION: 238727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION) 238827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION) 238927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LINEAR_ATTENUATION: 239027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION) 239127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION) 239227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_QUADRATIC_ATTENUATION: 239327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION) 239427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 239527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 239627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 239727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 239827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 239927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 240027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 240127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 240227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 240327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 240427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 240527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 240627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 240727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 240827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 240927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 241027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 241127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 241227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 241327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 241427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 241527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 241627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 241727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 241827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 241927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 24202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 242327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 242427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 242517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 242617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 242717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 242817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 242927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightxv( 243027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 243127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 243227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 243327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 243427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 243527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 243627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 243727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 243827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 24392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 24402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 24412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 244227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 244327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 244427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidth ( GLfloat width ) */ 244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 244627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidth__F 244727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat width) { 244827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLineWidth( 244927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)width 245027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 245127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidthx ( GLfixed width ) */ 245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 245527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidthx__I 245627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint width) { 245727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLineWidthx( 245827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)width 245927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 246027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 246127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 246227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadIdentity ( void ) */ 246327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 246427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadIdentity__ 246527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 246627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadIdentity(); 246727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 246827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 246927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */ 247027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 247127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf___3FI 247227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) { 24732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 24742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 24752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 247627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m_base = (GLfloat *) 0; 247727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 247827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 247927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 248027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 24812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 248427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 248527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 248627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 24872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 249027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 249127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 249227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 249327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfloat *) 249427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 249527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 249627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 249727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixf( 249827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 249927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 250027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 250127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 250227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 250327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 250427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 250527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 25062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 25072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 25082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 250927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 251027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 251127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */ 251227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 251327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf__Ljava_nio_FloatBuffer_2 251427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 251527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 251617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 251727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 251827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 251927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 252017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 252117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 252217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 252317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *) (_mBase + _bufferOffset); 252417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 252527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixf( 252627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 252727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 252827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 252927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 253027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 253127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 253227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 253327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */ 253427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 253527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx___3II 253627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) { 25372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 25382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 25392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 254027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m_base = (GLfixed *) 0; 254127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 254227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 254327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 254427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 25452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 25462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 25472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 254827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 254927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 255027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 25512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 25522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 25532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 255427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 255527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 255627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 255727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfixed *) 255827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 255927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 256027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 256127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixx( 256227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 256327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 256427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 256527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 256627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 256727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 256827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 256927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 25702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 25712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 25722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 257327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 257427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 257527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */ 257627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 257727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx__Ljava_nio_IntBuffer_2 257827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 257927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 258017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 258127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 258227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 258327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 258417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 258517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 258617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 258717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *) (_mBase + _bufferOffset); 258817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 258927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixx( 259027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 259127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 259227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 259327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 259427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 259527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 259627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 259727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLogicOp ( GLenum opcode ) */ 259827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 259927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLogicOp__I 260027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint opcode) { 260127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLogicOp( 260227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)opcode 260327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 260427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 260527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 260627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */ 260727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 260827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialf__IIF 260927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) { 261027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialf( 261127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 261227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 261327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 261427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 261527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 261627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 261727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */ 261827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 261927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__II_3FI 262027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) { 26212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 26222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 26232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 262427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 262527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 262627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 262727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 262827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 26292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 26302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 26312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 263227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 263327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 263427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 26352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 26362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 26372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 263827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 263927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 264027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 264127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 264227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 264327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 264427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 264527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 264627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 264727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 264827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 264927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 265027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 265127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 265227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 265327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 265427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 265527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 265627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 265727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 265827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 265927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 266027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 266127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 266227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 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 = "length - offset < needed"; 267327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 267427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 267527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 267627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 267727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 267827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 267927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialfv( 268027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 268127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 268227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 268327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 268427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 268527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 268627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 268727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 268827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 268927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 26902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 26912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 26922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 269327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 269427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 269527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */ 269627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 269727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__IILjava_nio_FloatBuffer_2 269827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 26992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 27002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 27012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 270227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 270317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 270427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 270527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 270627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 270717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 270827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 270927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 271027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 271127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 271227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 271327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 271427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 271527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 271627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 271727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 271827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 271927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 272027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 272127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 272227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 272327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 272427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 272527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 272627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 272727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 272827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 272927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 273027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 273127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 273227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 273327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 273427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 273527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 273627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 27372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 274027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 274127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 274217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 274317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 274417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 274517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 274627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialfv( 274727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 274827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 274927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 275027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 275127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 275227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 275327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 275427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 275527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 27562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 27572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 27582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 275927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 276027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 276127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */ 276227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 276327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialx__III 276427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) { 276527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialx( 276627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 276727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 276827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 276927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 277027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 277127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 277227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */ 277327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 277427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__II_3II 277527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) { 27762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 27772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 27782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 277927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 278027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 278127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 278227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 278327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 27842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 278727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 278827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 278927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 27902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 279327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 279427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 279527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 279627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 279727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 279827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 279927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 280027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 280127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 280227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 280327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 280427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 280527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 280627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 280727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 280827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 280927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 281027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 281127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 281227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 281327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 281427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 281527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 281627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 281727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 281827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 281927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 282027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 282127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 282227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 282327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 282427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 28252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 282827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 282927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 283027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 283127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 283227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 283327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 283427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialxv( 283527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 283627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 283727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 283827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 283927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 284027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 284127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 284227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 284327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 284427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 28452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 28462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 28472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 284827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 284927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 285027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */ 285127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 285227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__IILjava_nio_IntBuffer_2 285327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 28542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 28552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 28562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 285727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 285817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 285927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 286027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 286127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 286217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 286327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 286427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 286527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS) 286627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SHININESS: 286727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS) 286827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 286927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 287027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 287127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 287227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 287327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 287427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 287527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 287627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 287727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 287827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 287927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 288027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 288127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 288227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 288327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 288427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 288527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 288627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 288727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 288827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 288927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 289027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 289127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 28922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 289527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 289627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 289717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 289817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 289917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 290017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 290127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialxv( 290227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 290327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 290427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 290527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 290627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 290727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 290827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 290927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 291027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 29112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 29122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 29132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 291427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 291527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 291627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMatrixMode ( GLenum mode ) */ 291727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 291827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMatrixMode__I 291927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 292027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMatrixMode( 292127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 292227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 292327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 292427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 292527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */ 292627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 292727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf___3FI 292827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) { 29292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 29302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 29312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 293227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m_base = (GLfloat *) 0; 293327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 293427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 293527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 293627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 29372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 29382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 29392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 294027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 294127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 294227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 29432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 29442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 29452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 294627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 294727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 294827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 294927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfloat *) 295027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 295127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 295227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 295327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixf( 295427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 295527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 295627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 295727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 295827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 295927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 296027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 296127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 29622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 29632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 29642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 296527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 296627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 296727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */ 296827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 296927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf__Ljava_nio_FloatBuffer_2 297027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 297127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 297217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 297327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 297427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 297527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 297617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 297717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 297817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 297917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *) (_mBase + _bufferOffset); 298017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 298127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixf( 298227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 298327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 298427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 298527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 298627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 298727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 298827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 298927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */ 299027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 299127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx___3II 299227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) { 29932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 29942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 29952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 299627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m_base = (GLfixed *) 0; 299727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 299827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 299927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 300027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 30012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 30022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 30032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 300427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 300527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 300627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 30072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 30082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 30092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 301027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 301127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 301227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 301327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfixed *) 301427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 301527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 301627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 301727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixx( 301827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 301927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 302027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 302127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 302227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 302327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 302427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 302527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 30262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 30272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 30282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 302927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 303027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 303127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */ 303227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 303327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx__Ljava_nio_IntBuffer_2 303427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 303527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 303617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 303727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 303827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 303927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 304017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 304117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 304217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 304317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *) (_mBase + _bufferOffset); 304417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 304527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixx( 304627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 304727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 304827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 304927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 305027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 305127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 305227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 305327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */ 305427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 305527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4f__IFFFF 305627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) { 305727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultiTexCoord4f( 305827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 305927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)s, 306027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)t, 306127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)r, 306227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)q 306327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 306427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 306527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 306627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */ 306727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 306827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4x__IIIII 306927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) { 307027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultiTexCoord4x( 307127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 307227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)s, 307327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)t, 307427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)r, 307527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)q 307627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 307727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 307827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 307927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */ 308027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 308127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3f__FFF 308227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) { 308327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormal3f( 308427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)nx, 308527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)ny, 308627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)nz 308727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 308827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 308927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 309027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */ 309127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 309227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3x__III 309327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) { 309427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormal3x( 309527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)nx, 309627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)ny, 309727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)nz 309827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 309927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 310027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 310127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */ 310227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 310327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormalPointerBounds__IILjava_nio_Buffer_2I 310427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) { 310527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 310617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 310727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 310827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 310927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 3110e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 311116e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 3112e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 3113e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 3114e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 3115e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 311627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormalPointerBounds( 311727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 311827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 311927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 312027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 312127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 312227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 312327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 312427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */ 312527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 312627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthof__FFFFFF 312727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) { 312827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glOrthof( 312927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)left, 313027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)right, 313127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)bottom, 313227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)top, 313327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zNear, 313427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zFar 313527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 313627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 313727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 313827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */ 313927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 314027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthox__IIIIII 314127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) { 314227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glOrthox( 314327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)left, 314427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)right, 314527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)bottom, 314627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)top, 314727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zNear, 314827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zFar 314927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 315027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 315127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 315227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPixelStorei ( GLenum pname, GLint param ) */ 315327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 315427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPixelStorei__II 315527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 315627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPixelStorei( 315727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 315827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)param 315927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 316027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 316127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 316227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSize ( GLfloat size ) */ 316327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 316427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSize__F 316527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat size) { 316627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointSize( 316727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)size 316827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 316927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 317027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 317127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizex ( GLfixed size ) */ 317227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 317327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSizex__I 317427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size) { 317527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointSizex( 317627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)size 317727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 317827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 317927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 318027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */ 318127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 318227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffset__FF 318327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) { 318427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPolygonOffset( 318527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)factor, 318627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)units 318727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 318827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 318927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 319027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */ 319127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 319227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffsetx__II 319327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint factor, jint units) { 319427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPolygonOffsetx( 319527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)factor, 319627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)units 319727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 319827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 319927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 320027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPopMatrix ( void ) */ 320127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 320227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPopMatrix__ 320327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 320427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPopMatrix(); 320527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 320627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 320727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPushMatrix ( void ) */ 320827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 320927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPushMatrix__ 321027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 321127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPushMatrix(); 321227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 321327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 321427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */ 321527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 321627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glReadPixels__IIIIIILjava_nio_Buffer_2 321727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) { 321827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 321917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 322027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 322127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pixels = (GLvoid *) 0; 322227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 322317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 322417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (pixels == NULL) { 322517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 322617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 322717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 322827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glReadPixels( 322927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 323027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 323127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 323227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 323327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 323427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 323527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pixels 323627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 323727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 32382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, pixels, JNI_TRUE); 323927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 324027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 324127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 324227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */ 324327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 324427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatef__FFFF 324527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) { 324627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glRotatef( 324727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)angle, 324827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)x, 324927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)y, 325027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)z 325127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 325227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 325327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 325427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */ 325527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 325627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatex__IIII 325727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) { 325827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glRotatex( 325927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)angle, 326027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)x, 326127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)y, 326227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)z 326327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 326427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 326527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 326627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */ 326727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 326827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoverage__FZ 326927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) { 327027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glSampleCoverage( 327127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)value, 327227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)invert 327327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 327427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 327527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 327627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */ 327727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 327827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoveragex__IZ 327927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint value, jboolean invert) { 328027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glSampleCoveragex( 328127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)value, 328227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)invert 328327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 328427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 328527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 328627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */ 328727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 328827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalef__FFF 328927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) { 329027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glScalef( 329127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)x, 329227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)y, 329327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)z 329427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 329527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 329627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 329727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */ 329827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 329927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalex__III 330027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint z) { 330127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glScalex( 330227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)x, 330327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)y, 330427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)z 330527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 330627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 330727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 330827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 330927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 331027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScissor__IIII 331127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 331227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glScissor( 331327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 331427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 331527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 331627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height 331727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 331827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 331927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 332027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glShadeModel ( GLenum mode ) */ 332127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 332227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glShadeModel__I 332327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 332427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glShadeModel( 332527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 332627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 332727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 332827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 332927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */ 333027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 333127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilFunc__III 333227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) { 333327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glStencilFunc( 333427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func, 333527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)ref, 333627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)mask 333727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 333827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 333927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 334027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilMask ( GLuint mask ) */ 334127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 334227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilMask__I 334327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mask) { 334427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glStencilMask( 334527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)mask 334627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 334727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 334827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 334927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */ 335027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 335127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilOp__III 335227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) { 335327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glStencilOp( 335427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)fail, 335527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)zfail, 335627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)zpass 335727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 335827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 335927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 336027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 336127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 336227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I 336327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 336427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 336517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 336627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 336727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 336827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 3369e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 337016e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 3371e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 3372e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 3373e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 3374e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 337527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexCoordPointerBounds( 337627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 337727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 337827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 337927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 338027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 338127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 338227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 338327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 338427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */ 338527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 338627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvf__IIF 338727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) { 338827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvf( 338927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 339027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 339127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 339227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 339327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 339427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 339527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 339627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 339727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__II_3FI 339827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 33992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 34002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 34012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 340227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 340327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 340427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 340527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 340627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 34072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 34082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 34092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 341027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 341127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 341227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 34132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 34142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 34152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 341627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 341727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 341827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 341927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 342027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 342127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 342227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 342327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 342427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 342527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 342627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 342727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 342827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 342927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 343027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 343127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 343227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 343327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 343427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 343527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 343627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 343727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 343827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 343927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 344027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 344127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 34422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 34432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 34442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 344527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 344627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 344727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 344827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 344927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 345027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 345127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvfv( 345227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 345327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 345427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 345527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 345627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 345727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 345827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 345927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 346027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 346127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 34622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 34632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 34642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 346527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 346627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 346727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 346827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 346927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__IILjava_nio_FloatBuffer_2 347027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 34712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 34722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 34732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 347427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 347517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 347627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 347727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 347827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 347917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 348027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 348127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 348227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 348327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 348427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 348527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 348627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 348727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 348827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 348927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 349027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 349127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 349227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 349327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 349427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 349527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 349627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 349727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 349827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 349927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 350027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 350127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 350227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 35032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 35042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 35052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 350627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 350727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 350817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 350917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 351017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 351117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 351227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvfv( 351327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 351427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 351527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 351627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 351727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 351827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 351927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 352027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 352127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 35222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 35232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 35242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 352527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 352627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 352727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */ 352827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 352927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvx__III 353027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 353127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvx( 353227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 353327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 353427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 353527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 353627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 353727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 353827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 353927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 354027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__II_3II 354127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 35422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 35432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 35442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 354527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 354627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 354727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 354827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 354927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 35502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 35512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 35522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 355327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 355427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 355527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 35562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 35572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 35582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 355927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 356027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 356127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 356227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 356327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 356427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 356527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 356627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 356727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 356827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 356927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 357027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 357127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 357227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 357327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 357427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 357527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 357627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 357727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 357827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 357927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 358027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 358127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 358227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 358327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 358427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 35852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 35862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 35872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 358827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 358927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 359027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 359127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 359227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 359327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 359427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvxv( 359527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 359627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 359727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 359827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 359927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 360027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 360127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 360227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 360327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 360427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 36052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 36062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 36072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 360827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 360927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 361027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 361127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 361227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__IILjava_nio_IntBuffer_2 361327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 36142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 36152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionType; 36162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer const char * _exceptionMessage; 361727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 361817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 361927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 362027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 362127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 362217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 362327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 362427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 362527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE) 362627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_MODE: 362727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE) 362827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB) 362927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_RGB: 363027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB) 363127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA) 363227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_COMBINE_ALPHA: 363327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA) 363427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 1; 363527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 363627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 363727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 363827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 363927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 364027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 364127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 364227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 0; 364327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 364427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 364527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 36462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 36472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 36482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 364927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 365027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 365117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 365217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 365317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 365417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 365527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvxv( 365627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 365727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 365827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 365927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 366027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 366127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 366227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 366327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 366427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 36652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 36662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 36672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 366827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 366927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 367027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */ 367127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 367227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 367327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) { 367427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 367517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 367627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 367727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pixels = (GLvoid *) 0; 367827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 367927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pixels_buf) { 368017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 368117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 368217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (pixels == NULL) { 368317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 368417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 368527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 368627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexImage2D( 368727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 368827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 368927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)internalformat, 369027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 369127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 369227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)border, 369327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 369427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 369527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pixels 369627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 369727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 369827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, pixels, JNI_FALSE); 369927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 370027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 370127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 370227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */ 370327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 370427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterf__IIF 370527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) { 370627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterf( 370727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 370827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 370927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 371027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 371127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 371227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 371327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */ 371427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 371527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterx__III 371627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 371727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterx( 371827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 371927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 372027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 372127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 372227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 372327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 372427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */ 372527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 372627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 372727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) { 372827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 372917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 373027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 373127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pixels = (GLvoid *) 0; 373227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 373327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pixels_buf) { 373417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 373517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 373617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (pixels == NULL) { 373717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 373817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 373927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 374027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexSubImage2D( 374127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 374227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 374327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)xoffset, 374427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)yoffset, 374527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 374627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 374727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 374827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 374927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pixels 375027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 375127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 375227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, pixels, JNI_FALSE); 375327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 375427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 375527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 375627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */ 375727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 375827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatef__FFF 375927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) { 376027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTranslatef( 376127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)x, 376227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)y, 376327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)z 376427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 376527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 376627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 376727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */ 376827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 376927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatex__III 377027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint z) { 377127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTranslatex( 377227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)x, 377327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)y, 377427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)z 377527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 377627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 377727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 377827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 377927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 378027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glVertexPointerBounds__IIILjava_nio_Buffer_2I 378127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 378227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 378317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 378427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 378527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 378627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 3787e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 378816e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 3789e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 3790e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 3791e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 3792e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 379327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glVertexPointerBounds( 379427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 379527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 379627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 379727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 379827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 379927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 380027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 380127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 380227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 380327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 380427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glViewport__IIII 380527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 380627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glViewport( 380727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 380827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 380927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 381027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height 381127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 381227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 381327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 381427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES10"; 381527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 381627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic JNINativeMethod methods[] = { 381727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit }, 381827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I }, 381927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF }, 382027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II }, 382127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindTexture", "(II)V", (void *) android_glBindTexture__II }, 382227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II }, 382327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClear", "(I)V", (void *) android_glClear__I }, 382427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF }, 382527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII }, 382627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F }, 382727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I }, 382827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearStencil", "(I)V", (void *) android_glClearStencil__I }, 382927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I }, 383027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF }, 383127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII }, 383227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ }, 383327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I }, 383427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 }, 383527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 383627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII }, 383727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII }, 383827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCullFace", "(I)V", (void *) android_glCullFace__I }, 383927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II }, 384027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 }, 384127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I }, 384227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z }, 384327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF }, 384427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II }, 384527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisable", "(I)V", (void *) android_glDisable__I }, 384627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I }, 384727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III }, 384827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 }, 384927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnable", "(I)V", (void *) android_glEnable__I }, 385027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I }, 385127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFinish", "()V", (void *) android_glFinish__ }, 385227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFlush", "()V", (void *) android_glFlush__ }, 385327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogf", "(IF)V", (void *) android_glFogf__IF }, 385427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI }, 385527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 }, 385627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogx", "(II)V", (void *) android_glFogx__II }, 385727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II }, 385827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 }, 385927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrontFace", "(I)V", (void *) android_glFrontFace__I }, 386027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF }, 386127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII }, 386227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II }, 386327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 }, 386427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetError", "()I", (void *) android_glGetError__ }, 386527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II }, 386627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 }, 3867a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich{"glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString }, 386827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glHint", "(II)V", (void *) android_glHint__II }, 386927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF }, 387027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI }, 387127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 }, 387227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelx", "(II)V", (void *) android_glLightModelx__II }, 387327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II }, 387427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 }, 387527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightf", "(IIF)V", (void *) android_glLightf__IIF }, 387627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI }, 387727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 }, 387827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightx", "(III)V", (void *) android_glLightx__III }, 387927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II }, 388027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 }, 388127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidth", "(F)V", (void *) android_glLineWidth__F }, 388227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I }, 388327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ }, 388427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI }, 388527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 }, 388627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II }, 388727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 }, 388827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLogicOp", "(I)V", (void *) android_glLogicOp__I }, 388927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF }, 389027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI }, 389127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 }, 389227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialx", "(III)V", (void *) android_glMaterialx__III }, 389327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II }, 389427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 }, 389527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I }, 389627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI }, 389727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 }, 389827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II }, 389927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 }, 390027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF }, 390127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII }, 390227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF }, 390327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3x", "(III)V", (void *) android_glNormal3x__III }, 390427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I }, 390527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF }, 390627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII }, 390727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II }, 390827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSize", "(F)V", (void *) android_glPointSize__F }, 390927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSizex", "(I)V", (void *) android_glPointSizex__I }, 391027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF }, 391127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II }, 391227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPopMatrix", "()V", (void *) android_glPopMatrix__ }, 391327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPushMatrix", "()V", (void *) android_glPushMatrix__ }, 391427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 }, 391527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF }, 391627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII }, 391727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ }, 391827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ }, 391927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalef", "(FFF)V", (void *) android_glScalef__FFF }, 392027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalex", "(III)V", (void *) android_glScalex__III }, 392127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScissor", "(IIII)V", (void *) android_glScissor__IIII }, 392227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glShadeModel", "(I)V", (void *) android_glShadeModel__I }, 392327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III }, 392427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilMask", "(I)V", (void *) android_glStencilMask__I }, 392527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilOp", "(III)V", (void *) android_glStencilOp__III }, 392627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I }, 392727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF }, 392827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI }, 392927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 }, 393027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III }, 393127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II }, 393227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 }, 393327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 }, 393427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF }, 393527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III }, 393627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 393727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF }, 393827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatex", "(III)V", (void *) android_glTranslatex__III }, 393927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I }, 394027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glViewport", "(IIII)V", (void *) android_glViewport__IIII }, 394127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}; 394227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 394327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES10(JNIEnv *_env) 394427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 394527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int err; 394627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods)); 394727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return err; 394827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 3949