android_opengl_GLES10.cpp revision 2ad0477f16c64dc3126741933f11e27353521bb4
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 668331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian} 6727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 6827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* Cache method IDs each time the class is loaded. */ 6927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 7027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 7124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass) 7227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 7327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess"); 7427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal); 7527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 7627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jclass bufferClassLocal = _env->FindClass("java/nio/Buffer"); 7727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal); 7827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 7927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBasePointerID = _env->GetStaticMethodID(nioAccessClass, 8027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBasePointer", "(Ljava/nio/Buffer;)J"); 8127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, 8227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;"); 8327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass, 8427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich "getBaseArrayOffset", "(Ljava/nio/Buffer;)I"); 8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 8627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich positionID = _env->GetFieldID(bufferClass, "position", "I"); 8727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich limitID = _env->GetFieldID(bufferClass, "limit", "I"); 8827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich elementSizeShiftID = 8927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetFieldID(bufferClass, "_elementSizeShift", "I"); 9027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 9127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 9227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void * 9317045a16575ece34cfadb63da4791f115625df78Thomas TafertshofergetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset) 9427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 9527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint position; 9627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint limit; 9727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint elementSizeShift; 9827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jlong pointer; 9927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 10027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich position = _env->GetIntField(buffer, positionID); 10127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich limit = _env->GetIntField(buffer, limitID); 10227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 10327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *remaining = (limit - position) << elementSizeShift; 10427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich pointer = _env->CallStaticLongMethod(nioAccessClass, 10527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBasePointerID, buffer); 10627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pointer != 0L) { 10727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *array = NULL; 10827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return (void *) (jint) pointer; 10927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 11024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes 11127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass, 11227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayID, buffer); 11317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer *offset = _env->CallStaticIntMethod(nioAccessClass, 11427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich getBaseArrayOffsetID, buffer); 11524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes 11617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer return NULL; 11727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 11827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 11927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 12027f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) 12127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 12227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(array, data, 1232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian commit ? 0 : JNI_ABORT); 12427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 12527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 12616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevichstatic void * 12716e7972f0d986eebf846ea8feb50f4435a9c6970Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) { 12816e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich char* buf = (char*) _env->GetDirectBufferAddress(buffer); 12916e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich if (buf) { 13016e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich jint position = _env->GetIntField(buffer, positionID); 13116e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 13216e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich buf += position << elementSizeShift; 13316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich } else { 13424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes jniThrowException(_env, "java/lang/IllegalArgumentException", 13524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes "Must use a native order direct Buffer"); 13616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich } 13716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich return (void*) buf; 13816e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich} 13916e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich 1402ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian// -------------------------------------------------------------------------- 1412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian/* 1432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * returns the number of values glGet returns for a given pname. 1442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * 1452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * The code below is written such that pnames requiring only one values 1462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * are the default (and are not explicitely tested for). This makes the 1472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * checking code much shorter/readable/efficient. 1482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * 1492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * This means that unknown pnames (e.g.: extensions) will default to 1. If 1502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * that unknown pname needs more than 1 value, then the validation check 1512ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * is incomplete and the app may crash if it passed the wrong number params. 1522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian */ 1532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic int getNeededCount(GLint pname) { 1542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian int needed = 1; 1552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_ES_VERSION_2_0 1562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // GLES 2.x pnames 1572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian switch (pname) { 1582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_ALIASED_LINE_WIDTH_RANGE: 1592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_ALIASED_POINT_SIZE_RANGE: 1602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 2; 1612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_BLEND_COLOR: 1642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COLOR_CLEAR_VALUE: 1652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COLOR_WRITEMASK: 1662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_SCISSOR_BOX: 1672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_VIEWPORT: 1682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 4; 1692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COMPRESSED_TEXTURE_FORMATS: 1722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed); 1732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1742ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_SHADER_BINARY_FORMATS: 1762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian glGetIntegerv(GL_NUM_SHADER_BINARY_FORMATS, &needed); 1772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 1792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif 1802ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_VERSION_ES_CM_1_1 1822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // GLES 1.x pnames 1832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian switch (pname) { 1842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_ALIASED_LINE_WIDTH_RANGE: 1852ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_ALIASED_POINT_SIZE_RANGE: 1862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_DEPTH_RANGE: 1872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_SMOOTH_LINE_WIDTH_RANGE: 1882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_SMOOTH_POINT_SIZE_RANGE: 1892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 2; 1902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1922ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_CURRENT_NORMAL: 1932ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_POINT_DISTANCE_ATTENUATION: 1942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 3; 1952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 1962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 1972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COLOR_CLEAR_VALUE: 1982ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COLOR_WRITEMASK: 1992ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_CURRENT_COLOR: 2002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_CURRENT_TEXTURE_COORDS: 2012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_FOG_COLOR: 2022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_LIGHT_MODEL_AMBIENT: 2032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_SCISSOR_BOX: 2042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_VIEWPORT: 2052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 4; 2062ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 2072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_MODELVIEW_MATRIX: 2092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_PROJECTION_MATRIX: 2102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_TEXTURE_MATRIX: 2112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian needed = 16; 2122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 2132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2142ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian case GL_COMPRESSED_TEXTURE_FORMATS: 2152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed); 2162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian break; 2172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif 2192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian return needed; 2202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian} 2212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopiantemplate <typename JTYPEARRAY, typename CTYPE, void GET(GLenum, CTYPE*)> 2232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void 2242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianget 2252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (JNIEnv *_env, jobject _this, jint pname, JTYPEARRAY params_ref, jint offset) { 2262ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _exception = 0; 2272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType; 2282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage; 2292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian CTYPE *params_base = (CTYPE *) 0; 2302ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _remaining; 2312ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian CTYPE *params = (CTYPE *) 0; 2322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian int _needed = 0; 2332ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2342ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (!params_ref) { 2352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 2362ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 2372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "params == null"; 2382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 2392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2402ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (offset < 0) { 2412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 2422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 2432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "offset < 0"; 2442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 2452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _remaining = _env->GetArrayLength(params_ref) - offset; 2472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = getNeededCount(pname); 2482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // if we didn't find this pname, we just assume the user passed 2492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // an array of the right size -- this might happen with extensions 2502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // or if we forget an enum here. 2512ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_remaining < _needed) { 2522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 2532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 2542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "length - offset < needed"; 2552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 2562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian params_base = (CTYPE *) 2582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian params = params_base + offset; 2602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian GET( 2622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (GLenum)pname, 2632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (CTYPE *)params 2642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian ); 2652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianexit: 2672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (params_base) { 2682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception ? JNI_ABORT: 0); 2702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_exception) { 2722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jniThrowException(_env, _exceptionType, _exceptionMessage); 2732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 2742ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian} 2752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopiantemplate <typename CTYPE, void GET(GLenum, CTYPE*)> 2782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void 2792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopiangetarray 2802ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 2812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _exception = 0; 2822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType; 2832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage; 2842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jarray _array = (jarray) 0; 2852ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _bufferOffset = (jint) 0; 2862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jint _remaining; 2872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian CTYPE *params = (CTYPE *) 0; 2882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian int _needed = 0; 2892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 2902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian params = (CTYPE *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 2912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = getNeededCount(pname); 2922ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // if we didn't find this pname, we just assume the user passed 2932ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // an array of the right size -- this might happen with extensions 2942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian // or if we forget an enum here. 2952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_needed>0 && _remaining < _needed) { 2962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exception = 1; 2972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionType = "java/lang/IllegalArgumentException"; 2982ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _exceptionMessage = "remaining() < needed"; 2992ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian goto exit; 3002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 3012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (params == NULL) { 3022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian params = (CTYPE *) (_paramsBase + _bufferOffset); 3042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 3052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian GET( 3062ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (GLenum)pname, 3072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian (CTYPE *)params 3082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian ); 3092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian 3102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianexit: 3112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_array) { 3122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 3132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 3142ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian if (_exception) { 3152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian jniThrowException(_env, _exceptionType, _exceptionMessage); 3162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian } 317be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich} 318be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich 31927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// -------------------------------------------------------------------------- 32027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glActiveTexture ( GLenum texture ) */ 32127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 32227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glActiveTexture__I 32327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 32427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glActiveTexture( 32527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)texture 32627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 32727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 32827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 32927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFunc ( GLenum func, GLclampf ref ) */ 33027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 33127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFunc__IF 33227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func, jfloat ref) { 33327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glAlphaFunc( 33427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func, 33527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)ref 33627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 33727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 33827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 33927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */ 34027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 34127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFuncx__II 34227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func, jint ref) { 34327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glAlphaFuncx( 34427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func, 34527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)ref 34627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 34727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 34827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 34927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindTexture ( GLenum target, GLuint texture ) */ 35027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 35127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindTexture__II 35227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint texture) { 35327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBindTexture( 35427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 35527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)texture 35627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 35727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 35827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 35927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */ 36027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 36127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBlendFunc__II 36227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) { 36327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glBlendFunc( 36427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)sfactor, 36527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)dfactor 36627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 36727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 36827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 36927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClear ( GLbitfield mask ) */ 37027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 37127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClear__I 37227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mask) { 37327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClear( 37427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLbitfield)mask 37527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 37627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 37727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 37827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */ 37927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 38027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColor__FFFF 38127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 38227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearColor( 38327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)red, 38427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)green, 38527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)blue, 38627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)alpha 38727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 38827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 38927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 39027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */ 39127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 39227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColorx__IIII 39327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) { 39427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearColorx( 39527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)red, 39627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)green, 39727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)blue, 39827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)alpha 39927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 40027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 40127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 40227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthf ( GLclampf depth ) */ 40327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 40427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthf__F 40527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat depth) { 40627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearDepthf( 40727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)depth 40827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 40927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 41027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 41127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthx ( GLclampx depth ) */ 41227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 41327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthx__I 41427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint depth) { 41527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearDepthx( 41627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)depth 41727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 41827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 41927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 42027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearStencil ( GLint s ) */ 42127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 42227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearStencil__I 42327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint s) { 42427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClearStencil( 42527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)s 42627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 42727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 42827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 42927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClientActiveTexture ( GLenum texture ) */ 43027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 43127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClientActiveTexture__I 43227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint texture) { 43327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glClientActiveTexture( 43427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)texture 43527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 43627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 43727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 43827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */ 43927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 44027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4f__FFFF 44127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 44227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColor4f( 44327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)red, 44427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)green, 44527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)blue, 44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)alpha 44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 44827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 44927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 45027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */ 45127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 45227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4x__IIII 45327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) { 45427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColor4x( 45527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)red, 45627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)green, 45727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)blue, 45827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)alpha 45927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 46027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 46127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 46227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */ 46327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 46427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorMask__ZZZZ 46527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) { 46627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColorMask( 46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)red, 46827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)green, 46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)blue, 47027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)alpha 47127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 47227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 47327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 47427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 47527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 47627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorPointerBounds__IIILjava_nio_Buffer_2I 47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 47917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 48027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 48127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 48227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 483e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 48416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 485e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 486e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 487e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 488e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 48927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glColorPointerBounds( 49027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 49127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 49227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 49327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 49427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 49527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 49727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 49827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */ 49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 50127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) { 50227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 50317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 50427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 50717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 50817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 50917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 51017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 51117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCompressedTexImage2D( 51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 51427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 51527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)internalformat, 51627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 51727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 51827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)border, 51927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)imageSize, 52027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data 52127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 52227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 52327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 52427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 52527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 52627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 52727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */ 52827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 52927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 53027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) { 53127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 53217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 53327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 53427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *data = (GLvoid *) 0; 53527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 53617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 53717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (data == NULL) { 53817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 53917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer data = (GLvoid *) (_dataBase + _bufferOffset); 54017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 54127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCompressedTexSubImage2D( 54227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 54327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 54427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)xoffset, 54527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)yoffset, 54627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 54727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 54827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 54927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)imageSize, 55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)data 55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 55227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 55327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, data, JNI_FALSE); 55427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 55527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 55627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 55727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */ 55827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 55927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexImage2D__IIIIIIII 56027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) { 56127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCopyTexImage2D( 56227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 56327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 56427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)internalformat, 56527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 56627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 56727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 56827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 56927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)border 57027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 57127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 57227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 57327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */ 57427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 57527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexSubImage2D__IIIIIIII 57627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) { 57727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCopyTexSubImage2D( 57827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 57927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 58027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)xoffset, 58127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)yoffset, 58227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 58327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 58427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 58527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height 58627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 58927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCullFace ( GLenum mode ) */ 59027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 59127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCullFace__I 59227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glCullFace( 59427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 59527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 59627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 59727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 59827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 59927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 60027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__I_3II 60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 6022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 6032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 6042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 60527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures_base = (GLuint *) 0; 60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 60827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 60927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!textures_ref) { 6102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "textures == null"; 61327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 6162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 61927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(textures_ref) - offset; 62227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 6232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 62627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures_base = (GLuint *) 62927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 63027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures = textures_base + offset; 63127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 63227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteTextures( 63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 63827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (textures_base) { 63927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 64027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 64127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 6422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 64527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 64627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 64727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 64827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 64927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__ILjava_nio_IntBuffer_2 65027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 6512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 6522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 6532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 65427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 65517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 65627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 65727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 65827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 65917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); 66027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 6612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 6622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 6632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 66427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 66527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 66617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (textures == NULL) { 66717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 66817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *) (_texturesBase + _bufferOffset); 66917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 67027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDeleteTextures( 67127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 67227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 67327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 67427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 67527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 67627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 67727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, textures, JNI_FALSE); 67827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 6792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 6802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 6812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 68227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 68327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 68427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthFunc ( GLenum func ) */ 68527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 68627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthFunc__I 68727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func) { 68827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthFunc( 68927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func 69027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 69127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 69227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 69327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthMask ( GLboolean flag ) */ 69427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 69527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthMask__Z 69627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jboolean flag) { 69727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthMask( 69827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)flag 69927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 70027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 70127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 70227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */ 70327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 70427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangef__FF 70527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) { 70627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthRangef( 70727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)zNear, 70827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)zFar 70927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 71027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 71127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 71227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */ 71327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 71427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangex__II 71527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint zNear, jint zFar) { 71627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDepthRangex( 71727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)zNear, 71827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)zFar 71927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 72027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 72127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisable ( GLenum cap ) */ 72327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 72427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisable__I 72527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 72627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDisable( 72727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)cap 72827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 72927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 73027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 73127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisableClientState ( GLenum array ) */ 73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 73327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisableClientState__I 73427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint array) { 73527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDisableClientState( 73627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)array 73727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 73827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 73927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */ 74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawArrays__III 74327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) { 74427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDrawArrays( 74527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode, 74627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)first, 74727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)count 74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 75027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 75127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */ 75227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 75327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawElements__IIILjava_nio_Buffer_2 75427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) { 7552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 7562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 7572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 75827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 75917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 76027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *indices = (GLvoid *) 0; 76227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 76317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset); 76427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < count) { 7652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 7662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/ArrayIndexOutOfBoundsException"; 7672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < count < needed"; 76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 77017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (indices == NULL) { 77117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 77217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer indices = (GLvoid *) (_indicesBase + _bufferOffset); 77317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 77427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glDrawElements( 77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode, 77627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)count, 77727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 77827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)indices 77927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 78027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, indices, JNI_FALSE); 78427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 7852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 7862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 7872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnable ( GLenum cap ) */ 79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 79227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnable__I 79327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint cap) { 79427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glEnable( 79527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)cap 79627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 79727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 79827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 79927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnableClientState ( GLenum array ) */ 80027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 80127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnableClientState__I 80227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint array) { 80327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glEnableClientState( 80427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)array 80527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 80627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 80727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 80827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFinish ( void ) */ 80927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 81027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFinish__ 81127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 81227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFinish(); 81327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 81427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 81527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFlush ( void ) */ 81627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 81727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFlush__ 81827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 81927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFlush(); 82027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 82127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 82227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogf ( GLenum pname, GLfloat param ) */ 82327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 82427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogf__IF 82527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 82627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogf( 82727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 82827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 82927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 83027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 83127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 83227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */ 83327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 83427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__I_3FI 83527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 8362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 8372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 8382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 84027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 84127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 84227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 84327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 8442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 84727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 84827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 84927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 8502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 85327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 85427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 85527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 85627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 85727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 85827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 85927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 86027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 86127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 86227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 86327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 8642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 86527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 86627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 86727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 8682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 8692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 8702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 87127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 87227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 87327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 87427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 87527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 87627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 87727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogfv( 87827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 87927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 88027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 88127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 88227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 88327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 88427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 8872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 8882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 8892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 89027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 89127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 89227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */ 89327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 89427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__ILjava_nio_FloatBuffer_2 89527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 8962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 8972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 8982ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 89927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 90017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 90127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 90227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 90327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 90417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 90527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 90627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 90727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 90827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 90927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 91027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 91127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 91227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 9132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 91427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 91527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 91627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 9172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 9182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 92027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 92127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 92217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 92317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 92417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 92517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 92627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogfv( 92727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 92827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 92927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 93027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 93127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 93227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 93327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 9352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 9362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 9372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 93827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 93927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 94027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogx ( GLenum pname, GLfixed param ) */ 94127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 94227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogx__II 94327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 94427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogx( 94527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 94627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 94727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 94827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 94927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 95027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */ 95127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 95227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__I_3II 95327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 9542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 9552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 9562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 95727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 95827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 95927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 96027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 96127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 9622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 9632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 96527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 96627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 96727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 9682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 9692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 97127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 97227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 97327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 97427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 97527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 97627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 97727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 97827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 97927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 98027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 98127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 9822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 98327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 98427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 9862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 9872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 9882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 98927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 99027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 99127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 99227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 99327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 99427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 99527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogxv( 99627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 99727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 99827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 99927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 100027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 100127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 100227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 100327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 100427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 10052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 10062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 10072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 100827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 100927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 101027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */ 101127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 101227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__ILjava_nio_IntBuffer_2 101327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 10142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 10152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 10162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 101727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 101817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 101927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 102127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 102217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 102327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 102427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 102527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR) 102627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_FOG_COLOR: 102727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR) 102827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 102927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 103027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 10312ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 103227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 103327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 103427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 10352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 10362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 10372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 103827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 103927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 104017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 104117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 104217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 104317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 104427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFogxv( 104527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 104627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 104727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 104827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 104927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 105027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 105127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 105227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 10532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 10542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 10552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 105627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 105727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 105827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrontFace ( GLenum mode ) */ 105927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 106027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrontFace__I 106127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 106227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFrontFace( 106327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 106427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 106527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 106627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 106727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */ 106827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 106927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumf__FFFFFF 107027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) { 107127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFrustumf( 107227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)left, 107327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)right, 107427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)bottom, 107527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)top, 107627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zNear, 107727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zFar 107827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 107927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */ 108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumx__IIIIII 108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) { 108527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glFrustumx( 108627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)left, 108727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)right, 108827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)bottom, 108927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)top, 109027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zNear, 109127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zFar 109227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 109327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 109427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 109527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */ 109627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 109727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__I_3II 109827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 109927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 11002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 11012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 110227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures_base = (GLuint *) 0; 110327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 110427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!textures_ref) { 110727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "textures == null"; 111027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 111127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 111227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 111327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 111627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 111827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(textures_ref) - offset; 111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < n < needed"; 112327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 112427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 112527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures_base = (GLuint *) 112627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 112727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich textures = textures_base + offset; 112827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 112927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenTextures( 113027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 113127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 113227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 113327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 113427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 113527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (textures_base) { 113627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 113727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception ? JNI_ABORT: 0); 113827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 11392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 11402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 11412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 114227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 114327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 114427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */ 114527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 114627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__ILjava_nio_IntBuffer_2 114727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 114827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _exception = 0; 11492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 11502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 115127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 115217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 115327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 115427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLuint *textures = (GLuint *) 0; 115527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 115617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); 115727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < n) { 115827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _exception = 1; 11592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 11602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < n < needed"; 116127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 116227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 116317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (textures == NULL) { 116417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 116517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer textures = (GLuint *) (_texturesBase + _bufferOffset); 116617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 116727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glGenTextures( 116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)n, 116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint *)textures 117027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 117127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 117227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 117327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 117427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE); 117527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 11762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 11772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 11782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 117927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 118027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 118127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLenum glGetError ( void ) */ 118227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jint 118327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetError__ 118427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 118527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLenum _returnValue; 118627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _returnValue = glGetError(); 118727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return _returnValue; 118827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 118927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 119027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */ 119127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 119227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__I_3II 119327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 11942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian get<jintArray, GLint, glGetIntegerv>(_env, _this, pname, params_ref, offset); 119527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 119627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 119727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */ 119827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 119927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__ILjava_nio_IntBuffer_2 120027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 12012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian getarray<GLint, glGetIntegerv>(_env, _this, pname, params_buf); 120227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* const GLubyte * glGetString ( GLenum name ) */ 120524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetString(JNIEnv* _env, jobject, jint name) { 120624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes const char* chars = (const char*) glGetString((GLenum) name); 120724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes return _env->NewStringUTF(chars); 120827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 120927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glHint ( GLenum target, GLenum mode ) */ 121027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 121127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glHint__II 121227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint mode) { 121327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glHint( 121427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 121527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 121627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 121727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 121827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 121927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelf ( GLenum pname, GLfloat param ) */ 122027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 122127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelf__IF 122227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 122327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelf( 122427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 122527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 122627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 122727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 122827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 122927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */ 123027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 123127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__I_3FI 123227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 12332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 12342ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 12352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 123627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 123727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 123827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 123927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 124027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 12412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 12422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 124427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 124527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 124627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 12472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 12482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 125027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 125227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 125327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 125427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 125527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 125627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 125727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 125827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 125927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 126027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 12612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 126227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 126327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 126427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 12652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 12662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 12672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 126827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 127027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 127127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 127227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 127327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 127427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelfv( 127527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 127627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 127727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 127827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 127927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 128027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 128127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 128227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 128327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 12842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 12852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 12862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 128727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 128827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 128927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */ 129027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 129127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__ILjava_nio_FloatBuffer_2 129227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 12932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 12942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 12952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 129627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 129717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 129827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 129927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 130027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 130117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 130227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 130327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 130427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 130527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 130627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 130727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 130827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 130927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 13102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 131127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 131227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 131327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 13142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 13152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 131727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 131917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 132017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 132117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 132217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 132327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelfv( 132427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 132527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 132627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 132727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 132827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 132927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 133027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 133127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 13322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 13332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 13342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 133527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 133627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 133727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelx ( GLenum pname, GLfixed param ) */ 133827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 133927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelx__II 134027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 134127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelx( 134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 134327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 134427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 134527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 134627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 134727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */ 134827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 134927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__I_3II 135027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 13512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 13522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 13532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 135427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 135527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 135627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 135727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 135827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 13592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 13602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 136227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 136327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 136427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 13652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 13662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 136827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 136927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 137027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 137127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 137227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 137327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 137427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 137527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 137627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 137727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 137827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 13792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 138027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 138127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 13832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 13842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 13852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 138627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 138727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 138827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 138927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 139027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 139127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 139227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelxv( 139327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 139427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 139527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 139627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 139727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 139827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 139927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 140027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 140127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 14022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 14032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 14042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 140527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 140627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 140727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */ 140827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 140927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__ILjava_nio_IntBuffer_2 141027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 14112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 14122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 14132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 141427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 141517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 141627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 141727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 141827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 141917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 142027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 142127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 142227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT) 142327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_LIGHT_MODEL_AMBIENT: 142427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT) 142527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 142627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 142727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 14282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 142927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 143027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 143127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 14322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 14332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 143527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 143627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 143717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 143817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 143917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 144017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 144127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightModelxv( 144227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 144327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 144427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 144527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 144627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 144727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 144827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 14502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 14512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 14522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 145327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 145427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 145527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */ 145627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 145727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightf__IIF 145827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) { 145927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightf( 146027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 146127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 146227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 146327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 146427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 146527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 146627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */ 146727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 146827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__II_3FI 146927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) { 14702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 14712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 14722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 147327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 147727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 14782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 14792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 148127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 148227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 148327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 14842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 14852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 14862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 148727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 148827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 148927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 149027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 149127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 149227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 149327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 149427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 149527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 149627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 149727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 149827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 149927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 150027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 150127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 150227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 150327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 150427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 150527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 150627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 150727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 150827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 150927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 151027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 151127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 15122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 151327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 151427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 151527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 15162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 15172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 15182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 151927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 152027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 152127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 152227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 152327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 152427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 152527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightfv( 152627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 152727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 152827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 152927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 153027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 153127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 153227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 153327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 153427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 153527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 15362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 15372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 15382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 153927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 154027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */ 154227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 154327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__IILjava_nio_FloatBuffer_2 154427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 15452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 15462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 15472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 154827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 154917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 155027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 155127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 155227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 155317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 155427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 155627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 155727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 155827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 155927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 156027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 156127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 156227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 156327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 156427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 156527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 156627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 156727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 156827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 156927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 157027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 157127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 157227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 157327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 157427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 157527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 15762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 157727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 157827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 157927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 15802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 15812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 15822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 158327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 158427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 158517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 158617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 158717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 158817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 158927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightfv( 159027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 159127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 159227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 159327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 159427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 159527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 159727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 159827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 15992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 16002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 16012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 160227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 160327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 160427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */ 160527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 160627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightx__III 160727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) { 160827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightx( 160927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 161027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 161127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 161227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 161327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 161427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 161527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */ 161627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 161727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__II_3II 161827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) { 16192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 16202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 16212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 162227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 162327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 162427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 162527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 162627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 16272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 16282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 16332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 16342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 163627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 163727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 163827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 163927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 164027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 164127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 164227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 164327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 164427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 164527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 164627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 164727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 164827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 164927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 165027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 165127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 165227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 165327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 165427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 165527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 165627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 165727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 165827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 165927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 166027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 16612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 166227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 166327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 166427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 16652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 16662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 16672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 166827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 166927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 167027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 167127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 167227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 167327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 167427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightxv( 167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 167627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 167727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 167827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 167927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 168027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 168127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 168227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 168327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 168427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 16852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 16862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 16872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 168827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 168927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 169027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */ 169127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 169227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__IILjava_nio_IntBuffer_2 169327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 16942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 16952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 16962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 169727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 169817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 170027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 170127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 170217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 170327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 170427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 170527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION) 170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPOT_DIRECTION: 170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION) 170827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 3; 170927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 171027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 171127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 171227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 171327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 171427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 171527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 171627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 171827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 171927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 172027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 172127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 172227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 172327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 172427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 17252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 172627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 172727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 172827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 17292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 17302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 173227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 173327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 173417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 173517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 173617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 173717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 173827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLightxv( 173927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)light, 174027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 174127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 174227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 174327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 174427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 174527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 174627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 174727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 17482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 17492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 17502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 175327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidth ( GLfloat width ) */ 175427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 175527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidth__F 175627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat width) { 175727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLineWidth( 175827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)width 175927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 176027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 176127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 176227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidthx ( GLfixed width ) */ 176327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 176427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidthx__I 176527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint width) { 176627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLineWidthx( 176727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)width 176827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 177127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadIdentity ( void ) */ 177227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadIdentity__ 177427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 177527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadIdentity(); 177627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 177727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 177827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */ 177927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf___3FI 178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) { 17822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 17832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 17842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 178527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m_base = (GLfloat *) 0; 178627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 178727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 178827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 178927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 17902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 17912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 179327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 179427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 179527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 17962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 17972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 17982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 179927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 180027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 180127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 180227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfloat *) 180327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 180427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 180527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 180627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixf( 180727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 180827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 180927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 181027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 181127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 181227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 181327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 181427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 181827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 181927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 182027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */ 182127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 182227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf__Ljava_nio_FloatBuffer_2 182327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 182427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 182517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 182917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 183017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 183117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 183217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *) (_mBase + _bufferOffset); 183317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 183427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixf( 183527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 183627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 183727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 183827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 183927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 184027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 184127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 184227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */ 184327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 184427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx___3II 184527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) { 18462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 18472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 18482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m_base = (GLfixed *) 0; 185027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 185127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 185227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 185327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 18542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 18552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 185727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 185827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 185927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 18602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 18612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 18622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 186327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 186427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 186527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 186627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfixed *) 186727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 186827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 186927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 187027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixx( 187127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 187227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 187327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 187427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 187527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 187627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 187727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 187827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 18792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 18802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 18812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 188227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 188327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 188427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */ 188527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 188627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx__Ljava_nio_IntBuffer_2 188727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 188827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 188917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 189027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 189227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 189317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 189417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 189517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 189617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *) (_mBase + _bufferOffset); 189717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 189827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLoadMatrixx( 189927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 190027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 190127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 190227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 190327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 190427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 190527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 190627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLogicOp ( GLenum opcode ) */ 190727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 190827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLogicOp__I 190927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint opcode) { 191027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glLogicOp( 191127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)opcode 191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */ 191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialf__IIF 191827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) { 191927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialf( 192027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 192127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 192227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 192327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 192427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */ 192727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 192827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__II_3FI 192927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) { 19302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 19312ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 19322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 193327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 193427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 193527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 193727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 19382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 19392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 194227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 194327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 19442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 19452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 194727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 194827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 194927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 195127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 195227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 195327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 195627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 195727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 195827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 195927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 196027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 196127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 196227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 196427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 196527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 196627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 196727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 196827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 196927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 19702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 197127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 197227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 197327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 19742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 19752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 19762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 197727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 197827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 197927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 198027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 198127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 198227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 198327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialfv( 198427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 198527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 198627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 198727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 198827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 198927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 199027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 199127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 199227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 199327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 19942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 19952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 19962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 199727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 199827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 199927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */ 200027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 200127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__IILjava_nio_FloatBuffer_2 200227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 20032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 20042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 20052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 200627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 200717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 200927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 201027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 201117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 201227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 201327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 201427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 201527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 201627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 201727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 201827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 201927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 202027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 202127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 202227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 202327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 202427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 202527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 202727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 202827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 202927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 203027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 203127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 20322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 203327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 203427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 203527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 20362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 20372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 203927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 204117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 204217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 204317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 204417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 204527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialfv( 204627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 204727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 204827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 204927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 205027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 205127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 205227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 205327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 205427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 20552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 20562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 20572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 205927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 206027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */ 206127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 206227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialx__III 206327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) { 206427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialx( 206527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 206627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 206727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 207027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 207127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */ 207227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 207327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__II_3II 207427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) { 20752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 20762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 20772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 207827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 208127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 208227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 20832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 20842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 208627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 208727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 208827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 20892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 20902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 20912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 209227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 209327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 209427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 209527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 209627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 209727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 209827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 209927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 210027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 210127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 210227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 210327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 210427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 210527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 210627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 210727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 210827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 210927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 211027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 211127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 211227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 211327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 211427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 21152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 211627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 211727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 211827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 21192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 21202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 212227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 212327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 212427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 212527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 212627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 212727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 212827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialxv( 212927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 213027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 213127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 213227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 213427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 213527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 213627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 21392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 21402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 21412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 214227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 214327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 214427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */ 214527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 214627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__IILjava_nio_IntBuffer_2 214727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 21482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 21492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 21502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 215127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 215217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 215327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 215427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 215527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 215617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 215727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 215827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 215927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT) 216027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT: 216127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT) 216227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE) 216327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_DIFFUSE: 216427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE) 216527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR) 216627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_SPECULAR: 216727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR) 216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION) 216927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_EMISSION: 217027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION) 217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE) 217227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_AMBIENT_AND_DIFFUSE: 217327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE) 217427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 217527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 217627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 21772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 217827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 217927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 218027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 21812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 21822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 21832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 218427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 218527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 218617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 218717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 218817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 218917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 219027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMaterialxv( 219127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)face, 219227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 219327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 219427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 219527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 219627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 219727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 219827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 219927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 220327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 220427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 220527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMatrixMode ( GLenum mode ) */ 220627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 220727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMatrixMode__I 220827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 220927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMatrixMode( 221027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 221127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 221227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */ 221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf___3FI 221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) { 22182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 22192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 22202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 222127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m_base = (GLfloat *) 0; 222227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 222327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 222427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 222527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 22262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 22272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 222927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 223027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 223127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 22322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 22332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 223527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 223727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 223827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfloat *) 223927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 224027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 224127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 224227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixf( 224327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 224427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 224527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 224627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 224727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 224827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 224927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 225027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 22512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 22522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 22532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 225427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 225527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 225627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */ 225727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 225827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf__Ljava_nio_FloatBuffer_2 225927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 226027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 226117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 226227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 226327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *m = (GLfloat *) 0; 226427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 226517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 226617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 226717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 226817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfloat *) (_mBase + _bufferOffset); 226917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixf( 227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)m 227227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 227327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 227427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 227527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 227627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 227727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 227827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */ 227927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 228027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx___3II 228127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) { 22822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 22832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 22842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 228527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m_base = (GLfixed *) 0; 228627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 228727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 228827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 228927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!m_ref) { 22902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 22912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "m == null"; 229327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 229427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 229527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 22962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 22972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 22982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 229927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 230027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 230127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(m_ref) - offset; 230227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m_base = (GLfixed *) 230327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 230427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich m = m_base + offset; 230527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 230627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixx( 230727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 230827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 230927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 231027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 231127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (m_base) { 231227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 231327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 231427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 23152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 23162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 23172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */ 232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 232227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx__Ljava_nio_IntBuffer_2 232327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jobject m_buf) { 232427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 232517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 232627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 232727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *m = (GLfixed *) 0; 232827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 232917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset); 233017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (m == NULL) { 233117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 233217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer m = (GLfixed *) (_mBase + _bufferOffset); 233317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 233427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultMatrixx( 233527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)m 233627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 233727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 233827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, m, JNI_FALSE); 233927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 234027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 234127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 234227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */ 234327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 234427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4f__IFFFF 234527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) { 234627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultiTexCoord4f( 234727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 234827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)s, 234927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)t, 235027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)r, 235127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)q 235227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 235327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 235427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */ 235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4x__IIIII 235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) { 235927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glMultiTexCoord4x( 236027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 236127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)s, 236227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)t, 236327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)r, 236427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)q 236527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 236627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 236727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 236827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */ 236927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 237027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3f__FFF 237127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) { 237227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormal3f( 237327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)nx, 237427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)ny, 237527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)nz 237627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 237727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 237827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 237927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */ 238027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 238127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3x__III 238227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) { 238327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormal3x( 238427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)nx, 238527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)ny, 238627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)nz 238727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 238827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 238927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 239027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */ 239127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 239227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormalPointerBounds__IILjava_nio_Buffer_2I 239327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) { 239427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 239517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 239627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 239727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 239827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2399e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 240016e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 2401e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 2402e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 2403e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 2404e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 240527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glNormalPointerBounds( 240627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 240727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 240827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 240927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 241027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 241127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 241227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 241327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */ 241427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 241527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthof__FFFFFF 241627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) { 241727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glOrthof( 241827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)left, 241927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)right, 242027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)bottom, 242127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)top, 242227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zNear, 242327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)zFar 242427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 242527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 242627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 242727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */ 242827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 242927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthox__IIIIII 243027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) { 243127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glOrthox( 243227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)left, 243327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)right, 243427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)bottom, 243527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)top, 243627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zNear, 243727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)zFar 243827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 243927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 244027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 244127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPixelStorei ( GLenum pname, GLint param ) */ 244227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 244327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPixelStorei__II 244427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint pname, jint param) { 244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPixelStorei( 244627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 244727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)param 244827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 244927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 245027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 245127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSize ( GLfloat size ) */ 245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSize__F 245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat size) { 245527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointSize( 245627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)size 245727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 245827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 245927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 246027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizex ( GLfixed size ) */ 246127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 246227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSizex__I 246327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size) { 246427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPointSizex( 246527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)size 246627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 246727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 246827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 246927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */ 247027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 247127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffset__FF 247227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) { 247327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPolygonOffset( 247427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)factor, 247527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)units 247627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 247727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 247827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 247927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */ 248027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 248127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffsetx__II 248227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint factor, jint units) { 248327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPolygonOffsetx( 248427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)factor, 248527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)units 248627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 248727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 248827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 248927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPopMatrix ( void ) */ 249027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 249127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPopMatrix__ 249227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 249327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPopMatrix(); 249427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 249527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 249627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPushMatrix ( void ) */ 249727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 249827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPushMatrix__ 249927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this) { 250027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glPushMatrix(); 250127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 250227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 250327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */ 250427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 250527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glReadPixels__IIIIIILjava_nio_Buffer_2 250627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) { 250727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 250817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 250927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 251027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pixels = (GLvoid *) 0; 251127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 251217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 251317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (pixels == NULL) { 251417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 251517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 251617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 251727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glReadPixels( 251827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 251927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 252027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 252127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 252227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 252327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 252427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pixels 252527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 252627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 25272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer releasePointer(_env, _array, pixels, JNI_TRUE); 252827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 252927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 253027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 253127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */ 253227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 253327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatef__FFFF 253427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) { 253527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glRotatef( 253627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)angle, 253727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)x, 253827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)y, 253927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)z 254027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 254127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 254227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 254327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */ 254427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 254527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatex__IIII 254627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) { 254727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glRotatex( 254827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)angle, 254927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)x, 255027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)y, 255127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)z 255227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 255327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 255427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 255527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */ 255627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 255727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoverage__FZ 255827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) { 255927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glSampleCoverage( 256027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampf)value, 256127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)invert 256227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 256327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 256427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 256527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */ 256627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 256727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoveragex__IZ 256827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint value, jboolean invert) { 256927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glSampleCoveragex( 257027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLclampx)value, 257127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLboolean)invert 257227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 257327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 257427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 257527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */ 257627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 257727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalef__FFF 257827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) { 257927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glScalef( 258027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)x, 258127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)y, 258227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)z 258327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 258427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 258527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 258627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */ 258727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 258827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalex__III 258927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint z) { 259027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glScalex( 259127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)x, 259227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)y, 259327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)z 259427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 259527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 259627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 259727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 259827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 259927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScissor__IIII 260027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 260127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glScissor( 260227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 260327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 260427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 260527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height 260627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 260727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 260827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 260927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glShadeModel ( GLenum mode ) */ 261027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 261127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glShadeModel__I 261227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mode) { 261327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glShadeModel( 261427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)mode 261527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 261627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 261727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 261827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */ 261927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 262027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilFunc__III 262127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) { 262227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glStencilFunc( 262327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)func, 262427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)ref, 262527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)mask 262627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 262727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 262827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 262927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilMask ( GLuint mask ) */ 263027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 263127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilMask__I 263227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint mask) { 263327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glStencilMask( 263427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLuint)mask 263527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 263627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 263727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 263827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */ 263927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 264027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilOp__III 264127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) { 264227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glStencilOp( 264327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)fail, 264427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)zfail, 264527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)zpass 264627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 264727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 264827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 264927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 265027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 265127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I 265227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 265327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 265417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 265527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 265627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 265727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 2658e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 265916e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 2660e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 2661e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 2662e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 2663e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 266427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexCoordPointerBounds( 266527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 266627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 266727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 266827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 266927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 267027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 267127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 267227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 267327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */ 267427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 267527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvf__IIF 267627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) { 267727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvf( 267827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 267927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 268027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 268127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 268227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 268327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 268427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 268527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 268627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__II_3FI 268727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 26882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 26892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 26902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 269127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params_base = (GLfloat *) 0; 269227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 269327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 269427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 269527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 26962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 26972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 26982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 269927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 270027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 270127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 27022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 270527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 270627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 270727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 270827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 270927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 271027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 271127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 271227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 271327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 271427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 271527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 27162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 271727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 271827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 271927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 27202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 272327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 272427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 272527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfloat *) 272627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 272727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 272827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 272927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvfv( 273027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 273127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 273227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 273327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 273427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 273527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 273627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 273727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 273827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 273927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 27402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 27412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 27422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 274327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 274427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 274527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 274627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 274727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__IILjava_nio_FloatBuffer_2 274827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 27492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 27502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 27512ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 275227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 275317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 275427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 275527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfloat *params = (GLfloat *) 0; 275627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 275717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 275827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 275927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 276027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 276127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 276227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 276327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 276427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 276527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 27662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 276727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 276827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 276927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 27702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 27712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 27722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 277327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 277427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 277517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 277617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 277717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfloat *) (_paramsBase + _bufferOffset); 277817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 277927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvfv( 278027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 278127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 278227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat *)params 278327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 278427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 278527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 278627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 278727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 278827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 27892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 27902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 27912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 279227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 279327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 279427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */ 279527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 279627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvx__III 279727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 279827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvx( 279927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 280027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 280127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 280227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 280327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 280427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 280527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 280627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 280727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__II_3II 280827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 28092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 28102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 28112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 281227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params_base = (GLfixed *) 0; 281327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 281427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 281527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 281627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (!params_ref) { 28172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "params == null"; 282027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 282127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 282227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (offset < 0) { 28232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "offset < 0"; 282627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 282727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 282827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _remaining = _env->GetArrayLength(params_ref) - offset; 282927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 283027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 283127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 283227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 283327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 283427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 283527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 283627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 28372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 283827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 283927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 284027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 28412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "length - offset < needed"; 284427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 284527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 284627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params_base = (GLfixed *) 284727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 284827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich params = params_base + offset; 284927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 285027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvxv( 285127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 285227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 285327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 285427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 285527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 285627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 285727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (params_base) { 285827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 285927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich JNI_ABORT); 286027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 28612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 28622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 28632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 286427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 286527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 286627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 286727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 286827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__IILjava_nio_IntBuffer_2 286927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 28702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jint _exception = 0; 28712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionType = NULL; 28722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian const char * _exceptionMessage = NULL; 287327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 287417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 287527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 287627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLfixed *params = (GLfixed *) 0; 287727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 287817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 287927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int _needed; 288027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich switch (pname) { 288127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR) 288227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich case GL_TEXTURE_ENV_COLOR: 288327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR) 288427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich _needed = 4; 288527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 288627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich default: 28872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian _needed = 1; 288827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich break; 288927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 289027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_remaining < _needed) { 28912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exception = 1; 28922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionType = "java/lang/IllegalArgumentException"; 28932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer _exceptionMessage = "remaining() < needed"; 289427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich goto exit; 289527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 289617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer if (params == NULL) { 289717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 289817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer params = (GLfixed *) (_paramsBase + _bufferOffset); 289917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 290027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexEnvxv( 290127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 290227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 290327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed *)params 290427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 290527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 290627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit: 290727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 290827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, params, JNI_FALSE); 290927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 29102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer if (_exception) { 29112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer jniThrowException(_env, _exceptionType, _exceptionMessage); 29122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer } 291327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 291427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 291527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */ 291627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 291727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 291827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) { 291927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 292017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 292127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 292227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pixels = (GLvoid *) 0; 292327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 292427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pixels_buf) { 292517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 292617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 292737c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer if (pixels_buf && pixels == NULL) { 292817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 292917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 293027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 293127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexImage2D( 293227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 293327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 293427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)internalformat, 293527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 293627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 293727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)border, 293827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 293927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 294027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pixels 294127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 294227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 294327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, pixels, JNI_FALSE); 294427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 294527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 294627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 294727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */ 294827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 294927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterf__IIF 295027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) { 295127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterf( 295227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 295327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 295427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)param 295527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 295627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 295727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 295827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */ 295927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 296027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterx__III 296127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 296227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexParameterx( 296327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 296427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)pname, 296527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)param 296627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 296727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 296827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 296927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */ 297027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 297127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 297227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) { 297327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 297417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 297527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 297627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pixels = (GLvoid *) 0; 297727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 297827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (pixels_buf) { 297917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 298017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer } 298137c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer if (pixels_buf && pixels == NULL) { 298217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 298317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 298427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 298527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTexSubImage2D( 298627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)target, 298727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)level, 298827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)xoffset, 298927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)yoffset, 299027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 299127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height, 299227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)format, 299327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 299427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pixels 299527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 299627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich if (_array) { 299727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich releasePointer(_env, _array, pixels, JNI_FALSE); 299827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich } 299927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 300027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 300127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */ 300227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 300327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatef__FFF 300427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) { 300527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTranslatef( 300627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)x, 300727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)y, 300827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfloat)z 300927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 301027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 301127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 301227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */ 301327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 301427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatex__III 301527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint z) { 301627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glTranslatex( 301727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)x, 301827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)y, 301927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLfixed)z 302027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 302127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 302227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 302327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 302427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 302527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glVertexPointerBounds__IIILjava_nio_Buffer_2I 302627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 302727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jarray _array = (jarray) 0; 302817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer jint _bufferOffset = (jint) 0; 302927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich jint _remaining; 303027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich GLvoid *pointer = (GLvoid *) 0; 303127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 3032e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if (pointer_buf) { 303316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf); 3034e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich if ( ! pointer ) { 3035e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich return; 3036e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 3037e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich } 303827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glVertexPointerBounds( 303927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)size, 304027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLenum)type, 304127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)stride, 304227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLvoid *)pointer, 304327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)remaining 304427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 304527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 304627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 304727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 304827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void 304927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glViewport__IIII 305027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 305127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich glViewport( 305227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)x, 305327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLint)y, 305427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)width, 305527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich (GLsizei)height 305627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich ); 305727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 305827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 305927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES10"; 306027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 306127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic JNINativeMethod methods[] = { 306227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit }, 306327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I }, 306427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF }, 306527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II }, 306627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindTexture", "(II)V", (void *) android_glBindTexture__II }, 306727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II }, 306827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClear", "(I)V", (void *) android_glClear__I }, 306927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF }, 307027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII }, 307127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F }, 307227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I }, 307327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearStencil", "(I)V", (void *) android_glClearStencil__I }, 307427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I }, 307527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF }, 307627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII }, 307727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ }, 307827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I }, 307927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 }, 308027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 308127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII }, 308227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII }, 308327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCullFace", "(I)V", (void *) android_glCullFace__I }, 308427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II }, 308527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 }, 308627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I }, 308727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z }, 308827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF }, 308927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II }, 309027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisable", "(I)V", (void *) android_glDisable__I }, 309127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I }, 309227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III }, 309327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 }, 309427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnable", "(I)V", (void *) android_glEnable__I }, 309527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I }, 309627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFinish", "()V", (void *) android_glFinish__ }, 309727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFlush", "()V", (void *) android_glFlush__ }, 309827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogf", "(IF)V", (void *) android_glFogf__IF }, 309927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI }, 310027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 }, 310127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogx", "(II)V", (void *) android_glFogx__II }, 310227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II }, 310327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 }, 310427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrontFace", "(I)V", (void *) android_glFrontFace__I }, 310527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF }, 310627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII }, 310727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II }, 310827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 }, 310927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetError", "()I", (void *) android_glGetError__ }, 311027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II }, 311127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 }, 3112a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich{"glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString }, 311327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glHint", "(II)V", (void *) android_glHint__II }, 311427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF }, 311527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI }, 311627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 }, 311727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelx", "(II)V", (void *) android_glLightModelx__II }, 311827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II }, 311927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 }, 312027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightf", "(IIF)V", (void *) android_glLightf__IIF }, 312127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI }, 312227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 }, 312327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightx", "(III)V", (void *) android_glLightx__III }, 312427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II }, 312527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 }, 312627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidth", "(F)V", (void *) android_glLineWidth__F }, 312727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I }, 312827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ }, 312927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI }, 313027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 }, 313127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II }, 313227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 }, 313327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLogicOp", "(I)V", (void *) android_glLogicOp__I }, 313427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF }, 313527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI }, 313627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 }, 313727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialx", "(III)V", (void *) android_glMaterialx__III }, 313827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II }, 313927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 }, 314027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I }, 314127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI }, 314227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 }, 314327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II }, 314427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 }, 314527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF }, 314627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII }, 314727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF }, 314827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3x", "(III)V", (void *) android_glNormal3x__III }, 314927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I }, 315027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF }, 315127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII }, 315227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II }, 315327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSize", "(F)V", (void *) android_glPointSize__F }, 315427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSizex", "(I)V", (void *) android_glPointSizex__I }, 315527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF }, 315627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II }, 315727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPopMatrix", "()V", (void *) android_glPopMatrix__ }, 315827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPushMatrix", "()V", (void *) android_glPushMatrix__ }, 315927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 }, 316027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF }, 316127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII }, 316227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ }, 316327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ }, 316427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalef", "(FFF)V", (void *) android_glScalef__FFF }, 316527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalex", "(III)V", (void *) android_glScalex__III }, 316627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScissor", "(IIII)V", (void *) android_glScissor__IIII }, 316727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glShadeModel", "(I)V", (void *) android_glShadeModel__I }, 316827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III }, 316927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilMask", "(I)V", (void *) android_glStencilMask__I }, 317027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilOp", "(III)V", (void *) android_glStencilOp__III }, 317127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I }, 317227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF }, 317327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI }, 317427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 }, 317527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III }, 317627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II }, 317727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 }, 317827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 }, 317927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF }, 318027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III }, 318127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 318227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF }, 318327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatex", "(III)V", (void *) android_glTranslatex__III }, 318427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I }, 318527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glViewport", "(IIII)V", (void *) android_glViewport__IIII }, 318627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}; 318727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich 318827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES10(JNIEnv *_env) 318927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{ 319027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich int err; 319127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods)); 319227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich return err; 319327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich} 3194