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 202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#include <GLES/gl.h> 212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#include <GLES/glext.h> 222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 239626f8203a8c222b8960a49cdc66d540fdb688b0Jesse Hall#include <jni.h> 249626f8203a8c222b8960a49cdc66d540fdb688b0Jesse Hall#include <JNIHelp.h> 2527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <android_runtime/AndroidRuntime.h> 2627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <utils/misc.h> 2727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <assert.h> 28be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich 2927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic int initialized = 0; 3027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 3127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass nioAccessClass; 3227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass bufferClass; 3327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBasePointerID; 3427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayID; 3527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayOffsetID; 3627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID positionID; 3727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID limitID; 3827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID elementSizeShiftID; 3927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 402ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian/* special calls implemented in Android's GLES wrapper used to more 422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * efficiently bound-check passed arrays */ 432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianextern "C" { 442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_VERSION_ES_CM_1_1 452ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride, 462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const GLvoid *ptr, GLsizei count); 472ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride, 482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const GLvoid *pointer, GLsizei count); 492ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type, 502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian GLsizei stride, const GLvoid *pointer, GLsizei count); 512ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type, 522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian GLsizei stride, const GLvoid *pointer, GLsizei count); 532ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type, 542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian GLsizei stride, const GLvoid *pointer, GLsizei count); 552ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type, 562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian GLsizei stride, const GLvoid *pointer, GLsizei count); 572ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type, 582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian GLsizei stride, const GLvoid *pointer, GLsizei count); 592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif 602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_ES_VERSION_2_0 612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void glVertexAttribPointerBounds(GLuint indx, GLint size, GLenum type, 622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian GLboolean normalized, GLsizei stride, const GLvoid *pointer, GLsizei count) { 632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian glVertexAttribPointer(indx, size, type, normalized, stride, pointer); 642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian} 652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif 66cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden#ifdef GL_ES_VERSION_3_0 67cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFaddenstatic void glVertexAttribIPointerBounds(GLuint indx, GLint size, GLenum type, 68cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden GLsizei stride, const GLvoid *pointer, GLsizei count) { 69cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden glVertexAttribIPointer(indx, size, type, stride, pointer); 70cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden} 71cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden#endif 722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian} 732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 7427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* Cache method IDs each time the class is loaded. */ 7527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 7627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 7724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass) 7827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 7927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess"); 8027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal); 8127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 8227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass bufferClassLocal = _env->FindClass("java/nio/Buffer"); 8327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal); 8427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBasePointerID = _env->GetStaticMethodID(nioAccessClass, 8627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBasePointer", "(Ljava/nio/Buffer;)J"); 8727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, 8827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;"); 8927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass, 9027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBaseArrayOffset", "(Ljava/nio/Buffer;)I"); 9127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 9227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich positionID = _env->GetFieldID(bufferClass, "position", "I"); 9327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich limitID = _env->GetFieldID(bufferClass, "limit", "I"); 9427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich elementSizeShiftID = 9527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetFieldID(bufferClass, "_elementSizeShift", "I"); 9627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 9727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 9827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void * 9917045a16575ece34cfadb63da4791f115625df78Thomas TafertshofergetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset) 10027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 10127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint position; 10227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint limit; 10327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint elementSizeShift; 10427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jlong pointer; 10527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 10627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich position = _env->GetIntField(buffer, positionID); 10727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich limit = _env->GetIntField(buffer, limitID); 10827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 10927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *remaining = (limit - position) << elementSizeShift; 11027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich pointer = _env->CallStaticLongMethod(nioAccessClass, 11127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBasePointerID, buffer); 11227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pointer != 0L) { 11327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *array = NULL; 11401c26ea89d4bbea3cf550e9328742302dd9a2b25Ashok Bhat return reinterpret_cast<void*>(pointer); 11527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 11624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes 11727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass, 11827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayID, buffer); 11917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer *offset = _env->CallStaticIntMethod(nioAccessClass, 12027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayOffsetID, buffer); 12124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes 12217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer return NULL; 12327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 12427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 12527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 12627f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) 12727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 12827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(array, data, 1292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian commit ? 0 : JNI_ABORT); 13027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 13127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 132be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichstatic void * 133be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) { 134be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich char* buf = (char*) _env->GetDirectBufferAddress(buffer); 135be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich if (buf) { 136be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich jint position = _env->GetIntField(buffer, positionID); 137be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 138be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich buf += position << elementSizeShift; 139be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich } else { 14024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jniThrowException(_env, "java/lang/IllegalArgumentException", 14124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes "Must use a native order direct Buffer"); 142be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich } 143be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich return (void*) buf; 144be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich} 145be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich 14627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// -------------------------------------------------------------------------- 1472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian/* 1492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * returns the number of values glGet returns for a given pname. 1502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * 1512ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * The code below is written such that pnames requiring only one values 1522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * are the default (and are not explicitely tested for). This makes the 1532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * checking code much shorter/readable/efficient. 1542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * 1552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * This means that unknown pnames (e.g.: extensions) will default to 1. If 1562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * that unknown pname needs more than 1 value, then the validation check 1572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * is incomplete and the app may crash if it passed the wrong number params. 1582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian */ 1592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic int getNeededCount(GLint pname) { 1602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian int needed = 1; 1612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_ES_VERSION_2_0 1622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // GLES 2.x pnames 1632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian switch (pname) { 1642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_ALIASED_LINE_WIDTH_RANGE: 1652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_ALIASED_POINT_SIZE_RANGE: 1662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 2; 1672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_BLEND_COLOR: 1702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COLOR_CLEAR_VALUE: 1712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COLOR_WRITEMASK: 1722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_SCISSOR_BOX: 1732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_VIEWPORT: 1742ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 4; 1752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COMPRESSED_TEXTURE_FORMATS: 1782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed); 1792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1802ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_SHADER_BINARY_FORMATS: 1822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian glGetIntegerv(GL_NUM_SHADER_BINARY_FORMATS, &needed); 1832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 1852ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif 1862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_VERSION_ES_CM_1_1 1882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // GLES 1.x pnames 1892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian switch (pname) { 1902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_ALIASED_LINE_WIDTH_RANGE: 1912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_ALIASED_POINT_SIZE_RANGE: 1922ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_DEPTH_RANGE: 1932ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_SMOOTH_LINE_WIDTH_RANGE: 1942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_SMOOTH_POINT_SIZE_RANGE: 1952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 2; 1962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1982ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_CURRENT_NORMAL: 1992ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_POINT_DISTANCE_ATTENUATION: 2002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 3; 2012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 2022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COLOR_CLEAR_VALUE: 2042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COLOR_WRITEMASK: 2052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_CURRENT_COLOR: 2062ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_CURRENT_TEXTURE_COORDS: 2072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_FOG_COLOR: 2082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_LIGHT_MODEL_AMBIENT: 2092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_SCISSOR_BOX: 2102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_VIEWPORT: 2112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 4; 2122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 2132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2142ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_MODELVIEW_MATRIX: 2152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_PROJECTION_MATRIX: 2162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_TEXTURE_MATRIX: 2172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 16; 2182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 2192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COMPRESSED_TEXTURE_FORMATS: 2212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed); 2222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 2232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif 2252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian return needed; 2262ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian} 2272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopiantemplate <typename JTYPEARRAY, typename CTYPE, void GET(GLenum, CTYPE*)> 2292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void 2302ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianget 2312ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (JNIEnv *_env, jobject _this, jint pname, JTYPEARRAY params_ref, jint offset) { 2322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _exception = 0; 2332ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType; 2342ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage; 2352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian CTYPE *params_base = (CTYPE *) 0; 2362ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _remaining; 2372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian CTYPE *params = (CTYPE *) 0; 2382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian int _needed = 0; 2392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2402ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (!params_ref) { 2412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 2422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 2432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "params == null"; 2442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 2452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (offset < 0) { 2472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 2482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 2492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "offset < 0"; 2502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 2512ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _remaining = _env->GetArrayLength(params_ref) - offset; 2532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = getNeededCount(pname); 2542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // if we didn't find this pname, we just assume the user passed 2552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // an array of the right size -- this might happen with extensions 2562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // or if we forget an enum here. 2572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_remaining < _needed) { 2582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 2592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 2602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "length - offset < needed"; 2612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 2622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian params_base = (CTYPE *) 2642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian params = params_base + offset; 2662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian GET( 2682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (GLenum)pname, 2692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (CTYPE *)params 2702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian ); 2712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianexit: 2732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (params_base) { 2742ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception ? JNI_ABORT: 0); 2762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_exception) { 2782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jniThrowException(_env, _exceptionType, _exceptionMessage); 2792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2802ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian} 2812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopiantemplate <typename CTYPE, void GET(GLenum, CTYPE*)> 2842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void 2852ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopiangetarray 2862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 2872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _exception = 0; 2882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType; 2892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage; 2902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jarray _array = (jarray) 0; 2912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _bufferOffset = (jint) 0; 2922ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _remaining; 2932ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian CTYPE *params = (CTYPE *) 0; 2942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian int _needed = 0; 2952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian params = (CTYPE *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 297cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden _remaining /= sizeof(CTYPE); // convert from bytes to item count 2982ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = getNeededCount(pname); 2992ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // if we didn't find this pname, we just assume the user passed 3002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // an array of the right size -- this might happen with extensions 3012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // or if we forget an enum here. 3022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_needed>0 && _remaining < _needed) { 3032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 3042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 3052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "remaining() < needed"; 3062ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 3072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 3082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (params == NULL) { 3092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian params = (CTYPE *) (_paramsBase + _bufferOffset); 3112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 3122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian GET( 3132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (GLenum)pname, 3142ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (CTYPE *)params 3152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian ); 3162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 3172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianexit: 3182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_array) { 3192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 3202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 3212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_exception) { 3222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jniThrowException(_env, _exceptionType, _exceptionMessage); 3232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 3242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian} 3252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 3262ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian// -------------------------------------------------------------------------- 32727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindBuffer ( GLenum target, GLuint buffer ) */ 32827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 32927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindBuffer__II 33027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint buffer) { 33127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBindBuffer( 33227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 33327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)buffer 33427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 33527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 33627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 33727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */ 33827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 33927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBufferData__IILjava_nio_Buffer_2I 34027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) { 3412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 3422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 3432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 34427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 34517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 34627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 34727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 34827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 34927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (data_buf) { 35017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 351c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich if (_remaining < size) { 3522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 3532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 3542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < size < needed"; 355c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich goto exit; 356c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich } 35727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 35837c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer if (data_buf && data == NULL) { 35917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 36017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 36117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 36227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBufferData( 36327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 36427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizeiptr)size, 36527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data, 36627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)usage 36727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 368c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich 369c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit: 37027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 37127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 37227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 3732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 3742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 3752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 37627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 37727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 37827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */ 37927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 38027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBufferSubData__IIILjava_nio_Buffer_2 38127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) { 3822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 3832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 3842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 38527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 38617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 38727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 38827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 38927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 39017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 391c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich if (_remaining < size) { 3922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 3932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 3942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < size < needed"; 395c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich goto exit; 396c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich } 39717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 39817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 39917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 40017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 40127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBufferSubData( 40227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 40327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLintptr)offset, 40427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizeiptr)size, 40527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data 40627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 407c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich 408c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit: 40927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 41027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 41127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 4122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 4132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 4142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 41527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 41627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 41727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */ 41827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 41927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanef__I_3FI 42027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) { 4212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 4222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 4232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 42427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *equation_base = (GLfloat *) 0; 42527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 42627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *equation = (GLfloat *) 0; 42727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 42827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!equation_ref) { 4292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 4302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 4312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "equation == null"; 43227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 43327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 43427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 4352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 4362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 4372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 43827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 43927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 44027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(equation_ref) - offset; 44127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation_base = (GLfloat *) 44227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); 44327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation = equation_base + offset; 44427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 44527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanef( 44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)equation 44827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 44927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 45027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 45127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (equation_base) { 45227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(equation_ref, equation_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 glClipPlanef ( GLenum plane, const GLfloat *equation ) */ 46127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 46227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanef__ILjava_nio_FloatBuffer_2 46327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) { 4642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 4652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 4662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 46817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 47027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *equation = (GLfloat *) 0; 47127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 47217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset); 47317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (equation == NULL) { 47417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 47517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer equation = (GLfloat *) (_equationBase + _bufferOffset); 47617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanef( 47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 47927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)equation 48027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 48127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 48227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, equation, JNI_FALSE); 48327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 4842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 4852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 4862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 48727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 48827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 48927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */ 49027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 49127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanex__I_3II 49227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) { 4932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 4942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 4952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *equation_base = (GLfixed *) 0; 49727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 49827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *equation = (GLfixed *) 0; 49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!equation_ref) { 5012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 5022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "equation == null"; 50427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 5072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 5082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 51027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 51127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(equation_ref) - offset; 51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation_base = (GLfixed *) 51427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0); 51527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich equation = equation_base + offset; 51627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 51727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanex( 51827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 51927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)equation 52027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 52127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 52227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 52327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (equation_base) { 52427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base, 52527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 52627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 5272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 5282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 5292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 53027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 53127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 53227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */ 53327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 53427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanex__ILjava_nio_IntBuffer_2 53527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) { 5362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 5372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 5382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 53927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 54017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 54127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 54227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *equation = (GLfixed *) 0; 54327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 54417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset); 54517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (equation == NULL) { 54617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 54717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer equation = (GLfixed *) (_equationBase + _bufferOffset); 54817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 54927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClipPlanex( 55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)plane, 55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)equation 55227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 55327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 55427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, equation, JNI_FALSE); 55527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 5562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 5572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 5582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 55927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 56027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 56127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) */ 56227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 56327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4ub__BBBB 56427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jbyte red, jbyte green, jbyte blue, jbyte alpha) { 56527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColor4ub( 56627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)red, 56727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)green, 56827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)blue, 56927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLubyte)alpha 57027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 57127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 57227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 57327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ 57427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 57527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorPointer__IIII 57627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) { 57727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColorPointer( 57827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 57927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 58027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 58101c26ea89d4bbea3cf550e9328742302dd9a2b25Ashok Bhat reinterpret_cast<GLvoid *>(offset) 58227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 58327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 58427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 58527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */ 58627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteBuffers__I_3II 58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) { 5892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 5902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 5912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 59227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers_base = (GLuint *) 0; 59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 59427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 59527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 59627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!buffers_ref) { 5972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 5982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 5992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "buffers == null"; 60027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 60227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 6032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 60827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(buffers_ref) - offset; 60927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 6102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 61327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers_base = (GLuint *) 61627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); 61727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers = buffers_base + offset; 61827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 61927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteBuffers( 62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 62227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 62327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 62427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 62527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (buffers_base) { 62627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, 62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 6292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 63227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */ 63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteBuffers__ILjava_nio_IntBuffer_2 63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) { 6382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 6392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 6402ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 64127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 64217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 64327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 64427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 64527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 64617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset); 64727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 6482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 65127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 65227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 65317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (buffers == NULL) { 65417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 65517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *) (_buffersBase + _bufferOffset); 65617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 65727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteBuffers( 65827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 65927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 66027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 66127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 66227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 66327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 66427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, buffers, JNI_FALSE); 66527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 6662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 66927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 67027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 67127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */ 67227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 67327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawElements__IIII 67427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) { 6752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 6762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 6772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 67827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDrawElements( 67927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode, 68027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)count, 68127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 68201c26ea89d4bbea3cf550e9328742302dd9a2b25Ashok Bhat reinterpret_cast<GLvoid *>(offset) 68327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 6842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 68727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 68827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 68927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */ 69027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 69127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenBuffers__I_3II 69227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) { 69327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 6942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 6952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 69627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers_base = (GLuint *) 0; 69727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 69827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 69927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 70027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!buffers_ref) { 70127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 7022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "buffers == null"; 70427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 70527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 70627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 70727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 7082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 71027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 71127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 71227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(buffers_ref) - offset; 71327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 71427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 7152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 71727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 71827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 71927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers_base = (GLuint *) 72027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); 72127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich buffers = buffers_base + offset; 72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 72327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenBuffers( 72427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 72527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 72627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 72727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 72827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 72927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (buffers_base) { 73027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, 73127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 7332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 7342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 7352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 73627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 73727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 73827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */ 73927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenBuffers__ILjava_nio_IntBuffer_2 74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) { 74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 7432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 7442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 74527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 74617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 74727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *buffers = (GLuint *) 0; 74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 75017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset); 75127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 75227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 7532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 7542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 75527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 75627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 75717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (buffers == NULL) { 75817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 75917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer buffers = (GLuint *) (_buffersBase + _bufferOffset); 76017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenBuffers( 76227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 76327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)buffers 76427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 76527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 76627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 76727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE); 76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 7702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 7712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 7722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 77327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 77427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ 77627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 77727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBooleanv__I_3ZI 77827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) { 7792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian get<jbooleanArray, GLboolean, glGetBooleanv>(_env, _this, pname, params_ref, offset); 78027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ 78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 78427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBooleanv__ILjava_nio_IntBuffer_2 78527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 7862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian getarray<GLboolean, glGetBooleanv>(_env, _this, pname, params_buf); 78727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBufferParameteriv__II_3II 79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 79273108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _exception = 0; 7932ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 7942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 79573108675c944ab4ee89631dced23566b12341b66Jack Palevich GLint *params_base = (GLint *) 0; 79673108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _remaining; 79773108675c944ab4ee89631dced23566b12341b66Jack Palevich GLint *params = (GLint *) 0; 79873108675c944ab4ee89631dced23566b12341b66Jack Palevich 79973108675c944ab4ee89631dced23566b12341b66Jack Palevich if (!params_ref) { 80073108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 8012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 80373108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 80473108675c944ab4ee89631dced23566b12341b66Jack Palevich } 80573108675c944ab4ee89631dced23566b12341b66Jack Palevich if (offset < 0) { 80673108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 8072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 80973108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 81073108675c944ab4ee89631dced23566b12341b66Jack Palevich } 81173108675c944ab4ee89631dced23566b12341b66Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 81273108675c944ab4ee89631dced23566b12341b66Jack Palevich if (_remaining < 1) { 81373108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 8142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 81673108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 81773108675c944ab4ee89631dced23566b12341b66Jack Palevich } 81873108675c944ab4ee89631dced23566b12341b66Jack Palevich params_base = (GLint *) 81973108675c944ab4ee89631dced23566b12341b66Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 82073108675c944ab4ee89631dced23566b12341b66Jack Palevich params = params_base + offset; 82173108675c944ab4ee89631dced23566b12341b66Jack Palevich 82273108675c944ab4ee89631dced23566b12341b66Jack Palevich glGetBufferParameteriv( 82373108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)target, 82473108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)pname, 82573108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLint *)params 82673108675c944ab4ee89631dced23566b12341b66Jack Palevich ); 82773108675c944ab4ee89631dced23566b12341b66Jack Palevich 82873108675c944ab4ee89631dced23566b12341b66Jack Palevichexit: 82973108675c944ab4ee89631dced23566b12341b66Jack Palevich if (params_base) { 83073108675c944ab4ee89631dced23566b12341b66Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 83173108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception ? JNI_ABORT: 0); 83273108675c944ab4ee89631dced23566b12341b66Jack Palevich } 8332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 8342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 8352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 83627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 83727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 83827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 84027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 84127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 84273108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _exception = 0; 8432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 8442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 84573108675c944ab4ee89631dced23566b12341b66Jack Palevich jarray _array = (jarray) 0; 84617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 84773108675c944ab4ee89631dced23566b12341b66Jack Palevich jint _remaining; 84873108675c944ab4ee89631dced23566b12341b66Jack Palevich GLint *params = (GLint *) 0; 84973108675c944ab4ee89631dced23566b12341b66Jack Palevich 85017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 85173108675c944ab4ee89631dced23566b12341b66Jack Palevich if (_remaining < 1) { 85273108675c944ab4ee89631dced23566b12341b66Jack Palevich _exception = 1; 8532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 85573108675c944ab4ee89631dced23566b12341b66Jack Palevich goto exit; 85673108675c944ab4ee89631dced23566b12341b66Jack Palevich } 85717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 85817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 85917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 86017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 86173108675c944ab4ee89631dced23566b12341b66Jack Palevich glGetBufferParameteriv( 86273108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)target, 86373108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLenum)pname, 86473108675c944ab4ee89631dced23566b12341b66Jack Palevich (GLint *)params 86573108675c944ab4ee89631dced23566b12341b66Jack Palevich ); 86673108675c944ab4ee89631dced23566b12341b66Jack Palevich 86773108675c944ab4ee89631dced23566b12341b66Jack Palevichexit: 86873108675c944ab4ee89631dced23566b12341b66Jack Palevich if (_array) { 86973108675c944ab4ee89631dced23566b12341b66Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 87073108675c944ab4ee89631dced23566b12341b66Jack Palevich } 8712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 8722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 8732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 87427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 87527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 87627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */ 87727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 87827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanef__I_3FI 87927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) { 88027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 8812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 8822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 88327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *eqn_base = (GLfloat *) 0; 88427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *eqn = (GLfloat *) 0; 88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 88727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!eqn_ref) { 88827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 8892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "eqn == null"; 89127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 89227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 89327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 89427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 8952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 89727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 89827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 89927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(eqn_ref) - offset; 9002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_remaining < 4) { 9012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 9022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 9032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "length - offset < 4 < needed"; 9042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 9052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 90627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn_base = (GLfloat *) 90727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); 90827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn = eqn_base + offset; 90927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 91027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanef( 91127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 91227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)eqn 91327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 91427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 91527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 91627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (eqn_base) { 91727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, 91827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 91927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 9202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 9212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 9222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 92327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 92427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 92527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */ 92627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 92727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanef__ILjava_nio_FloatBuffer_2 92827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) { 9292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _exception = 0; 9302ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 9312ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 93227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 93317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 93527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *eqn = (GLfloat *) 0; 93627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 93717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset); 9382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_remaining < 4) { 9392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 9402ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 9412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "remaining() < 4 < needed"; 9422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 9432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 94417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (eqn == NULL) { 94517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 94617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer eqn = (GLfloat *) (_eqnBase + _bufferOffset); 94717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 94827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanef( 94927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 95027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)eqn 95127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 9522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 9532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianexit: 95427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 9552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE); 9562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 9572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_exception) { 9582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jniThrowException(_env, _exceptionType, _exceptionMessage); 95927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 96027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 96127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 96227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */ 96327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 96427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanex__I_3II 96527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) { 96627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 9672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 9682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 96927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *eqn_base = (GLfixed *) 0; 97027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 97127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *eqn = (GLfixed *) 0; 97227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 97327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!eqn_ref) { 97427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 9752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "eqn == null"; 97727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 97827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 97927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 98027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 9812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 98327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 98427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(eqn_ref) - offset; 9862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_remaining < 4) { 9872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 9882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 9892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "length - offset < 4 < needed"; 9902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 9912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 99227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn_base = (GLfixed *) 99327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0); 99427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich eqn = eqn_base + offset; 99527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 99627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanex( 99727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 99827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)eqn 99927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 100027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 100127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 100227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (eqn_base) { 100327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base, 100427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 100527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 10062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 10072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 10082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 100927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 101027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 101127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */ 101227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 101327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanex__ILjava_nio_IntBuffer_2 101427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) { 10152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _exception = 0; 10162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 10172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 101827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 101917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 102127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *eqn = (GLfixed *) 0; 102227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 102317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset); 10242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_remaining < 4) { 10252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 10262ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 10272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "remaining() < 4 < needed"; 10282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 10292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 103017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (eqn == NULL) { 103117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 103217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer eqn = (GLfixed *) (_eqnBase + _bufferOffset); 103317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 103427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetClipPlanex( 103527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 103627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)eqn 103727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 10382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 10392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianexit: 104027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 10412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE); 10422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 10432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_exception) { 10442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jniThrowException(_env, _exceptionType, _exceptionMessage); 104527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 104627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 104727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 104827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFixedv ( GLenum pname, GLfixed *params ) */ 104927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 105027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFixedv__I_3II 105127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 105227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 10532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 10542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 105527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 105627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 105727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 105827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 105927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 106027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 10612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 106327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 106427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 106527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 106627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 10672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 106927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 107027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 107127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 107227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 107327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 107427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 107527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 107627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetFixedv( 107727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 107827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 107927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 108527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 10862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 10872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 10882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 108927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 109027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 109127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFixedv ( GLenum pname, GLfixed *params ) */ 109227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 109327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFixedv__ILjava_nio_IntBuffer_2 109427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 109527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 109617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 109727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 109827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 109927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 110017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 110117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 110217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 110317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 110417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetFixedv( 110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 110727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 110827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 110927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 11102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, params, JNI_TRUE); 111127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 111227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 111327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 111427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */ 111527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 111627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFloatv__I_3FI 111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 11182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian get<jfloatArray, GLfloat, glGetFloatv>(_env, _this, pname, params_ref, offset); 111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 112127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */ 112227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 112327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFloatv__ILjava_nio_FloatBuffer_2 112427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 11252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian getarray<GLfloat, glGetFloatv>(_env, _this, pname, params_buf); 112627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 112727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */ 112827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 112927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightfv__II_3FI 113027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) { 113127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 11322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 11332ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 113427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 113527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 113627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 113727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 113827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 113927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 114227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 114327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 114427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 114527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 114827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 114927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 115027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 115127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 115227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 115327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 115427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 115527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 115627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 115727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 115827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 115927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 116027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 116127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 116227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 116327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 116427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 116527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 116627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 116727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 117027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 117127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 117227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 11732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 117427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 117527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 117627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 117727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 118027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 118127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 118227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 118327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 118427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 118527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 118627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightfv( 118727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 118827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 118927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 119027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 119127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 119227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 119327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 119427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 119527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 119627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 11972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 11982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 11992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 120027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 120127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 120227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */ 120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightfv__IILjava_nio_FloatBuffer_2 120527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 120627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 12072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 12082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 120927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 121017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 121127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 121227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 121327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 121417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 121527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 121627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 121727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 121827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 121927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 122027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 122127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 122227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 122327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 122427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 122527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 122627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 122727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 122827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 122927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 123027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 123127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 123227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 123327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 123427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 123527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 123627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 12372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 123827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 123927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 124027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 124127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 12422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 124427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 124527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 124617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 124717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 124817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 124917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 125027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightfv( 125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 125227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 125327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 125427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 125527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 125627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 125727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 125827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 125927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 12602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 12612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 12622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 126327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 126427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 126527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */ 126627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 126727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightxv__II_3II 126827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) { 126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 12702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 12712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 127227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 127327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 127427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 127527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 127627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 127727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 12782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 128027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 128127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 128227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 128327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 12842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 128627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 128727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 128827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 128927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 129027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 129127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 129227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 129327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 129427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 129527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 129627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 129727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 129827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 129927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 130027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 130127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 130227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 130327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 130427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 130527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 130627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 130727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 130827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 130927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 131027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 13112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 131227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 131327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 131427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 131527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 13162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 131927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 132027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 132127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 132227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 132327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 132427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightxv( 132527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 132627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 132727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 132827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 132927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 133027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 133127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 133227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 133327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 133427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 13352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 13362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 13372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 133827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 133927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 134027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */ 134127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightxv__IILjava_nio_IntBuffer_2 134327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 134427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 13452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 13462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 134727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 134817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 134927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 135027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 135127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 135217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 135327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 135427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 135527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 135627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 135727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 135827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 135927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 136027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 136127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 136227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 136327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 136427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 136527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 136627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 136727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 136827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 136927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 137027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 137127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 137227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 137327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 137427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 13752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 137627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 137727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 137827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 137927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 13802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 138327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 138417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 138517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 138617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 138717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 138827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetLightxv( 138927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 139027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 139127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 139227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 139327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 139427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 139527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 139627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 139727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 13982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 13992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 14002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 140127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 140227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 140327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */ 140427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 140527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialfv__II_3FI 140627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) { 140727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 14082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 14092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 141027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 141127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 141227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 141327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 141427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 141527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 14162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 141827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 141927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 142027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 142127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 14222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 142427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 142527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 142627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 142727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 142827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 142927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 143027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 143127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 143227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 143327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 143427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 143527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 143627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 143727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 143827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 143927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 144027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 144127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 144227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 144327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 144427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 144527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 144627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 14472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 144827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 145027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 145127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 14522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 145427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 145527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 145627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 145727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 145827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 145927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 146027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialfv( 146127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 146227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 146327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 146427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 146527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 146627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 146727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 146827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 146927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 147027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 14712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 14722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 14732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */ 147727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 147827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialfv__IILjava_nio_FloatBuffer_2 147927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 148027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 14812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 14822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 148327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 148417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 148527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 148627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 148727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 148817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 148927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 149027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 149127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 149227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 149327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 149427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 149527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 149627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 149727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 149827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 149927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 150027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 150127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 150227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 150327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 150427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 150527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 150627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 150727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 150827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 15092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 151027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 151127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 151227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 151327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 15142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 15152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 151627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 151727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 151817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 151917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 152017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 152117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 152227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialfv( 152327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 152427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 152527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 152627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 152727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 152827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 152927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 153027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 153127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 15322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 15332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 15342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 153527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 153627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 153727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */ 153827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 153927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialxv__II_3II 154027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) { 154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 15422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 15432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 154427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 154527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 154627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 154727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 154827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 154927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 15502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 15512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 155227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 155327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 155427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 15562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 15572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 155827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 155927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 156027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 156127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 156227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 156327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 156427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 156527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 156627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 156727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 156827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 156927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 157027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 157127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 157227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 157327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 157427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 157527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 157627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 157727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 157827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 157927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 158027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 15812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 158227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 158327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 158427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 158527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 15862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 15872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 158827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 158927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 159027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 159127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 159227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 159327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 159427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialxv( 159527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 159727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 159827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 159927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 160027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 160127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 160227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 160327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 160427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 16052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 16062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 16072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 160827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 160927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 161027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */ 161127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 161227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialxv__IILjava_nio_IntBuffer_2 161327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 161427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 16152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 16162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 161727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 161817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 161927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 162027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 162127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 162217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 162327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 162427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 162527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 162627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 162727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 162827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 162927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 163327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 163427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 163527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 163627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 163727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 163827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 163927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 164027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 164127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 164227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 16432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 164427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 164527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 164627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 164727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 16482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 165027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 165127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 165217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 165317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 165417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 165517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 165627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetMaterialxv( 165727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 165827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 165927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 166027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 166127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 166227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 166327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 166427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 166527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 16662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 16672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 16682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 166927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 167027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 167127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params ) */ 167227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 167327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvfv__II_3FI 167427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jfloatArray params_ref, jint offset) { 167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 16762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 16772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 167827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 167927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 168027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 168127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 168227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 168327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 16842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 168627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 168727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 168827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 168927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 16902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 169227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 169327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 169427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 169527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 169627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 169727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 169827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 170027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 170127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 170227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 17032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 170427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 170527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 17082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 171027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 171127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 171227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 171327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 171427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 171527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 171627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvfv( 171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 171827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 171927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 172027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 172127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 172227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 172327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 172427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 172527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 172627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 17272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 17282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 17292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 173027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 173127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 173227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params ) */ 173327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 173427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvfv__IILjava_nio_FloatBuffer_2 173527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { 173627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 17372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 17382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 173927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 174017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 174127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 174227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 174327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 174417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 174527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 174627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 174727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 174827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 174927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 175027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 17532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 175427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 175527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 175627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 175727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 17582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 176027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 176127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 176217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 176317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 176417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 176517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 176627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvfv( 176727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 176827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 177127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 177227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 177427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 177527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 17762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 17772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 17782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 177927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */ 178227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 178327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnviv__II_3II 178427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) { 178527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 17862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 17872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 178827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 178927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 179027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 179127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 179227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 179327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 17942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 179627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 179727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 179827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 179927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 18002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 180227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 180327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 180427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 180527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 180627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 180727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 180827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 180927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 181027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 181127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 181227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 18132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 181427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 181527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 181627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 181727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 18182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 182027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 182127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 182227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 182327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 182427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 182527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnviv( 182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 182927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 183027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 183127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 183227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 183327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 183427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 183527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 183627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 184027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 184127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 184227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */ 184327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 184427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnviv__IILjava_nio_IntBuffer_2 184527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { 184627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 18472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 18482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 185017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 185127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 185227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 185327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 185417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 185527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 185627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 185727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 185827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 185927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 186027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 186127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 186227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 18632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 186427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 186527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 186627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 186727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 18682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 187027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 187127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 187217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 187317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 187417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 187517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 187627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnviv( 187727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 187827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 187927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 188027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 188127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 188227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 188327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 188427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 188527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 188927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 189027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */ 189227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 189327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvxv__II_3II 189427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) { 189527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 18962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 18972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 189827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 189927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 190027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 190127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 190227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 190327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 19042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 190627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 190727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 190827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 190927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 19102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 191827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 191927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 192027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 192127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 192227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 19232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 192427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 192727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 19282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 193027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 193127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 193227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 193327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 193427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 193527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvxv( 193727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 193827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 193927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 194027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 194227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 194327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 194427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 194527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 194627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 19472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 19482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 19492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 195127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 195227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */ 195327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvxv__IILjava_nio_IntBuffer_2 195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) { 195627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 19572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 19582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 195927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 196017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 196127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 196227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 196417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 196527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 196627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 196727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 196827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 196927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 197027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 197127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 197227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 19732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 197427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 197527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 197627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 197727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 19782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 198027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 198127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 198217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 198317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 198417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 198517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 198627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexEnvxv( 198727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)env, 198827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 198927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 199027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 199127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 199227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 199327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 199427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 199527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 19962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 19972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 19982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 199927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 200027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 200127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */ 200227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 200327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterfv__II_3FI 200427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 200527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 20062ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 20072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 200927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 201027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 201127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 201227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 201327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 20142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 201627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 201727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 201827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 201927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 20202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 202227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 202327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 202427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 202527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 20272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 202927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 203027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 203127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 203227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 203327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 203427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 203527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterfv( 203627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 203727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 203827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 203927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 204127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 204227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 204327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 204427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 204527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 20472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 20482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 204927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 205027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 205127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */ 205227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 205327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 205427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 205527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 20562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 20572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 205917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 206027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 206127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 206227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 206317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 206427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 206527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 20662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 207017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 207117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 207217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 207317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 207427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterfv( 207527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 207627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 207727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 207827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 208127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 208227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 208327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 20852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 20862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 208727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 208827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 208927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 209027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 209127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameteriv__II_3II 209227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 209327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 20942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 20952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 209627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 209727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 209827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 209927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 210027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 210127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 21022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 210427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 210527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 210627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 210727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _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 if (_remaining < 1) { 211427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 21152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 211727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 211827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 211927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 212027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 212127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 212227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 212327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameteriv( 212427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 212527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 212627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 212727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 212827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 212927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 213027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 213127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 213227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 21342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 21352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 21362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 213927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 214027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 214127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameteriv__IILjava_nio_IntBuffer_2 214227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 214327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 21442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 21452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 214627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 214717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 214827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 214927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 215027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 215117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 215227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 215327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 21542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 215627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 215727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 215817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 215917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 216017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 216117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 216227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameteriv( 216327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 216427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 216527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 216627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 216727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 216927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 217027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 21722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 21732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 21742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 217527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 217627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 217727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */ 217827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 217927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterxv__II_3II 218027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 218127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 21822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 21832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 218427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 218527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 218627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 218727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 218827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 218927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 21902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 219227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 219327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 219427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 219527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 21962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 219827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 219927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 220027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 220127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 220227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 22032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 220527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 220627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 220727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 220827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 220927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 221027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 221127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterxv( 221227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 221827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 221927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 222027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 222127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 222527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 222627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 222727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */ 222827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 222927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterxv__IILjava_nio_IntBuffer_2 223027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 223127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 22322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 22332ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 223427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 223517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 223727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 223827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 223917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 224027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 224127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 22422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 224427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 224527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 224617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 224717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 224817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 224917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 225027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGetTexParameterxv( 225127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 225227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 225327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 225427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 225527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 225627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 225727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 225827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 225927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 226327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 226427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 226527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsBuffer ( GLuint buffer ) */ 226627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean 226727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsBuffer__I 226827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint buffer) { 226927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean _returnValue; 227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glIsBuffer( 227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)buffer 227227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 2273cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden return (jboolean)_returnValue; 227427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 227527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 227627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsEnabled ( GLenum cap ) */ 227727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean 227827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsEnabled__I 227927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 228027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean _returnValue; 228127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glIsEnabled( 228227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)cap 228327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 2284cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden return (jboolean)_returnValue; 228527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 228627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 228727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsTexture ( GLuint texture ) */ 228827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean 228927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsTexture__I 229027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 229127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLboolean _returnValue; 229227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glIsTexture( 229327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)texture 229427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 2295cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden return (jboolean)_returnValue; 229627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 229727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 229827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormalPointer ( GLenum type, GLsizei stride, GLint offset ) */ 229927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 230027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormalPointer__III 230127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint type, jint stride, jint offset) { 230227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormalPointer( 230327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 230427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 230501c26ea89d4bbea3cf550e9328742302dd9a2b25Ashok Bhat reinterpret_cast<GLvoid *>(offset) 230627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 230727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 230827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 230927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterf ( GLenum pname, GLfloat param ) */ 231027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 231127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterf__IF 231227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 231327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterf( 231427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 231527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 231627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 231727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */ 232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterfv__I_3FI 232227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 23232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 23242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 23252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 232627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 232727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 232827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 232927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 233027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 23312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 23322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 233427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 233527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 233627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 23372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 23382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 234027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 234127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 234227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 234327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 23442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 23452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 234727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 234827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 234927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 235027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 235127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 235227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 235327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterfv( 235427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 235927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 236027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 236127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 236227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 23632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 23642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 23652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 236627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 236727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 236827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */ 236927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 237027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterfv__ILjava_nio_FloatBuffer_2 237127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 23722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 23732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 23742ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 237527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 237617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 237727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 237827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 237927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 238017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 238127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 23822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 23832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 238527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 238627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 238717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 238817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 238917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 239017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 239127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterfv( 239227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 239327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 239427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 239527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 239627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 239727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 239827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 239927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 24002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 24012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 24022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 240327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 240427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 240527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterx ( GLenum pname, GLfixed param ) */ 240627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 240727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterx__II 240827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 240927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterx( 241027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 241127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 241227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 241327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 241427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 241527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */ 241627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 241727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxv__I_3II 241827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 24192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 24202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 24212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 242227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 242327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 242427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 242527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 242627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 24272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 243027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 243127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 243227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 24332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 243627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 243727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 243827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 243927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 24402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 244327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 244427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 244627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 244727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 244827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 244927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterxv( 245027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 245127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 245527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 245627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 245727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 245827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 24592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 24602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 24612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 246227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 246327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 246427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */ 246527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 246627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxv__ILjava_nio_IntBuffer_2 246727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 24682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 24692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 24702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 247127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 247217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 247327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 247427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 247527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 247617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 247727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 24782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 24792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 24802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 248127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 248227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 248317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 248417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 248517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 248617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 248727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointParameterxv( 248827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 248927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 249027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 249127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 249227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 249327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 249427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 249527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 24962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 24972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 24982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 249927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 250027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 250127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer ) */ 250227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 2503be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I 2504be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) { 250527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 250617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 250727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 250827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 250927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2510be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich if (pointer_buf) { 2511be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 2512be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich if ( ! pointer ) { 2513be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich return; 2514be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich } 2515be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich } 2516be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich glPointSizePointerOESBounds( 251727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 251827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 2519be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich (GLvoid *)pointer, 2520be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich (GLsizei)remaining 252127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 252227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 252327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 252427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ 252527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 252627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexCoordPointer__IIII 252727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) { 252827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexCoordPointer( 252927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 253027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 253127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 253201c26ea89d4bbea3cf550e9328742302dd9a2b25Ashok Bhat reinterpret_cast<GLvoid *>(offset) 253327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 253427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 253527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 253627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvi ( GLenum target, GLenum pname, GLint param ) */ 253727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 253827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvi__III 253927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 254027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvi( 254127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 254227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 254327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)param 254427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 254527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 254627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 254727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */ 254827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 254927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnviv__II_3II 255027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 25512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 25522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 25532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 255427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 255527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 255627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 255727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 255827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 25592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 25602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 25612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 256227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 256327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 256427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 25652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 25662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 25672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 256827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 256927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 257027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 257127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 257227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 257327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 257427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 257527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 257627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 257727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 257827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 25792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 258027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 258127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 258227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 25832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 25842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 25852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 258627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 258727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 258827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 258927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 259027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 259127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 259227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnviv( 259327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 259427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 259527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 259627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 259727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 259827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 259927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 260027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 260127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 260227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 26032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 26042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 26052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 260627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 260727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 260827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */ 260927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 261027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnviv__IILjava_nio_IntBuffer_2 261127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 26122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 26132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 26142ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 261527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 261617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 261727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 261827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 261927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 262017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 262127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 262227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 262327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 262427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 262527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 262627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 262727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 262827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 26292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 263027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 263127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 263227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 26332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 26342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 26352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 263627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 263727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 263817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 263917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 264017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 264117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 264227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnviv( 264327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 264427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 264527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 264627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 264727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 264827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 264927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 265027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 265127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 26522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 26532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 26542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 265527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 265627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 265727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 265827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 265927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterfv__II_3FI 266027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 26612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 26622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 26632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 266427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 266527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 266627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 266727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 266827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 26692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 26702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 26712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 267227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 267327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 267427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 26752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 26762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 26772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 267827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 267927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 268027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 268127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 26822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 26832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 26842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 268527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 268627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 268727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 268827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 268927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 269027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 269127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterfv( 269227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 269327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 269427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 269527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 269627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 269727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 269827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 269927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 270027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 270127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 27022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 27032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 27042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 270527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 270627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 270727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 270827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 270927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterfv__IILjava_nio_FloatBuffer_2 271027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 27112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 27122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 27132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 271427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 271517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 271627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 271727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 271827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 271917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 272027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 27212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 272427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 272527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 272617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 272717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 272817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 272917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 273027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterfv( 273127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 273227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 273327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 273427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 273527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 273627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 273727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 273827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 273927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 27402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 27412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 27422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 274327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 274427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 274527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */ 274627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 274727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteri__III 274827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 274927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameteri( 275027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 275127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 275227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)param 275327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 275427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 275527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 275627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */ 275727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 275827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteriv__II_3II 275927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 27602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 27612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 27622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 276327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params_base = (GLint *) 0; 276427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 276527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 276627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 276727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 27682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 277127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 277227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 277327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 27742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 277727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 277827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 277927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 278027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 27812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 278427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 278527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 278627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLint *) 278727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 278827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 278927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 279027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameteriv( 279127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 279227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 279327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 279427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 279527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 279627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 279727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 279827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 279927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 280027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 28012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 28022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 28032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 280427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 280527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 280627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */ 280727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 280827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteriv__IILjava_nio_IntBuffer_2 280927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 28102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 28112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 28122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 281327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 281417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 281527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 281627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLint *params = (GLint *) 0; 281727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 281817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 281927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 28202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 282327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 282427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 282517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 282617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 282717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLint *) (_paramsBase + _bufferOffset); 282817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 282927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameteriv( 283027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 283127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 283227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint *)params 283327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 283427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 283527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 283627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 283727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 283827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 28392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 28402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 28412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 284227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 284327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 284427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 284527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 284627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxv__II_3II 284727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 28482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 28492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 28502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 285127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 285227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 285327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 285427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 285527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 28562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 285927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 286027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 286127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 28622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 286527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 286627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 286727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 286827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 28692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < 1 < needed"; 287227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 287327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 287427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 287527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 287627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 287727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 287827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterxv( 287927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 288027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 288127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 288227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 288327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 288427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 288527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 288627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 288727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 288827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 28892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 28902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 28912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 289227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 289327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 289427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 289527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 289627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxv__IILjava_nio_IntBuffer_2 289727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 28982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 28992ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 29002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 290127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 290217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 290327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 290427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 290527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 290617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 290727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < 1) { 29082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 29092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 29102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < 1 < needed"; 291127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 291227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 291317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 291417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 291517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 291617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 291727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterxv( 291827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 291927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 292027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 292127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 292227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 292327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 292427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 292527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 292627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 29272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 29282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 29292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 293027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 293127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 293227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */ 293327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 293427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glVertexPointer__IIII 293527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) { 293627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glVertexPointer( 293727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 293827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 293927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 294001c26ea89d4bbea3cf550e9328742302dd9a2b25Ashok Bhat reinterpret_cast<GLvoid *>(offset) 294127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 294227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 294327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 294427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES11"; 294527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 294627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic JNINativeMethod methods[] = { 294727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit }, 294827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II }, 294927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I }, 295027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 }, 295127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanef", "(I[FI)V", (void *) android_glClipPlanef__I_3FI }, 295227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanef__ILjava_nio_FloatBuffer_2 }, 295327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanex", "(I[II)V", (void *) android_glClipPlanex__I_3II }, 295427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanex__ILjava_nio_IntBuffer_2 }, 295527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4ub", "(BBBB)V", (void *) android_glColor4ub__BBBB }, 295627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorPointer", "(IIII)V", (void *) android_glColorPointer__IIII }, 295727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II }, 295827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 }, 295927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII }, 296027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II }, 296127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 }, 296227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI }, 296327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 }, 296427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II }, 296527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 }, 296627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanef", "(I[FI)V", (void *) android_glGetClipPlanef__I_3FI }, 296727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 }, 296827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanex", "(I[II)V", (void *) android_glGetClipPlanex__I_3II }, 296927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanex__ILjava_nio_IntBuffer_2 }, 297027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFixedv", "(I[II)V", (void *) android_glGetFixedv__I_3II }, 297127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFixedv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedv__ILjava_nio_IntBuffer_2 }, 297227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI }, 297327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 }, 297427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightfv", "(II[FI)V", (void *) android_glGetLightfv__II_3FI }, 297527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetLightfv__IILjava_nio_FloatBuffer_2 }, 297627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightxv", "(II[II)V", (void *) android_glGetLightxv__II_3II }, 297727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxv__IILjava_nio_IntBuffer_2 }, 297827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialfv", "(II[FI)V", (void *) android_glGetMaterialfv__II_3FI }, 297927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 }, 298027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialxv", "(II[II)V", (void *) android_glGetMaterialxv__II_3II }, 298127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxv__IILjava_nio_IntBuffer_2 }, 298227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvfv", "(II[FI)V", (void *) android_glGetTexEnvfv__II_3FI }, 298327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexEnvfv__IILjava_nio_FloatBuffer_2 }, 298427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnviv", "(II[II)V", (void *) android_glGetTexEnviv__II_3II }, 298527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnviv__IILjava_nio_IntBuffer_2 }, 298627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvxv", "(II[II)V", (void *) android_glGetTexEnvxv__II_3II }, 298727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 }, 298827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI }, 298927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 }, 299027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II }, 299127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 }, 299227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterxv", "(II[II)V", (void *) android_glGetTexParameterxv__II_3II }, 299327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 }, 299427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I }, 299527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I }, 299627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsTexture", "(I)Z", (void *) android_glIsTexture__I }, 299727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormalPointer", "(III)V", (void *) android_glNormalPointer__III }, 299827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterf", "(IF)V", (void *) android_glPointParameterf__IF }, 299927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterfv", "(I[FI)V", (void *) android_glPointParameterfv__I_3FI }, 300027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glPointParameterfv__ILjava_nio_FloatBuffer_2 }, 300127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterx", "(II)V", (void *) android_glPointParameterx__II }, 300227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxv", "(I[II)V", (void *) android_glPointParameterxv__I_3II }, 300327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxv__ILjava_nio_IntBuffer_2 }, 3004be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glPointSizePointerOESBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I }, 300527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexCoordPointer", "(IIII)V", (void *) android_glTexCoordPointer__IIII }, 300627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvi", "(III)V", (void *) android_glTexEnvi__III }, 300727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnviv", "(II[II)V", (void *) android_glTexEnviv__II_3II }, 300827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnviv__IILjava_nio_IntBuffer_2 }, 300927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI }, 301027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 }, 301127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III }, 301227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II }, 301327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 }, 301427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxv", "(II[II)V", (void *) android_glTexParameterxv__II_3II }, 301527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxv__IILjava_nio_IntBuffer_2 }, 301627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glVertexPointer", "(IIII)V", (void *) android_glVertexPointer__IIII }, 301727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}; 301827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 301927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES11(JNIEnv *_env) 302027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 302127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int err; 302227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods)); 302327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return err; 302427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 3025