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 2324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "jni.h" 2424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "JNIHelp.h" 2527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <android_runtime/AndroidRuntime.h> 2627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <utils/misc.h> 2727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <assert.h> 282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic int initialized = 0; 302ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 312ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jclass nioAccessClass; 322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jclass bufferClass; 332ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jmethodID getBasePointerID; 342ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jmethodID getBaseArrayID; 352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jmethodID getBaseArrayOffsetID; 362ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jfieldID positionID; 372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jfieldID limitID; 382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jfieldID elementSizeShiftID; 392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 4027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 418331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian/* special calls implemented in Android's GLES wrapper used to more 428331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian * efficiently bound-check passed arrays */ 438331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopianextern "C" { 442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_VERSION_ES_CM_1_1 458331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride, 468331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian const GLvoid *ptr, GLsizei count); 478331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride, 488331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian const GLvoid *pointer, GLsizei count); 498331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type, 508331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian GLsizei stride, const GLvoid *pointer, GLsizei count); 518331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type, 528331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias 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 728331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian} 7327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 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; 11427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return (void *) (jint) 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 13216e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevichstatic void * 13316e7972f0d986eebf846ea8feb50f4435a9c6970Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) { 13416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich char* buf = (char*) _env->GetDirectBufferAddress(buffer); 13516e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich if (buf) { 13616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich jint position = _env->GetIntField(buffer, positionID); 13716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 13816e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich buf += position << elementSizeShift; 13916e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich } else { 14024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jniThrowException(_env, "java/lang/IllegalArgumentException", 14124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes "Must use a native order direct Buffer"); 14216e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich } 14316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich return (void*) buf; 14416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich} 14516e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich 1462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian// -------------------------------------------------------------------------- 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 } 324be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich} 325be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich 32627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// -------------------------------------------------------------------------- 32727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glActiveTexture ( GLenum texture ) */ 32827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 32927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glActiveTexture__I 33027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 33127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glActiveTexture( 33227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)texture 33327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 33427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 33527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 33627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFunc ( GLenum func, GLclampf ref ) */ 33727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 33827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFunc__IF 33927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func, jfloat ref) { 34027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glAlphaFunc( 34127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func, 34227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)ref 34327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 34427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 34527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 34627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */ 34727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 34827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFuncx__II 34927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func, jint ref) { 35027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glAlphaFuncx( 35127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func, 35227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)ref 35327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 35427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 35527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 35627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindTexture ( GLenum target, GLuint texture ) */ 35727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 35827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindTexture__II 35927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint texture) { 36027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBindTexture( 36127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 36227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)texture 36327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 36427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 36527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 36627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */ 36727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 36827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBlendFunc__II 36927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) { 37027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBlendFunc( 37127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)sfactor, 37227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)dfactor 37327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 37427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 37527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 37627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClear ( GLbitfield mask ) */ 37727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 37827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClear__I 37927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mask) { 38027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClear( 38127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLbitfield)mask 38227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 38327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 38427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 38527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */ 38627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 38727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColor__FFFF 38827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 38927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearColor( 39027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)red, 39127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)green, 39227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)blue, 39327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)alpha 39427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 39527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 39627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 39727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */ 39827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 39927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColorx__IIII 40027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) { 40127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearColorx( 40227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)red, 40327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)green, 40427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)blue, 40527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)alpha 40627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 40727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 40827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 40927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthf ( GLclampf depth ) */ 41027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 41127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthf__F 41227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat depth) { 41327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearDepthf( 41427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)depth 41527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 41627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 41727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 41827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthx ( GLclampx depth ) */ 41927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 42027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthx__I 42127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint depth) { 42227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearDepthx( 42327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)depth 42427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 42527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 42627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 42727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearStencil ( GLint s ) */ 42827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 42927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearStencil__I 43027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint s) { 43127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearStencil( 43227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)s 43327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 43427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 43527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 43627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClientActiveTexture ( GLenum texture ) */ 43727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 43827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClientActiveTexture__I 43927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 44027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClientActiveTexture( 44127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)texture 44227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 44327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 44427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 44527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */ 44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4f__FFFF 44827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 44927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColor4f( 45027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)red, 45127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)green, 45227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)blue, 45327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)alpha 45427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 45527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 45627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 45727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */ 45827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 45927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4x__IIII 46027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) { 46127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColor4x( 46227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)red, 46327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)green, 46427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)blue, 46527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)alpha 46627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 46827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */ 47027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 47127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorMask__ZZZZ 47227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) { 47327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColorMask( 47427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)red, 47527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)green, 47627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)blue, 47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)alpha 47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 47927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 48027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 48127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 48227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 48327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorPointerBounds__IIILjava_nio_Buffer_2I 48427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 48527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 48617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 48727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 48827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 48927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 490e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 49116e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 492e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 493e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 494e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 495e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColorPointerBounds( 49727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 49827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 50127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 50227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 50327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 50427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */ 50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 50727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 50827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) { 50927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 51017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 51127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 51417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 51517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 51617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 51717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 51817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 51927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCompressedTexImage2D( 52027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 52127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 52227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)internalformat, 52327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 52427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 52527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)border, 52627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)imageSize, 52727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data 52827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 52927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 53027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 53127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 53227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 53327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 53427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */ 53527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 53627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 53727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) { 53827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 53917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 54027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 54127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 54227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 54317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 54417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 54517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 54617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 54717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 54827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCompressedTexSubImage2D( 54927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)xoffset, 55227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)yoffset, 55327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 55427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 55527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 55627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)imageSize, 55727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data 55827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 55927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 56027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 56127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 56227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 56327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 56427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */ 56527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 56627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexImage2D__IIIIIIII 56727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) { 56827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCopyTexImage2D( 56927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 57027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 57127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)internalformat, 57227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 57327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 57427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 57527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 57627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)border 57727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 57827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 57927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 58027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */ 58127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 58227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexSubImage2D__IIIIIIII 58327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) { 58427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCopyTexSubImage2D( 58527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 58627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)xoffset, 58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)yoffset, 58927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 59027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 59127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 59227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height 59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 59427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 59527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 59627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCullFace ( GLenum mode ) */ 59727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 59827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCullFace__I 59927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 60027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCullFace( 60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 60227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 60327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 60427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 60527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__I_3II 60827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 6092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 6102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 6112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 61227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures_base = (GLuint *) 0; 61327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 61627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!textures_ref) { 6172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "textures == null"; 62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 62227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 6232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 62627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(textures_ref) - offset; 62927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 6302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures_base = (GLuint *) 63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures = textures_base + offset; 63827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 63927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteTextures( 64027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 64127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 64227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 64327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 64427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 64527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (textures_base) { 64627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 64727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 64827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 6492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 65227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 65327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 65427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 65527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 65627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__ILjava_nio_IntBuffer_2 65727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 6582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 6592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 6602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 66127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 66217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 66327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 66427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 66527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 66617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); 66727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 6682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 67127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 67227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 67317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (textures == NULL) { 67417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 67517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *) (_texturesBase + _bufferOffset); 67617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 67727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteTextures( 67827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 67927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 68027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 68127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 68227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 68327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 68427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, textures, JNI_FALSE); 68527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 6862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 68927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 69027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 69127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthFunc ( GLenum func ) */ 69227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 69327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthFunc__I 69427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func) { 69527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthFunc( 69627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func 69727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 69827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 69927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 70027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthMask ( GLboolean flag ) */ 70127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 70227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthMask__Z 70327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jboolean flag) { 70427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthMask( 70527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)flag 70627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 70727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 70827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 70927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */ 71027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 71127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangef__FF 71227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) { 71327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthRangef( 71427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)zNear, 71527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)zFar 71627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 71727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 71827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 71927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */ 72027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 72127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangex__II 72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint zNear, jint zFar) { 72327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthRangex( 72427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)zNear, 72527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)zFar 72627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 72727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 72827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 72927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisable ( GLenum cap ) */ 73027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 73127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisable__I 73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 73327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDisable( 73427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)cap 73527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 73627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 73727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 73827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisableClientState ( GLenum array ) */ 73927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisableClientState__I 74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint array) { 74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDisableClientState( 74327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)array 74427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 74527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 74627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 74727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */ 74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawArrays__III 75027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) { 75127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDrawArrays( 75227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode, 75327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)first, 75427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)count 75527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 75627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 75727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 75827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */ 75927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 76027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawElements__IIILjava_nio_Buffer_2 76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) { 7622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 7632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 7642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 76527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 76617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 76727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *indices = (GLvoid *) 0; 76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 77017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset); 77127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < count) { 7722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 7732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/ArrayIndexOutOfBoundsException"; 7742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < count < needed"; 77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 77627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 77717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (indices == NULL) { 77817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 77917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer indices = (GLvoid *) (_indicesBase + _bufferOffset); 78017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDrawElements( 78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode, 78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)count, 78427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 78527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)indices 78627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 78727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, indices, JNI_FALSE); 79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 7922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 7932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 7942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 79527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 79627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 79727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnable ( GLenum cap ) */ 79827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 79927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnable__I 80027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 80127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glEnable( 80227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)cap 80327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 80427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 80527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 80627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnableClientState ( GLenum array ) */ 80727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 80827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnableClientState__I 80927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint array) { 81027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glEnableClientState( 81127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)array 81227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 81327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 81427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 81527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFinish ( void ) */ 81627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 81727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFinish__ 81827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 81927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFinish(); 82027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 82127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 82227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFlush ( void ) */ 82327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 82427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFlush__ 82527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 82627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFlush(); 82727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 82827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 82927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogf ( GLenum pname, GLfloat param ) */ 83027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 83127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogf__IF 83227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 83327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogf( 83427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 83527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 83627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 83727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 83827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */ 84027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 84127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__I_3FI 84227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 8432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 8442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 8452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 84627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 84727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 84827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 84927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 85027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 8512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 85427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 85527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 85627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 8572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 86027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 86127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 86227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 86327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 86427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 86527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 86627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 86727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 86827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 86927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 87027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 8712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 87227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 87327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 87427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 8752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 87827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 87927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 88027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 88127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 88227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 88327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 88427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogfv( 88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 88727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 88827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 88927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 89027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 89127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 89227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 89327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 8942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 8952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 8962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 89727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 89827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 89927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */ 90027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 90127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__ILjava_nio_FloatBuffer_2 90227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 9032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 9042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 9052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 90627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 90717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 90827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 90927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 91027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 91117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 91227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 91327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 91427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 91527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 91627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 91727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 91827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 91927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 9202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 92127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 92227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 92327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 9242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 9252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 92727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 92827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 92917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 93017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 93117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 93217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 93327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogfv( 93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 93527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 93627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 93727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 93827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 93927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 94027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 94127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 9422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 9432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 9442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 94527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 94627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 94727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogx ( GLenum pname, GLfixed param ) */ 94827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 94927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogx__II 95027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 95127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogx( 95227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 95327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 95427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 95527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 95627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 95727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */ 95827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 95927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__I_3II 96027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 9612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 9622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 9632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 96427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 96527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 96627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 96727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 96827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 9692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 9702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 97227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 97327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 97427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 9752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 9762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 97827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 97927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 98027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 98127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 98227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 98327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 98427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 98627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 98727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 98827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 9892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 99027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 99127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 99227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 9932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 9942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 99627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 99727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 99827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 99927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 100027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 100127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 100227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogxv( 100327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 100427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 100527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 100627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 100727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 100827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 100927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 101027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 101127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 10122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 10132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 10142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 101527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 101627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 101727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */ 101827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 101927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__ILjava_nio_IntBuffer_2 102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 10212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 10222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 10232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 102427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 102517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 102627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 102727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 102827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 102917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 103027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 103127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 103227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 103327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 103427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 103527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 103627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 103727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 10382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 103927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 104027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 104127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 10422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 10432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 104527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 104627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 104717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 104817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 104917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 105017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 105127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogxv( 105227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 105327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 105427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 105527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 105627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 105727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 105827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 105927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 10602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 10612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 10622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 106327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 106427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 106527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrontFace ( GLenum mode ) */ 106627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 106727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrontFace__I 106827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 106927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFrontFace( 107027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 107127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 107227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 107327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 107427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */ 107527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 107627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumf__FFFFFF 107727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) { 107827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFrustumf( 107927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)left, 108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)right, 108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)bottom, 108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)top, 108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zNear, 108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zFar 108527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 108627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 108727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 108827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */ 108927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 109027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumx__IIIIII 109127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) { 109227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFrustumx( 109327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)left, 109427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)right, 109527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)bottom, 109627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)top, 109727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zNear, 109827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zFar 109927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 110027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 110127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 110227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */ 110327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 110427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__I_3II 110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 11072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 11082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 110927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures_base = (GLuint *) 0; 111027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 111127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 111227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 111327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!textures_ref) { 111427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "textures == null"; 111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 111827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 112327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 112427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 112527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(textures_ref) - offset; 112627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 112727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 113027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 113127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 113227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures_base = (GLuint *) 113327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 113427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures = textures_base + offset; 113527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 113627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenTextures( 113727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 113827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 113927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 114027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 114127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 114227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (textures_base) { 114327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 114427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 114527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 11462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 11472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 11482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 114927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 115027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 115127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */ 115227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 115327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__ILjava_nio_IntBuffer_2 115427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 115527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 11562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 11572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 115827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 115917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 116027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 116127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 116227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 116317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); 116427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 116527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 117017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (textures == NULL) { 117117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 117217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *) (_texturesBase + _bufferOffset); 117317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 117427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenTextures( 117527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 117627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 117727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 117827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 117927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 118027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 118127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE); 118227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 11832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 11842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 11852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 118627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 118727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 118827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLenum glGetError ( void ) */ 118927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jint 119027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetError__ 119127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 119227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLenum _returnValue; 119327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glGetError(); 1194cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden return (jint)_returnValue; 119527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 119627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 119727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */ 119827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 119927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__I_3II 120027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 12012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian get<jintArray, GLint, glGetIntegerv>(_env, _this, pname, params_ref, offset); 120227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */ 120527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 120627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__ILjava_nio_IntBuffer_2 120727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 12082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian getarray<GLint, glGetIntegerv>(_env, _this, pname, params_buf); 120927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 121027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 121127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* const GLubyte * glGetString ( GLenum name ) */ 121224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetString(JNIEnv* _env, jobject, jint name) { 121324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes const char* chars = (const char*) glGetString((GLenum) name); 121424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes return _env->NewStringUTF(chars); 121527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 121627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glHint ( GLenum target, GLenum mode ) */ 121727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 121827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glHint__II 121927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint mode) { 122027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glHint( 122127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 122227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 122327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 122427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 122527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 122627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelf ( GLenum pname, GLfloat param ) */ 122727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 122827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelf__IF 122927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 123027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelf( 123127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 123227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 123327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 123427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 123527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 123627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */ 123727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 123827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__I_3FI 123927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 12402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 12412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 12422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 124327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 124427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 124527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 124627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 124727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 12482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 12492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 125227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 125327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 12542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 12552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 125727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 125827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 125927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 126027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 126127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 126227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 126327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 126427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 126527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 126627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 126727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 12682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 127027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 127127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 12722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 12732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 127527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 127627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 127727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 127827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 127927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 128027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 128127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelfv( 128227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 128327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 128427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 128527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 128627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 128727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 128827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 128927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 129027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 12912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 12922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 12932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 129427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 129527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 129627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */ 129727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 129827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__ILjava_nio_FloatBuffer_2 129927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 13002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 13012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 13022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 130327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 130417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 130527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 130627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 130727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 130817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 130927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 131027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 131127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 131227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 131327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 131427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 131527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 131627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 13172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 131927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 132027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 13212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 13222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 132427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 132527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 132617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 132717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 132817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 132917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 133027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelfv( 133127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 133227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 133327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 133427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 133527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 133627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 133727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 133827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 13392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 13402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 13412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 134327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 134427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelx ( GLenum pname, GLfixed param ) */ 134527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 134627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelx__II 134727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 134827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelx( 134927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 135027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 135127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 135227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 135327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 135427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */ 135527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 135627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__I_3II 135727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 13582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 13592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 13602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 136127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 136227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 136327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 136427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 136527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 13662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 13672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 136927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 137027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 137127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 13722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 13732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 137527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 137627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 137727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 137827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 137927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 138027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 138127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 138327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 138427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 138527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 13862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 138727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 138827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 138927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 13902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 13912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 139327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 139427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 139527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 139627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 139727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 139827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 139927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelxv( 140027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 140127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 140227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 140327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 140427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 140527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 140627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 140727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 140827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 14092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 14102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 14112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 141227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 141327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 141427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */ 141527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 141627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__ILjava_nio_IntBuffer_2 141727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 14182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 14192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 14202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 142127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 142217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 142327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 142427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 142527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 142617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 142727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 142827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 142927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 143027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 143127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 143227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 143327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 143427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 14352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 143627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 143727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 143827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 14392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 14402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 144227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 144327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 144417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 144517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 144617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 144717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 144827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelxv( 144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 145027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 145127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 145227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 145327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 145427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 145527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 145627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 14572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 14582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 14592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 146027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 146127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 146227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */ 146327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 146427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightf__IIF 146527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) { 146627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightf( 146727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 146827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 146927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 147027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 147127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 147227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 147327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */ 147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__II_3FI 147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) { 14772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 14782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 14792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 148027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 148127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 148227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 148327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 148427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 14852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 14862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 148827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 148927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 149027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 14912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 14922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 149427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 149527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 149627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 149727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 149827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 149927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 150027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 150127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 150227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 150327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 150427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 150527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 150627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 150727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 150827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 150927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 151027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 151127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 151227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 151327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 151427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 151527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 151627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 151727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 151827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 15192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 152027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 152127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 152227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 15232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 15242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 15252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 152627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 152727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 152827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 152927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 153027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 153127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 153227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightfv( 153327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 153427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 153527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 153627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 153727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 153827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 153927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 154027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 154227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 15432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 15442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 15452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 154627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 154727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 154827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */ 154927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 155027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__IILjava_nio_FloatBuffer_2 155127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 15522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 15532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 15542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 155617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 155727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 155827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 155927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 156017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 156127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 156227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 156327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 156427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 156527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 156627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 156727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 156827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 156927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 157027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 157127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 157227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 157327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 157427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 157527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 157627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 157727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 157827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 157927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 158027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 158127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 158227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 15832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 158427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 158527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 158627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 15872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 15882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 15892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 159027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 159127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 159217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 159317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 159417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 159517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightfv( 159727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 159827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 159927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 160027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 160127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 160227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 160327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 160427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 160527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 16062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 16072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 16082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 160927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 161027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 161127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */ 161227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 161327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightx__III 161427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) { 161527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightx( 161627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 161727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 161827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 161927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 162027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 162127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 162227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */ 162327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 162427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__II_3II 162527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) { 16262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 16272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 16282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 162927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 163327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 16342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 16352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 163727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 163827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 163927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 16402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 16412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 164327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 164427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 164527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 164627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 164727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 164827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 164927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 165027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 165127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 165227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 165327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 165427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 165527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 165627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 165727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 165827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 165927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 166027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 166127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 166227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 166327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 166427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 166527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 166627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 166727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 16682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 166927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 167027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 167127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 16722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 16732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 167627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 167727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 167827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 167927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 168027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 168127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightxv( 168227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 168327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 168427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 168527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 168627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 168727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 168827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 168927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 169027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 169127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 16922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 16932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 16942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 169527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 169627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 169727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */ 169827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__IILjava_nio_IntBuffer_2 170027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 17012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 17022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 17032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 170427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 170517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 170827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 170917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 171027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 171127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 171227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 171327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 171427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 171527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 171627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 171827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 171927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 172027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 172127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 172227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 172327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 172427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 172527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 172627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 172727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 172827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 172927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 173027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 173127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 17322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 173327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 173427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 173527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 17362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 17372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 173927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 174027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 174117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 174217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 174317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 174417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 174527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightxv( 174627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 174727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 174827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 174927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 175027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 175327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 175427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 17552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 17562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 17572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 175827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 175927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 176027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidth ( GLfloat width ) */ 176127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 176227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidth__F 176327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat width) { 176427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLineWidth( 176527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)width 176627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 176727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 176827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidthx ( GLfixed width ) */ 177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 177127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidthx__I 177227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint width) { 177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLineWidthx( 177427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)width 177527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 177627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 177727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 177827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadIdentity ( void ) */ 177927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadIdentity__ 178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 178227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadIdentity(); 178327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 178427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 178527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */ 178627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 178727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf___3FI 178827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) { 17892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 17902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 17912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 179227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m_base = (GLfloat *) 0; 179327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 179427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 179527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 179627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 17972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 17982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 180027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 180127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 180227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 18032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 18042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 180627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 180727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 180827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 180927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfloat *) 181027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 181127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 181227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 181327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixf( 181427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 181527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 181627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 181727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 181827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 181927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 182027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 182127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 182527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */ 182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 182927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf__Ljava_nio_FloatBuffer_2 183027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 183127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 183217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 183327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 183427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 183527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 183617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 183717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 183817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 183917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *) (_mBase + _bufferOffset); 184017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 184127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixf( 184227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 184327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 184427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 184527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 184627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 184727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 184827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */ 185027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 185127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx___3II 185227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) { 18532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 18542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 18552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 185627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m_base = (GLfixed *) 0; 185727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 185827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 185927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 186027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 18612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 18622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 186427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 186527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 186627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 18672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 18682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 187027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 187127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 187227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 187327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfixed *) 187427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 187527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 187627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 187727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixx( 187827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 187927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 188027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 188127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 188227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 188327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 188427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 188527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 188927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 189027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */ 189227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 189327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx__Ljava_nio_IntBuffer_2 189427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 189527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 189617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 189727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 189827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 189927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 190017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 190117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 190217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 190317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *) (_mBase + _bufferOffset); 190417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 190527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixx( 190627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 190727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 190827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 190927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 191027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 191127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLogicOp ( GLenum opcode ) */ 191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLogicOp__I 191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint opcode) { 191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLogicOp( 191827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)opcode 191927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 192027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 192127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 192227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */ 192327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 192427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialf__IIF 192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) { 192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialf( 192727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 192827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 192927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 193027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 193127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 193227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 193327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */ 193427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 193527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__II_3FI 193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) { 19372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 19382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 19392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 194027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 194227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 194327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 194427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 19452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 19462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 194827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 194927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 19512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 19522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 195627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 195727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 195827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 195927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 196027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 196127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 196227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 196427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 196527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 196627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 196727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 196827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 196927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 197027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 197127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 197227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 197327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 197427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 197527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 197627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 19772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 197827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 197927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 198027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 19812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 19822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 198427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 198527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 198627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 198727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 198827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 198927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 199027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialfv( 199127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 199227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 199327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 199427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 199527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 199627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 199727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 199827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 199927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 200027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 20022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 20032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 200427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 200527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 200627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */ 200727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__IILjava_nio_FloatBuffer_2 200927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 20102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 20112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 20122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 201327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 201417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 201527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 201627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 201727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 201817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 201927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 202027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 202127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 202227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 202327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 202427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 202527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 202727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 202827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 202927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 203027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 203127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 203227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 203327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 203427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 203527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 203627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 203727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 203827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 20392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 204127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 204227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 20432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 20442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 204627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 204727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 204817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 204917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 205017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 205117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 205227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialfv( 205327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 205427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 205527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 205627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 205727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 205927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 206027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 206127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 20632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 20642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 206527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 206627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 206727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */ 206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialx__III 207027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) { 207127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialx( 207227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 207327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 207427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 207527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 207627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 207727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 207827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */ 207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__II_3II 208127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) { 20822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 20832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 20842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 208527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 208627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 208727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 208827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 208927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 20902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 20912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 209327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 209427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 209527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 20962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 20972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 209927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 210027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 210127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 210227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 210327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 210427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 210527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 210627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 210727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 210827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 210927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 211027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 211127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 211227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 211327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 211427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 211527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 211627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 211727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 211827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 211927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 212027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 212127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 21222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 212327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 212427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 212527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 21262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 21272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 212927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 213027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 213127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 213227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 213427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 213527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialxv( 213627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 213927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 214027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 214127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 214227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 214327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 214427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 214527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 21462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 21472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 21482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 214927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 215027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 215127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */ 215227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 215327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__IILjava_nio_IntBuffer_2 215427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 21552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 21562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 21572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 215827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 215917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 216027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 216127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 216227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 216317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 216427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 216527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 216627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 216727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 216927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 217027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 217227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 217327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 217427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 217527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 217627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 217727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 217827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 217927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 218027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 218127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 218227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 218327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 21842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 218527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 218627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 218727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 21882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 21892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 219127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 219227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 219317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 219417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 219517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 219617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 219727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialxv( 219827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 219927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 220027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 220127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 220227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 220327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 220427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 220527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 220627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 221027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 221127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 221227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMatrixMode ( GLenum mode ) */ 221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMatrixMode__I 221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMatrixMode( 221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 221827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 221927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 222027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 222127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */ 222227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 222327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf___3FI 222427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) { 22252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 22262ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 22272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 222827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m_base = (GLfloat *) 0; 222927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 223027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 223127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 223227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 22332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 22342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 223727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 223827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 22392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 22402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 224227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 224327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 224427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 224527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfloat *) 224627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 224727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 224827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 224927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixf( 225027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 225127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 225227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 225327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 225427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 225527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 225627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 225727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 226127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 226227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 226327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */ 226427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 226527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf__Ljava_nio_FloatBuffer_2 226627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 226727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 226817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 226927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 227217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 227317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 227417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 227517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *) (_mBase + _bufferOffset); 227617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 227727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixf( 227827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 227927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 228027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 228127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 228227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 228327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 228427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 228527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */ 228627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 228727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx___3II 228827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) { 22892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 22902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 22912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 229227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m_base = (GLfixed *) 0; 229327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 229427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 229527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 229627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 22972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 22982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 230027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 230127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 230227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 23032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 23042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 23052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 230627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 230727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 230827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 230927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfixed *) 231027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 231127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 231227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 231327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixx( 231427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 231527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 231627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 231727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 23222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 23232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 23242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 232527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 232627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 232727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */ 232827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 232927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx__Ljava_nio_IntBuffer_2 233027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 233127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 233217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 233327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 233427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 233527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 233617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 233717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 233817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 233917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *) (_mBase + _bufferOffset); 234017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 234127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixx( 234227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 234327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 234427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 234527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 234627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 234727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 234827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 234927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */ 235027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 235127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4f__IFFFF 235227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) { 235327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultiTexCoord4f( 235427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)s, 235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)t, 235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)r, 235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)q 235927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 236027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 236127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 236227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */ 236327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 236427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4x__IIIII 236527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) { 236627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultiTexCoord4x( 236727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 236827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)s, 236927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)t, 237027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)r, 237127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)q 237227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 237327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 237427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 237527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */ 237627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 237727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3f__FFF 237827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) { 237927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormal3f( 238027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)nx, 238127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)ny, 238227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)nz 238327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 238427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 238527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 238627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */ 238727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 238827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3x__III 238927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) { 239027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormal3x( 239127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)nx, 239227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)ny, 239327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)nz 239427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 239527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 239627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 239727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */ 239827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 239927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormalPointerBounds__IILjava_nio_Buffer_2I 240027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) { 240127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 240217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 240327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 240427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 240527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2406e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 240716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 2408e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 2409e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 2410e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 2411e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 241227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormalPointerBounds( 241327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 241427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 241527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 241627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 241727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 241827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 241927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 242027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */ 242127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 242227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthof__FFFFFF 242327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) { 242427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glOrthof( 242527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)left, 242627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)right, 242727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)bottom, 242827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)top, 242927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zNear, 243027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zFar 243127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 243227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 243327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 243427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */ 243527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 243627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthox__IIIIII 243727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) { 243827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glOrthox( 243927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)left, 244027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)right, 244127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)bottom, 244227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)top, 244327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zNear, 244427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zFar 244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 244627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 244727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 244827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPixelStorei ( GLenum pname, GLint param ) */ 244927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 245027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPixelStorei__II 245127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPixelStorei( 245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)param 245527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 245627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 245727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 245827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSize ( GLfloat size ) */ 245927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 246027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSize__F 246127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat size) { 246227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointSize( 246327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)size 246427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 246527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 246627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 246727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizex ( GLfixed size ) */ 246827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 246927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSizex__I 247027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size) { 247127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointSizex( 247227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)size 247327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 247427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 247527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 247627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */ 247727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 247827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffset__FF 247927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) { 248027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPolygonOffset( 248127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)factor, 248227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)units 248327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 248427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 248527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 248627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */ 248727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 248827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffsetx__II 248927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint factor, jint units) { 249027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPolygonOffsetx( 249127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)factor, 249227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)units 249327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 249427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 249527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 249627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPopMatrix ( void ) */ 249727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 249827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPopMatrix__ 249927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 250027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPopMatrix(); 250127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 250227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 250327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPushMatrix ( void ) */ 250427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 250527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPushMatrix__ 250627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 250727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPushMatrix(); 250827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 250927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 251027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */ 251127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 251227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glReadPixels__IIIIIILjava_nio_Buffer_2 251327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) { 251427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 251517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 251627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 251727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pixels = (GLvoid *) 0; 251827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 251917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 252017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (pixels == NULL) { 252117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 252217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 252317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 252427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glReadPixels( 252527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 252627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 252727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 252827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 252927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 253027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 253127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pixels 253227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 253327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 25342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, pixels, JNI_TRUE); 253527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 253627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 253727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 253827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */ 253927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 254027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatef__FFFF 254127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) { 254227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glRotatef( 254327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)angle, 254427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)x, 254527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)y, 254627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)z 254727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 254827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 254927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 255027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */ 255127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 255227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatex__IIII 255327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) { 255427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glRotatex( 255527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)angle, 255627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)x, 255727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)y, 255827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)z 255927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 256027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 256127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 256227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */ 256327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 256427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoverage__FZ 256527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) { 256627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glSampleCoverage( 256727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)value, 256827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)invert 256927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 257027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 257127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 257227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */ 257327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 257427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoveragex__IZ 257527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint value, jboolean invert) { 257627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glSampleCoveragex( 257727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)value, 257827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)invert 257927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 258027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 258127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 258227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */ 258327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 258427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalef__FFF 258527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) { 258627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glScalef( 258727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)x, 258827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)y, 258927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)z 259027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 259127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 259227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 259327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */ 259427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 259527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalex__III 259627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint z) { 259727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glScalex( 259827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)x, 259927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)y, 260027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)z 260127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 260227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 260327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 260427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 260527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 260627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScissor__IIII 260727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 260827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glScissor( 260927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 261027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 261127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 261227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height 261327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 261427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 261527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 261627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glShadeModel ( GLenum mode ) */ 261727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 261827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glShadeModel__I 261927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 262027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glShadeModel( 262127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 262227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 262327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 262427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 262527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */ 262627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 262727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilFunc__III 262827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) { 262927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glStencilFunc( 263027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func, 263127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)ref, 263227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)mask 263327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 263427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 263527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 263627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilMask ( GLuint mask ) */ 263727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 263827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilMask__I 263927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mask) { 264027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glStencilMask( 264127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)mask 264227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 264327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 264427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 264527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */ 264627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 264727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilOp__III 264827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) { 264927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glStencilOp( 265027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)fail, 265127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)zfail, 265227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)zpass 265327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 265427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 265527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 265627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 265727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 265827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I 265927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 266027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 266117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 266227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 266327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 266427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2665e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 266616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 2667e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 2668e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 2669e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 2670e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 267127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexCoordPointerBounds( 267227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 267327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 267427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 267527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 267627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 267727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 267827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 267927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 268027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */ 268127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 268227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvf__IIF 268327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) { 268427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvf( 268527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 268627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 268727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 268827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 268927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 269027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 269127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 269227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 269327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__II_3FI 269427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 26952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 26962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 26972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 269827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 269927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 270027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 270127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 270227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 27032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 270627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 270727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 270827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 27092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 271227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 271327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 271427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 271527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 271627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 271727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 271827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 271927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 272027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 272127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 272227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 27232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 272427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 272527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 272627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 27272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 273027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 273127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 273227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 273327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 273427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 273527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 273627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvfv( 273727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 273827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 273927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 274027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 274127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 274227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 274327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 274427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 274527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 274627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 27472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 27482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 27492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 275027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 275127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 275227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 275327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 275427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__IILjava_nio_FloatBuffer_2 275527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 27562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 27572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 27582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 275927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 276017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 276127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 276227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 276327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 276417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 276527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 276627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 276727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 276827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 276927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 277027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 277127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 277227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 27732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 277427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 277527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 277627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 27772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 278027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 278127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 278217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 278317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 278417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 278517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 278627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvfv( 278727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 278827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 278927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 279027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 279127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 279227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 279327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 279427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 279527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 27962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 27972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 27982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 279927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 280027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 280127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */ 280227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 280327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvx__III 280427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 280527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvx( 280627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 280727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 280827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 280927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 281027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 281127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 281227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 281327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 281427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__II_3II 281527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 28162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 28172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 28182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 281927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 282027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 282127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 282227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 282327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 28242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 282727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 282827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 282927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 28302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 283327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 283427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 283527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 283627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 283727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 283827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 283927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 284027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 284127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 284227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 284327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 28442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 284527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 284627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 284727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 28482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 285127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 285227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 285327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 285427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 285527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 285627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 285727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvxv( 285827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 285927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 286027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 286127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 286227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 286327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 286427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 286527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 286627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 286727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 28682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 28692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 28702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 287127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 287227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 287327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 287427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 287527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__IILjava_nio_IntBuffer_2 287627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 28772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 28782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 28792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 288027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 288117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 288227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 288327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 288427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 288517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 288627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 288727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 288827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 288927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 289027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 289127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 289227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 289327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 28942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 289527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 289627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 289727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 28982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 29002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 290127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 290227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 290317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 290417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 290517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 290617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 290727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvxv( 290827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 290927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 291027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 291127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 291227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 291327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 291427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 291527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 291627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 29172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 29182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 29192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 292027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 292127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 292227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */ 292327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 292427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 292527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) { 292627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 292717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 292827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 292927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pixels = (GLvoid *) 0; 293027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 293127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pixels_buf) { 293217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 293317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 293437c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer if (pixels_buf && pixels == NULL) { 293517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 293617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 293727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 293827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexImage2D( 293927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 294027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 294127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)internalformat, 294227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 294327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 294427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)border, 294527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 294627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 294727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pixels 294827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 294927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 295027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, pixels, JNI_FALSE); 295127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 295227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 295327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 295427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */ 295527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 295627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterf__IIF 295727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) { 295827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterf( 295927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 296027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 296127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 296227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 296327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 296427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 296527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */ 296627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 296727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterx__III 296827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 296927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterx( 297027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 297127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 297227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 297327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 297427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 297527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 297627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */ 297727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 297827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 297927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) { 298027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 298117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 298227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 298327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pixels = (GLvoid *) 0; 298427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 298527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pixels_buf) { 298617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 298717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 298837c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer if (pixels_buf && pixels == NULL) { 298917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 299017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 299127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 299227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexSubImage2D( 299327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 299427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 299527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)xoffset, 299627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)yoffset, 299727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 299827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 299927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 300027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 300127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pixels 300227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 300327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 300427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, pixels, JNI_FALSE); 300527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 300627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 300727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 300827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */ 300927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 301027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatef__FFF 301127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) { 301227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTranslatef( 301327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)x, 301427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)y, 301527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)z 301627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 301727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 301827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 301927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */ 302027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 302127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatex__III 302227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint z) { 302327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTranslatex( 302427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)x, 302527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)y, 302627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)z 302727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 302827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 302927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 303027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 303127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 303227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glVertexPointerBounds__IIILjava_nio_Buffer_2I 303327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 303427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 303517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 303627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 303727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 303827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 3039e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 304016e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 3041e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 3042e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 3043e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 3044e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 304527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glVertexPointerBounds( 304627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 304727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 304827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 304927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 305027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 305127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 305227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 305327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 305427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 305527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 305627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glViewport__IIII 305727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 305827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glViewport( 305927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 306027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 306127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 306227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height 306327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 306427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 306527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 306627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES10"; 306727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 306827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic JNINativeMethod methods[] = { 306927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit }, 307027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I }, 307127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF }, 307227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II }, 307327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindTexture", "(II)V", (void *) android_glBindTexture__II }, 307427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II }, 307527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClear", "(I)V", (void *) android_glClear__I }, 307627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF }, 307727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII }, 307827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F }, 307927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I }, 308027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearStencil", "(I)V", (void *) android_glClearStencil__I }, 308127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I }, 308227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF }, 308327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII }, 308427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ }, 308527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I }, 308627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 }, 308727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 308827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII }, 308927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII }, 309027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCullFace", "(I)V", (void *) android_glCullFace__I }, 309127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II }, 309227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 }, 309327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I }, 309427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z }, 309527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF }, 309627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II }, 309727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisable", "(I)V", (void *) android_glDisable__I }, 309827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I }, 309927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III }, 310027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 }, 310127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnable", "(I)V", (void *) android_glEnable__I }, 310227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I }, 310327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFinish", "()V", (void *) android_glFinish__ }, 310427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFlush", "()V", (void *) android_glFlush__ }, 310527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogf", "(IF)V", (void *) android_glFogf__IF }, 310627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI }, 310727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 }, 310827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogx", "(II)V", (void *) android_glFogx__II }, 310927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II }, 311027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 }, 311127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrontFace", "(I)V", (void *) android_glFrontFace__I }, 311227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF }, 311327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII }, 311427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II }, 311527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 }, 311627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetError", "()I", (void *) android_glGetError__ }, 311727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II }, 311827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 }, 3119a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich{"glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString }, 312027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glHint", "(II)V", (void *) android_glHint__II }, 312127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF }, 312227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI }, 312327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 }, 312427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelx", "(II)V", (void *) android_glLightModelx__II }, 312527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II }, 312627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 }, 312727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightf", "(IIF)V", (void *) android_glLightf__IIF }, 312827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI }, 312927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 }, 313027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightx", "(III)V", (void *) android_glLightx__III }, 313127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II }, 313227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 }, 313327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidth", "(F)V", (void *) android_glLineWidth__F }, 313427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I }, 313527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ }, 313627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI }, 313727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 }, 313827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II }, 313927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 }, 314027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLogicOp", "(I)V", (void *) android_glLogicOp__I }, 314127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF }, 314227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI }, 314327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 }, 314427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialx", "(III)V", (void *) android_glMaterialx__III }, 314527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II }, 314627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 }, 314727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I }, 314827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI }, 314927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 }, 315027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II }, 315127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 }, 315227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF }, 315327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII }, 315427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF }, 315527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3x", "(III)V", (void *) android_glNormal3x__III }, 315627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I }, 315727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF }, 315827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII }, 315927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II }, 316027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSize", "(F)V", (void *) android_glPointSize__F }, 316127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSizex", "(I)V", (void *) android_glPointSizex__I }, 316227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF }, 316327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II }, 316427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPopMatrix", "()V", (void *) android_glPopMatrix__ }, 316527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPushMatrix", "()V", (void *) android_glPushMatrix__ }, 316627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 }, 316727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF }, 316827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII }, 316927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ }, 317027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ }, 317127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalef", "(FFF)V", (void *) android_glScalef__FFF }, 317227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalex", "(III)V", (void *) android_glScalex__III }, 317327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScissor", "(IIII)V", (void *) android_glScissor__IIII }, 317427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glShadeModel", "(I)V", (void *) android_glShadeModel__I }, 317527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III }, 317627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilMask", "(I)V", (void *) android_glStencilMask__I }, 317727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilOp", "(III)V", (void *) android_glStencilOp__III }, 317827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I }, 317927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF }, 318027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI }, 318127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 }, 318227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III }, 318327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II }, 318427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 }, 318527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 }, 318627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF }, 318727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III }, 318827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 318927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF }, 319027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatex", "(III)V", (void *) android_glTranslatex__III }, 319127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I }, 319227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glViewport", "(IIII)V", (void *) android_glViewport__IIII }, 319327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}; 319427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 319527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES10(JNIEnv *_env) 319627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 319727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int err; 319827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods)); 319927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return err; 320027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 3201