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
20bfe6333c3cf529600f41f14e3b8c5846e632c9a2Andreas Gampe#pragma GCC diagnostic ignored "-Wunused-variable"
21bfe6333c3cf529600f41f14e3b8c5846e632c9a2Andreas Gampe#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
22bfe6333c3cf529600f41f14e3b8c5846e632c9a2Andreas Gampe#pragma GCC diagnostic ignored "-Wunused-function"
23bfe6333c3cf529600f41f14e3b8c5846e632c9a2Andreas Gampe
242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#include <GLES/gl.h>
252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#include <GLES/glext.h>
262ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
279626f8203a8c222b8960a49cdc66d540fdb688b0Jesse Hall#include <jni.h>
289626f8203a8c222b8960a49cdc66d540fdb688b0Jesse Hall#include <JNIHelp.h>
2927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <android_runtime/AndroidRuntime.h>
3027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <utils/misc.h>
3127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <assert.h>
32be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich
3327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic int initialized = 0;
3427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
3527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass nioAccessClass;
3627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass bufferClass;
3727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBasePointerID;
3827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayID;
3927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayOffsetID;
4027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID positionID;
4127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID limitID;
4227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID elementSizeShiftID;
4327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian/* special calls implemented in Android's GLES wrapper used to more
462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * efficiently bound-check passed arrays */
472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianextern "C" {
482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_VERSION_ES_CM_1_1
492ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride,
502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        const GLvoid *ptr, GLsizei count);
512ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride,
522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        const GLvoid *pointer, GLsizei count);
532ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type,
542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
552ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type,
562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
572ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type,
582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
592ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type,
602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
612ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type,
622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif
642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_ES_VERSION_2_0
652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void glVertexAttribPointerBounds(GLuint indx, GLint size, GLenum type,
662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        GLboolean normalized, GLsizei stride, const GLvoid *pointer, GLsizei count) {
672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    glVertexAttribPointer(indx, size, type, normalized, stride, pointer);
682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian}
692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif
70cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden#ifdef GL_ES_VERSION_3_0
71cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFaddenstatic void glVertexAttribIPointerBounds(GLuint indx, GLint size, GLenum type,
72cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden        GLsizei stride, const GLvoid *pointer, GLsizei count) {
73cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden    glVertexAttribIPointer(indx, size, type, stride, pointer);
74cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden}
75cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden#endif
762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian}
772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
7827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* Cache method IDs each time the class is loaded. */
7927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
8027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
8124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass)
8227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
8327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
8427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
8627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
8727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
8827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
8927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
9027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBasePointer", "(Ljava/nio/Buffer;)J");
9127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
9227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
9327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
9427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
9527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
9627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    positionID = _env->GetFieldID(bufferClass, "position", "I");
9727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    limitID = _env->GetFieldID(bufferClass, "limit", "I");
9827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    elementSizeShiftID =
9927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
10027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
10127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
10227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void *
10317045a16575ece34cfadb63da4791f115625df78Thomas TafertshofergetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset)
10427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
10527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint position;
10627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint limit;
10727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint elementSizeShift;
10827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jlong pointer;
10927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
11027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    position = _env->GetIntField(buffer, positionID);
11127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    limit = _env->GetIntField(buffer, limitID);
11227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
11327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    *remaining = (limit - position) << elementSizeShift;
11427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    pointer = _env->CallStaticLongMethod(nioAccessClass,
11527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBasePointerID, buffer);
11627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pointer != 0L) {
11727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        *array = NULL;
11801c26ea89d4bbea3cf550e9328742302dd9a2b25Ashok Bhat        return reinterpret_cast<void*>(pointer);
11927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
12024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
12127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
12227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBaseArrayID, buffer);
12317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    *offset = _env->CallStaticIntMethod(nioAccessClass,
12427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBaseArrayOffsetID, buffer);
1252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
12617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    return NULL;
12727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
12827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
1293b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass ByteArrayGetter {
1303b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1313b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void* Get(JNIEnv* _env, jbyteArray array, jboolean* is_copy) {
1323b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        return _env->GetByteArrayElements(array, is_copy);
1333b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
1343b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
1353b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass BooleanArrayGetter {
1363b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1373b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void* Get(JNIEnv* _env, jbooleanArray array, jboolean* is_copy) {
1383b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        return _env->GetBooleanArrayElements(array, is_copy);
1393b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
1403b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
1413b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass CharArrayGetter {
1423b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1433b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void* Get(JNIEnv* _env, jcharArray array, jboolean* is_copy) {
1443b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        return _env->GetCharArrayElements(array, is_copy);
1453b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
1463b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
1473b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass ShortArrayGetter {
1483b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1493b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void* Get(JNIEnv* _env, jshortArray array, jboolean* is_copy) {
1503b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        return _env->GetShortArrayElements(array, is_copy);
1513b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
1523b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
1533b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass IntArrayGetter {
1543b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1553b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void* Get(JNIEnv* _env, jintArray array, jboolean* is_copy) {
1563b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        return _env->GetIntArrayElements(array, is_copy);
1573b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
1583b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
1593b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass LongArrayGetter {
1603b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1613b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void* Get(JNIEnv* _env, jlongArray array, jboolean* is_copy) {
1623b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        return _env->GetLongArrayElements(array, is_copy);
1633b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
1643b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
1653b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass FloatArrayGetter {
1663b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1673b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void* Get(JNIEnv* _env, jfloatArray array, jboolean* is_copy) {
1683b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        return _env->GetFloatArrayElements(array, is_copy);
1693b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
1703b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
1713b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass DoubleArrayGetter {
1723b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1733b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void* Get(JNIEnv* _env, jdoubleArray array, jboolean* is_copy) {
1743b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        return _env->GetDoubleArrayElements(array, is_copy);
1753b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
1763b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
1773b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi
1783b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchitemplate<typename JTYPEARRAY, typename ARRAYGETTER>
1793b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchistatic void*
1803b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi YamauchigetArrayPointer(JNIEnv *_env, JTYPEARRAY array, jboolean* is_copy) {
1813b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    return ARRAYGETTER::Get(_env, array, is_copy);
1823b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi}
1833b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi
1843b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass ByteArrayReleaser {
1853b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1863b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void Release(JNIEnv* _env, jbyteArray array, jbyte* data, jboolean commit) {
1873b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseByteArrayElements(array, data, commit ? 0 : JNI_ABORT);
1883b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
1893b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
1903b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass BooleanArrayReleaser {
1913b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1923b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void Release(JNIEnv* _env, jbooleanArray array, jboolean* data, jboolean commit) {
1933b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseBooleanArrayElements(array, data, commit ? 0 : JNI_ABORT);
1943b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
1953b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
1963b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass CharArrayReleaser {
1973b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
1983b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void Release(JNIEnv* _env, jcharArray array, jchar* data, jboolean commit) {
1993b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseCharArrayElements(array, data, commit ? 0 : JNI_ABORT);
2003b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
2013b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
2023b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass ShortArrayReleaser {
2033b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
2043b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void Release(JNIEnv* _env, jshortArray array, jshort* data, jboolean commit) {
2053b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseShortArrayElements(array, data, commit ? 0 : JNI_ABORT);
2063b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
2073b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
2083b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass IntArrayReleaser {
2093b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
2103b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void Release(JNIEnv* _env, jintArray array, jint* data, jboolean commit) {
2113b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(array, data, commit ? 0 : JNI_ABORT);
2123b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
2133b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
2143b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass LongArrayReleaser {
2153b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
2163b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void Release(JNIEnv* _env, jlongArray array, jlong* data, jboolean commit) {
2173b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseLongArrayElements(array, data, commit ? 0 : JNI_ABORT);
2183b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
2193b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
2203b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass FloatArrayReleaser {
2213b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
2223b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void Release(JNIEnv* _env, jfloatArray array, jfloat* data, jboolean commit) {
2233b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(array, data, commit ? 0 : JNI_ABORT);
2243b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
2253b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
2263b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchiclass DoubleArrayReleaser {
2273b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchipublic:
2283b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    static void Release(JNIEnv* _env, jdoubleArray array, jdouble* data, jboolean commit) {
2293b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseDoubleArrayElements(array, data, commit ? 0 : JNI_ABORT);
2303b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    }
2313b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi};
2323b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi
2333b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchitemplate<typename JTYPEARRAY, typename NTYPEARRAY, typename ARRAYRELEASER>
2343b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchistatic void
2353b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi YamauchireleaseArrayPointer(JNIEnv *_env, JTYPEARRAY array, NTYPEARRAY data, jboolean commit) {
2363b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    ARRAYRELEASER::Release(_env, array, data, commit);
2373b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi}
2383b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi
23927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
24027f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
24127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
24227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _env->ReleasePrimitiveArrayCritical(array, data,
2432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian                       commit ? 0 : JNI_ABORT);
24427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
24527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
246be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichstatic void *
247be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) {
248be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    char* buf = (char*) _env->GetDirectBufferAddress(buffer);
249be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (buf) {
250be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        jint position = _env->GetIntField(buffer, positionID);
251be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
252be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        buf += position << elementSizeShift;
253be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    } else {
25424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException",
25524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes                          "Must use a native order direct Buffer");
256be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
257be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    return (void*) buf;
258be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich}
2592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian// --------------------------------------------------------------------------
2612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian/*
2632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * returns the number of values glGet returns for a given pname.
2642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian *
2652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * The code below is written such that pnames requiring only one values
2662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * are the default (and are not explicitely tested for). This makes the
2672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * checking code much shorter/readable/efficient.
2682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian *
2692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * This means that unknown pnames (e.g.: extensions) will default to 1. If
2702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * that unknown pname needs more than 1 value, then the validation check
2712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * is incomplete and the app may crash if it passed the wrong number params.
2722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian */
2732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic int getNeededCount(GLint pname) {
2742ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    int needed = 1;
2752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_ES_VERSION_2_0
2762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // GLES 2.x pnames
2772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    switch (pname) {
2782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_ALIASED_LINE_WIDTH_RANGE:
2792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_ALIASED_POINT_SIZE_RANGE:
2802ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 2;
2812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
2822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_BLEND_COLOR:
2842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COLOR_CLEAR_VALUE:
2852ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COLOR_WRITEMASK:
2862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_SCISSOR_BOX:
2872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_VIEWPORT:
2882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 4;
2892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
2902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COMPRESSED_TEXTURE_FORMATS:
2922ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed);
2932ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
2942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_SHADER_BINARY_FORMATS:
2962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            glGetIntegerv(GL_NUM_SHADER_BINARY_FORMATS, &needed);
2972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
2982ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
2992ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif
3002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_VERSION_ES_CM_1_1
3022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // GLES 1.x pnames
3032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    switch (pname) {
3042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_ALIASED_LINE_WIDTH_RANGE:
3052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_ALIASED_POINT_SIZE_RANGE:
3062ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_DEPTH_RANGE:
3072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_SMOOTH_LINE_WIDTH_RANGE:
3082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_SMOOTH_POINT_SIZE_RANGE:
3092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 2;
3102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
3112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_CURRENT_NORMAL:
3132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_POINT_DISTANCE_ATTENUATION:
3142ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 3;
3152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
3162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COLOR_CLEAR_VALUE:
3182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COLOR_WRITEMASK:
3192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_CURRENT_COLOR:
3202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_CURRENT_TEXTURE_COORDS:
3212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_FOG_COLOR:
3222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_LIGHT_MODEL_AMBIENT:
3232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_SCISSOR_BOX:
3242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_VIEWPORT:
3252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 4;
3262ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
3272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_MODELVIEW_MATRIX:
3292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_PROJECTION_MATRIX:
3302ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_TEXTURE_MATRIX:
3312ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 16;
3322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
3332ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3342ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COMPRESSED_TEXTURE_FORMATS:
3352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed);
3362ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
3372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
3382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif
3392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    return needed;
3402ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian}
3412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3423b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchitemplate <typename JTYPEARRAY, typename ARRAYGETTER, typename NTYPEARRAY,
3433b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi          typename ARRAYRELEASER, typename CTYPE, void GET(GLenum, CTYPE*)>
3442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void
3452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianget
3462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian  (JNIEnv *_env, jobject _this, jint pname, JTYPEARRAY params_ref, jint offset) {
3472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jint _exception = 0;
3482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType;
3492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage;
3502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    CTYPE *params_base = (CTYPE *) 0;
3512ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jint _remaining;
3522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    CTYPE *params = (CTYPE *) 0;
3532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    int _needed = 0;
3542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (!params_ref) {
3562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exception = 1;
3572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionType = "java/lang/IllegalArgumentException";
3582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionMessage = "params == null";
3592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        goto exit;
3602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
3612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (offset < 0) {
3622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exception = 1;
3632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionType = "java/lang/IllegalArgumentException";
3642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionMessage = "offset < 0";
3652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        goto exit;
3662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
3672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    _remaining = _env->GetArrayLength(params_ref) - offset;
3682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    _needed = getNeededCount(pname);
3692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // if we didn't find this pname, we just assume the user passed
3702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // an array of the right size -- this might happen with extensions
3712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // or if we forget an enum here.
3722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (_remaining < _needed) {
3732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exception = 1;
3742ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionType = "java/lang/IllegalArgumentException";
3752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionMessage = "length - offset < needed";
3762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        goto exit;
3772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
3783b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params_base = (CTYPE *) getArrayPointer<JTYPEARRAY, ARRAYGETTER>(
3793b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env, params_ref, (jboolean *)0);
3802ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    params = params_base + offset;
3812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    GET(
3832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        (GLenum)pname,
3842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        (CTYPE *)params
3852ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    );
3862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianexit:
3882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (params_base) {
3893b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        releaseArrayPointer<JTYPEARRAY, NTYPEARRAY, ARRAYRELEASER>(
3903b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi            _env, params_ref, params_base, !_exception);
3912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
3922ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (_exception) {
3932ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        jniThrowException(_env, _exceptionType, _exceptionMessage);
3942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
3952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian}
3962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3983b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchitemplate <typename CTYPE, typename JTYPEARRAY, typename ARRAYGETTER, typename NTYPEARRAY,
3993b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi          typename ARRAYRELEASER, void GET(GLenum, CTYPE*)>
4002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void
4012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopiangetarray
4022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
4032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jint _exception = 0;
4042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType;
4052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage;
4063b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    JTYPEARRAY _array = (JTYPEARRAY) 0;
4072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jint _bufferOffset = (jint) 0;
4082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jint _remaining;
4092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    CTYPE *params = (CTYPE *) 0;
4102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    int _needed = 0;
4112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
4123b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (CTYPE *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
413cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden    _remaining /= sizeof(CTYPE);    // convert from bytes to item count
4142ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    _needed = getNeededCount(pname);
4152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // if we didn't find this pname, we just assume the user passed
4162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // an array of the right size -- this might happen with extensions
4172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // or if we forget an enum here.
4182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (_needed>0 && _remaining < _needed) {
4192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exception = 1;
4202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionType = "java/lang/IllegalArgumentException";
4212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionMessage = "remaining() < needed";
4222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        goto exit;
4232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
4242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (params == NULL) {
4253b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *) getArrayPointer<JTYPEARRAY, ARRAYGETTER>(
4263b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi            _env, _array, (jboolean *) 0);
4272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        params = (CTYPE *) (_paramsBase + _bufferOffset);
4282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
4292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    GET(
4302ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        (GLenum)pname,
4312ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        (CTYPE *)params
4322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    );
4332ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
4342ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianexit:
4352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (_array) {
4363b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        releaseArrayPointer<JTYPEARRAY, NTYPEARRAY, ARRAYRELEASER>(
4373b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi            _env, _array, (NTYPEARRAY)params, _exception ? JNI_FALSE : JNI_TRUE);
4382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
4392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (_exception) {
4402ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        jniThrowException(_env, _exceptionType, _exceptionMessage);
4412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
4422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian}
4432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
44427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// --------------------------------------------------------------------------
44527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBlendEquationSeparateOES ( GLenum modeRGB, GLenum modeAlpha ) */
44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBlendEquationSeparateOES__II
44827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint modeRGB, jint modeAlpha) {
449a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glBlendEquationSeparateOES(
450a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)modeRGB,
451a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)modeAlpha
452a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
45327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
45427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
45527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBlendFuncSeparateOES ( GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha ) */
45627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
45727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBlendFuncSeparateOES__IIII
45827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) {
459a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glBlendFuncSeparateOES(
460a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)srcRGB,
461a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)dstRGB,
462a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)srcAlpha,
463a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)dstAlpha
464a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
46527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
46627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBlendEquationOES ( GLenum mode ) */
46827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBlendEquationOES__I
47027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
471a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glBlendEquationOES(
472a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)mode
473a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
47427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
47527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
47627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexsOES ( GLshort x, GLshort y, GLshort z, GLshort width, GLshort height ) */
47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexsOES__SSSSS
47927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jshort x, jshort y, jshort z, jshort width, jshort height) {
48027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexsOES(
48127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLshort)x,
48227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLshort)y,
48327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLshort)z,
48427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLshort)width,
48527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLshort)height
48627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
48727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
48827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
48927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexiOES ( GLint x, GLint y, GLint z, GLint width, GLint height ) */
49027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
49127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexiOES__IIIII
49227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
49327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexiOES(
49427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
49527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)z,
49727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)width,
49827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)height
49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
50127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
50227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexxOES ( GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height ) */
50327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
50427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexxOES__IIIII
50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexxOES(
50727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)x,
50827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)y,
50927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)z,
51027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)width,
51127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)height
51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
51427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
51527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexsvOES ( const GLshort *coords ) */
51627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
51727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexsvOES___3SI
51827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jshortArray coords_ref, jint offset) {
5192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
5202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
5212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
52227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLshort *coords_base = (GLshort *) 0;
52327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
52427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLshort *coords = (GLshort *) 0;
52527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
52627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!coords_ref) {
5272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
5282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
5292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "coords == null";
53027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
53127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
53227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
5332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
5342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
5352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
53627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
53727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
53827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(coords_ref) - offset;
53927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 5) {
5402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
5412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
5422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 5 < needed";
54327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
54427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
54527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    coords_base = (GLshort *)
5463b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetShortArrayElements(coords_ref, (jboolean *)0);
54727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    coords = coords_base + offset;
54827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
54927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexsvOES(
55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLshort *)coords
55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
55227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
55327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
55427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (coords_base) {
5553b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseShortArrayElements(coords_ref, (jshort*)coords_base,
55627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
55727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
5582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
5592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
5602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
56127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
56227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
56327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexsvOES ( const GLshort *coords ) */
56427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
56527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexsvOES__Ljava_nio_ShortBuffer_2
56627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject coords_buf) {
5672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
5682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
5692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
5703b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jshortArray _array = (jshortArray) 0;
57117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
57227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
57327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLshort *coords = (GLshort *) 0;
57427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
5753b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    coords = (GLshort *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
57627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 5) {
5772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
5782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
5792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 5 < needed";
58027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
58127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
58217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (coords == NULL) {
5833b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _coordsBase = (char *)_env->GetShortArrayElements(_array, (jboolean *) 0);
58417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        coords = (GLshort *) (_coordsBase + _bufferOffset);
58517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
58627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexsvOES(
58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLshort *)coords
58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
58927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
59027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
59127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
5923b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseShortArrayElements(_array, (jshort*)coords, JNI_ABORT);
59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
5942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
5952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
5962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
59727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
59827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
59927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexivOES ( const GLint *coords ) */
60027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexivOES___3II
60227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
6032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
6042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
6052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *coords_base = (GLint *) 0;
60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
60827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *coords = (GLint *) 0;
60927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
61027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!coords_ref) {
6112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "coords == null";
61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
61627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
6172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
62227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(coords_ref) - offset;
62327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 5) {
6242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 5 < needed";
62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
62927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    coords_base = (GLint *)
6303b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(coords_ref, (jboolean *)0);
63127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    coords = coords_base + offset;
63227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexivOES(
63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)coords
63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
63827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (coords_base) {
6393b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(coords_ref, (jint*)coords_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 glDrawTexivOES ( const GLint *coords ) */
64827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
64927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexivOES__Ljava_nio_IntBuffer_2
65027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject coords_buf) {
6512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
6522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
6532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
6543b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
65517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
65627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
65727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *coords = (GLint *) 0;
65827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
6593b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    coords = (GLint *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
66027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 5) {
6612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 5 < needed";
66427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
66527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
66617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (coords == NULL) {
6673b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _coordsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
66817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        coords = (GLint *) (_coordsBase + _bufferOffset);
66917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
67027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexivOES(
67127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)coords
67227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
67327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
67427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
67527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
6763b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)coords, JNI_ABORT);
67727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
6782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
6792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
6802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
68127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
68227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
68327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexxvOES ( const GLfixed *coords ) */
68427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
68527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexxvOES___3II
68627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
6872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
6882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
6892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
69027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *coords_base = (GLfixed *) 0;
69127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
69227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *coords = (GLfixed *) 0;
69327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
69427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!coords_ref) {
6952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "coords == null";
69827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
69927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
70027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
7012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
7022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
7032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
70427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
70527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
70627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(coords_ref) - offset;
70727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 5) {
7082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
7092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
7102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 5 < needed";
71127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
71227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
71327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    coords_base = (GLfixed *)
7143b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(coords_ref, (jboolean *)0);
71527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    coords = coords_base + offset;
71627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
71727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexxvOES(
71827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)coords
71927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
72027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
72127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (coords_base) {
7233b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(coords_ref, (jint*)coords_base,
72427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
72527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
7262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
7272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
7282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
72927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
73027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
73127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexxvOES ( const GLfixed *coords ) */
73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
73327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexxvOES__Ljava_nio_IntBuffer_2
73427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject coords_buf) {
7352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
7362ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
7372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
7383b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
73917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *coords = (GLfixed *) 0;
74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
7433b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    coords = (GLfixed *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
74427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 5) {
7452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
7462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
7472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 5 < needed";
74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
75017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (coords == NULL) {
7513b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _coordsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
75217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        coords = (GLfixed *) (_coordsBase + _bufferOffset);
75317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
75427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexxvOES(
75527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)coords
75627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
75727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
75827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
75927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
7603b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)coords, JNI_ABORT);
76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
7622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
7632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
7642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
76527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
76627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
76727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexfOES ( GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height ) */
76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexfOES__FFFFF
77027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z, jfloat width, jfloat height) {
77127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexfOES(
77227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)x,
77327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)y,
77427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)z,
77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)width,
77627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)height
77727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
77827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
77927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
78027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexfvOES ( const GLfloat *coords ) */
78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexfvOES___3FI
78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloatArray coords_ref, jint offset) {
7842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
7852ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
7862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
78727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *coords_base = (GLfloat *) 0;
78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *coords = (GLfloat *) 0;
79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!coords_ref) {
7922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
7932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
7942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "coords == null";
79527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
79627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
79727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
7982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
7992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
80127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
80227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
80327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(coords_ref) - offset;
80427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 5) {
8052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
8062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 5 < needed";
80827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
80927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
81027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    coords_base = (GLfloat *)
8113b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetFloatArrayElements(coords_ref, (jboolean *)0);
81227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    coords = coords_base + offset;
81327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
81427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexfvOES(
81527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)coords
81627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
81727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
81827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
81927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (coords_base) {
8203b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(coords_ref, (jfloat*)coords_base,
82127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
82227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
8232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
8242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
8252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
82627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
82727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
82827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawTexfvOES ( const GLfloat *coords ) */
82927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
83027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawTexfvOES__Ljava_nio_FloatBuffer_2
83127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject coords_buf) {
8322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
8332ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
8342ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
8353b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jfloatArray _array = (jfloatArray) 0;
83617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
83727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
83827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *coords = (GLfloat *) 0;
83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
8403b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    coords = (GLfloat *)getPointer(_env, coords_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
84127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 5) {
8422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
8432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 5 < needed";
84527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
84627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
84717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (coords == NULL) {
8483b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _coordsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0);
84917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        coords = (GLfloat *) (_coordsBase + _bufferOffset);
85017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
85127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawTexfvOES(
85227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)coords
85327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
85427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
85527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
85627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
8573b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(_array, (jfloat*)coords, JNI_ABORT);
85827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
8592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
8602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
8612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
86227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
86327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
86427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEGLImageTargetTexture2DOES ( GLenum target, GLeglImageOES image ) */
86527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
86627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEGLImageTargetTexture2DOES__ILjava_nio_Buffer_2
86727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jobject image_buf) {
868a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jarray _array = (jarray) 0;
86917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
870a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
871a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLeglImageOES image = (GLeglImageOES) 0;
872a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
8733b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    image = (GLeglImageOES)getPointer(_env, image_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
87417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (image == NULL) {
87517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _imageBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
87617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        image = (GLeglImageOES) (_imageBase + _bufferOffset);
87717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
878a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glEGLImageTargetTexture2DOES(
879a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
880a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLeglImageOES)image
881a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
882a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
8832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, image, JNI_TRUE);
884a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
88727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEGLImageTargetRenderbufferStorageOES ( GLenum target, GLeglImageOES image ) */
88827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
88927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEGLImageTargetRenderbufferStorageOES__ILjava_nio_Buffer_2
89027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jobject image_buf) {
891a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jarray _array = (jarray) 0;
89217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
893a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
894a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLeglImageOES image = (GLeglImageOES) 0;
895a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
8963b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    image = (GLeglImageOES)getPointer(_env, image_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
89717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (image == NULL) {
89817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _imageBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
89917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        image = (GLeglImageOES) (_imageBase + _bufferOffset);
90017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
901a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glEGLImageTargetRenderbufferStorageOES(
902a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
903a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLeglImageOES)image
904a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
905a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
9062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, image, JNI_TRUE);
907a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
90827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
90927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
91027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFuncxOES ( GLenum func, GLclampx ref ) */
91127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
91227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFuncxOES__II
91327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jint ref) {
914a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glAlphaFuncxOES(
915a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)func,
916a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampx)ref
917a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
91827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
91927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
92027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColorxOES ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */
92127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
92227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColorxOES__IIII
92327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
924a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glClearColorxOES(
925a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampx)red,
926a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampx)green,
927a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampx)blue,
928a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampx)alpha
929a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
93027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
93127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
93227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthxOES ( GLclampx depth ) */
93327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthxOES__I
93527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint depth) {
936a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glClearDepthxOES(
937a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampx)depth
938a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
93927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
94027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
94127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanexOES ( GLenum plane, const GLfixed *equation ) */
94227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
94327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanexOES__I_3II
94427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) {
9452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
9462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
9472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
948a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *equation_base = (GLfixed *) 0;
949a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
950a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *equation = (GLfixed *) 0;
951a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
952a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!equation_ref) {
9532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
9542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "equation == null";
956a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
957a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
958a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
9592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
9602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
962a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
963a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
964a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(equation_ref) - offset;
965a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    equation_base = (GLfixed *)
9663b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(equation_ref, (jboolean *)0);
967a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    equation = equation_base + offset;
968a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
969a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glClipPlanexOES(
970a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)plane,
971a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)equation
972a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
973a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
974a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
975a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (equation_base) {
9763b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(equation_ref, (jint*)equation_base,
977a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
978a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
9792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
9802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
9812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
98227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
98327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
98427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanexOES ( GLenum plane, const GLfixed *equation ) */
98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
98627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanexOES__ILjava_nio_IntBuffer_2
98727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
9883b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
98917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
990a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
991a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *equation = (GLfixed *) 0;
992a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
9933b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    equation = (GLfixed *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
99417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (equation == NULL) {
9953b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _equationBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
99617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        equation = (GLfixed *) (_equationBase + _bufferOffset);
99717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
998a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glClipPlanexOES(
999a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)plane,
1000a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)equation
1001a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1002a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
10033b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)equation, JNI_ABORT);
1004a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
100527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
100627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
100727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4xOES ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */
100827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
100927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4xOES__IIII
101027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
1011a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glColor4xOES(
1012a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)red,
1013a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)green,
1014a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)blue,
1015a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)alpha
1016a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
101727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
101827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
101927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangexOES ( GLclampx zNear, GLclampx zFar ) */
102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
102127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangexOES__II
102227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint zNear, jint zFar) {
1023a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glDepthRangexOES(
1024a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampx)zNear,
1025a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampx)zFar
1026a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
102727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
102827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
102927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxOES ( GLenum pname, GLfixed param ) */
103027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
103127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxOES__II
103227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
1033a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glFogxOES(
1034a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1035a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)param
1036a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
103727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
103827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
103927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxvOES ( GLenum pname, const GLfixed *params ) */
104027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
104127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxvOES__I_3II
104227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
10432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
10442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
10452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1046a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
1047a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1048a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1049a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1050a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
10512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
10522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
10532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
1054a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1055a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1056a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
10572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
10582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
10592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1060a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1061a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1062a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1063a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
10643b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
1065a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
1066a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1067a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glFogxvOES(
1068a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1069a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1070a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1071a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1072a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1073a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
10743b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1075a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
1076a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
10772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
10782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
10792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxvOES ( GLenum pname, const GLfixed *params ) */
108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxvOES__ILjava_nio_IntBuffer_2
108527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
10863b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
108717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1088a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1089a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1090a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
10913b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
109217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
10933b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
109417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
109517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1096a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glFogxvOES(
1097a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1098a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1099a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1100a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
11013b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
1102a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
110327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
110427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumxOES ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
110727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumxOES__IIIIII
110827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
1109a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glFrustumxOES(
1110a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)left,
1111a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)right,
1112a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)bottom,
1113a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)top,
1114a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)zNear,
1115a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)zFar
1116a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
111827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanexOES ( GLenum pname, GLfixed *eqn ) */
112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
112127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanexOES__I_3II
112227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) {
1123a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
11242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
11252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1126a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *eqn_base = (GLfixed *) 0;
1127a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1128a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *eqn = (GLfixed *) 0;
1129a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1130a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!eqn_ref) {
1131a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
11322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "eqn == null";
1134a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1135a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1136a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
1137a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
11382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1140a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1141a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1142a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(eqn_ref) - offset;
1143a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_remaining < 4) {
1144a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
11452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 4 < needed";
1147a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1148a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1149a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    eqn_base = (GLfixed *)
11503b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(eqn_ref, (jboolean *)0);
1151a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    eqn = eqn_base + offset;
1152a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1153a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetClipPlanexOES(
1154a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1155a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)eqn
1156a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1157a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1158a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1159a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (eqn_base) {
11603b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(eqn_ref, (jint*)eqn_base,
1161a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            _exception ? JNI_ABORT: 0);
1162a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
11632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
11642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
11652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
116627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
116727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanexOES ( GLenum pname, GLfixed *eqn ) */
116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
117027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanexOES__ILjava_nio_IntBuffer_2
117127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
1172a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
11732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
11742ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
11753b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
117617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1177a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1178a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *eqn = (GLfixed *) 0;
1179a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
11803b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    eqn = (GLfixed *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1181a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_remaining < 4) {
1182a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
11832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 4 < needed";
1185a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1186a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
118717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (eqn == NULL) {
11883b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _eqnBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
118917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        eqn = (GLfixed *) (_eqnBase + _bufferOffset);
119017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1191a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetClipPlanexOES(
1192a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1193a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)eqn
1194a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1195a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1196a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1197a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
11983b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)eqn, _exception ? JNI_ABORT : 0);
1199a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
12002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
12012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
12022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
120527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFixedvOES ( GLenum pname, GLfixed *params ) */
120627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
120727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFixedvOES__I_3II
120827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
1209a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
12102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
12112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1212a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
1213a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1214a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1215a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1216a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
1217a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
12182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
12192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
1220a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1221a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1222a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
1223a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
12242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
12252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1226a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1227a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1228a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1229a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
12303b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
1231a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
1232a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1233a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetFixedvOES(
1234a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1235a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1236a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1237a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1238a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1239a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
12403b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1241a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            _exception ? JNI_ABORT: 0);
1242a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
12432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
12442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
12452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
124627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
124727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
124827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFixedvOES ( GLenum pname, GLfixed *params ) */
124927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
125027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFixedvOES__ILjava_nio_IntBuffer_2
125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
12523b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
125317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1254a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1255a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1256a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
12573b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
125817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
12593b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
126017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
126117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1262a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetFixedvOES(
1263a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1264a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1265a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1266a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
12673b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1268a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
127027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
127127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightxvOES ( GLenum light, GLenum pname, GLfixed *params ) */
127227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
127327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightxvOES__II_3II
127427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
1275a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
12762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
12772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1278a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
1279a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1280a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1281a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1282a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
1283a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
12842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
12852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
1286a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1287a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1288a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
1289a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
12902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
12912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1292a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1293a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1294a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1295a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
12963b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
1297a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
1298a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1299a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetLightxvOES(
1300a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)light,
1301a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1302a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1303a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1304a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1305a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1306a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
13073b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1308a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            _exception ? JNI_ABORT: 0);
1309a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
13102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
13112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
13122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
131327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
131427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
131527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightxvOES ( GLenum light, GLenum pname, GLfixed *params ) */
131627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
131727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightxvOES__IILjava_nio_IntBuffer_2
131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
13193b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
132017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1321a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1322a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1323a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
13243b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
132517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
13263b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
132717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
132817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1329a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetLightxvOES(
1330a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)light,
1331a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1332a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1333a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1334a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
13353b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1336a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
133727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
133827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
133927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialxvOES ( GLenum face, GLenum pname, GLfixed *params ) */
134027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
134127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialxvOES__II_3II
134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
1343a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
13442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
13452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1346a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
1347a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1348a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1349a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1350a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
1351a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
13522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
13532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
1354a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1355a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1356a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
1357a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
13582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
13592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1360a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1361a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1362a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1363a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
13643b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
1365a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
1366a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1367a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetMaterialxvOES(
1368a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)face,
1369a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1370a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1371a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1372a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1373a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1374a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
13753b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1376a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            _exception ? JNI_ABORT: 0);
1377a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
13782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
13792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
13802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
138127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
138327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialxvOES ( GLenum face, GLenum pname, GLfixed *params ) */
138427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
138527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialxvOES__IILjava_nio_IntBuffer_2
138627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
13873b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
138817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1389a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1390a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1391a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
13923b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
139317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
13943b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
139517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
139617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1397a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetMaterialxvOES(
1398a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)face,
1399a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1400a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1401a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1402a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
14033b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1404a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
140527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
140627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
140727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvxvOES ( GLenum env, GLenum pname, GLfixed *params ) */
140827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
140927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvxvOES__II_3II
141027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
1411a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
14122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
14132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1414a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
1415a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1416a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1417a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1418a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
1419a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
14202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
14212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
1422a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1423a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1424a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
1425a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
14262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
14272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1428a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1429a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1430a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1431a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
14323b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
1433a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
1434a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1435a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetTexEnvxvOES(
1436a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)env,
1437a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1438a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1439a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1440a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1441a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1442a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
14433b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1444a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            _exception ? JNI_ABORT: 0);
1445a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
14462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
14472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
14482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
145027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
145127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvxvOES ( GLenum env, GLenum pname, GLfixed *params ) */
145227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
145327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvxvOES__IILjava_nio_IntBuffer_2
145427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
14553b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
145617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1457a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1458a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1459a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
14603b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
146117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
14623b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
146317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
146417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1465a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetTexEnvxvOES(
1466a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)env,
1467a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1468a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1469a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1470a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
14713b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1472a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
147327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterxvOES ( GLenum target, GLenum pname, GLfixed *params ) */
147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
147727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterxvOES__II_3II
147827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1479a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
14802ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
14812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1482a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
1483a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1484a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1485a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1486a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
1487a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
14882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
14892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
1490a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1491a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1492a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
1493a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
14942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
14952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1496a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1497a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1498a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1499a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
15003b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
1501a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
1502a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1503a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetTexParameterxvOES(
1504a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
1505a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1506a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1507a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1508a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1509a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1510a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
15113b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1512a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            _exception ? JNI_ABORT: 0);
1513a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
15142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
15152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
15162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
151727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
151827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
151927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterxvOES ( GLenum target, GLenum pname, GLfixed *params ) */
152027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
152127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterxvOES__IILjava_nio_IntBuffer_2
152227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
15233b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
152417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1525a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1526a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1527a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
15283b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
152917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
15303b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
153117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
153217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1533a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetTexParameterxvOES(
1534a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
1535a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1536a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1537a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1538a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
15393b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1540a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
154227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
154327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxOES ( GLenum pname, GLfixed param ) */
154427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
154527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxOES__II
154627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
1547a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glLightModelxOES(
1548a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1549a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)param
1550a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
155127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
155227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
155327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxvOES ( GLenum pname, const GLfixed *params ) */
155427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxvOES__I_3II
155627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
15572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
15582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
15592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1560a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
1561a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1562a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1563a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1564a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
15652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
15662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
15672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
1568a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1569a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1570a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
15712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
15722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
15732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1574a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1575a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1576a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1577a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
15783b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
1579a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
1580a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1581a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glLightModelxvOES(
1582a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1583a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1584a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1585a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1586a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1587a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
15883b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1589a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
1590a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
15912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
15922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
15932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
159427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
159527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxvOES ( GLenum pname, const GLfixed *params ) */
159727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
159827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxvOES__ILjava_nio_IntBuffer_2
159927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
16003b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
160117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1602a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1603a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1604a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
16053b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
160617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
16073b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
160817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
160917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1610a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glLightModelxvOES(
1611a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1612a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1613a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1614a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
16153b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
1616a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
161727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
161827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
161927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxOES ( GLenum light, GLenum pname, GLfixed param ) */
162027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
162127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxOES__III
162227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) {
1623a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glLightxOES(
1624a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)light,
1625a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1626a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)param
1627a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
162827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
162927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxvOES ( GLenum light, GLenum pname, const GLfixed *params ) */
163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxvOES__II_3II
163327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
16342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
16352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
16362ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1637a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
1638a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1639a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1640a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1641a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
16422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
16432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
16442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
1645a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1646a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1647a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
16482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
16492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
16502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1651a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1652a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1653a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1654a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
16553b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
1656a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
1657a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1658a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glLightxvOES(
1659a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)light,
1660a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1661a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1662a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1663a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1664a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1665a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
16663b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1667a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
1668a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
16692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
16702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
16712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
167227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
167327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
167427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxvOES ( GLenum light, GLenum pname, const GLfixed *params ) */
167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
167627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxvOES__IILjava_nio_IntBuffer_2
167727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
16783b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
167917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1680a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1681a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1682a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
16833b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
168417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
16853b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
168617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
168717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1688a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glLightxvOES(
1689a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)light,
1690a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1691a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1692a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1693a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
16943b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
1695a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
169627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
169727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
169827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidthxOES ( GLfixed width ) */
169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
170027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidthxOES__I
170127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint width) {
1702a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glLineWidthxOES(
1703a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)width
1704a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
170527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixxOES ( const GLfixed *m ) */
170827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
170927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixxOES___3II
171027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
17112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
17122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
17132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1714a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *m_base = (GLfixed *) 0;
1715a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1716a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *m = (GLfixed *) 0;
171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
1718a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!m_ref) {
17192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
17202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
17212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
1722a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1723a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1724a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
17252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
17262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
17272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1728a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1729a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1730a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
1731a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    m_base = (GLfixed *)
17323b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(m_ref, (jboolean *)0);
1733a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    m = m_base + offset;
1734a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1735a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glLoadMatrixxOES(
1736a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)m
1737a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1738a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1739a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1740a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (m_base) {
17413b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(m_ref, (jint*)m_base,
1742a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
1743a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
17442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
17452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
17462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
1747a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich}
1748a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1749a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich/* void glLoadMatrixxOES ( const GLfixed *m ) */
1750a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichstatic void
175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixxOES__Ljava_nio_IntBuffer_2
175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
17533b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
175417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1755a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1756a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *m = (GLfixed *) 0;
1757a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
17583b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
175917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
17603b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
176117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfixed *) (_mBase + _bufferOffset);
176217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1763a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glLoadMatrixxOES(
1764a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)m
1765a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1766a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
17673b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT);
1768a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
177127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxOES ( GLenum face, GLenum pname, GLfixed param ) */
177227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxOES__III
177427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) {
1775a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glMaterialxOES(
1776a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)face,
1777a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1778a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)param
1779a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
178227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxvOES ( GLenum face, GLenum pname, const GLfixed *params ) */
178327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
178427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxvOES__II_3II
178527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
17862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
17872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
17882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1789a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
1790a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1791a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1792a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1793a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
17942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
17952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
17962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
1797a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1798a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1799a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
18002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
18012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
18022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1803a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1804a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1805a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1806a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
18073b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
1808a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
1809a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1810a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glMaterialxvOES(
1811a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)face,
1812a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1813a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1814a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1815a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1816a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1817a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
18183b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1819a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
1820a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
18212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
18222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
18232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
182427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
182527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxvOES ( GLenum face, GLenum pname, const GLfixed *params ) */
182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxvOES__IILjava_nio_IntBuffer_2
182927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
18303b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
183117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1832a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1833a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1834a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
18353b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
183617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
18373b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
183817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
183917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1840a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glMaterialxvOES(
1841a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)face,
1842a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1843a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1844a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1845a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
18463b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
1847a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
184827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
185027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixxOES ( const GLfixed *m ) */
185127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
185227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixxOES___3II
185327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
18542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
18552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
18562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1857a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *m_base = (GLfixed *) 0;
1858a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1859a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *m = (GLfixed *) 0;
1860a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1861a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!m_ref) {
18622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
18632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
18642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
1865a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1866a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1867a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
18682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
18692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
18702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1871a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1872a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1873a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
1874a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    m_base = (GLfixed *)
18753b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(m_ref, (jboolean *)0);
1876a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    m = m_base + offset;
1877a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1878a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glMultMatrixxOES(
1879a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)m
1880a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1881a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1882a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1883a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (m_base) {
18843b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(m_ref, (jint*)m_base,
1885a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
1886a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
18872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
18882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
18892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
189027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
189227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixxOES ( const GLfixed *m ) */
189327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
189427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixxOES__Ljava_nio_IntBuffer_2
189527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
18963b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
189717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
1898a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1899a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *m = (GLfixed *) 0;
1900a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
19013b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    m = (GLfixed *)getPointer(_env, m_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
190217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
19033b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _mBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
190417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfixed *) (_mBase + _bufferOffset);
190517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
1906a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glMultMatrixxOES(
1907a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)m
1908a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1909a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
19103b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)m, JNI_ABORT);
1911a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4xOES ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */
191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4xOES__IIIII
191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) {
1918a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glMultiTexCoord4xOES(
1919a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
1920a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)s,
1921a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)t,
1922a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)r,
1923a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)q
1924a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
192727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3xOES ( GLfixed nx, GLfixed ny, GLfixed nz ) */
192827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
192927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3xOES__III
193027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) {
1931a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glNormal3xOES(
1932a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)nx,
1933a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)ny,
1934a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)nz
1935a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
193727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
193827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthoxOES ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
193927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
194027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthoxOES__IIIIII
194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
1942a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glOrthoxOES(
1943a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)left,
1944a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)right,
1945a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)bottom,
1946a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)top,
1947a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)zNear,
1948a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)zFar
1949a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
195127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
195227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxOES ( GLenum pname, GLfixed param ) */
195327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxOES__II
195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
1956a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glPointParameterxOES(
1957a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1958a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)param
1959a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
196027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
196127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
196227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxvOES ( GLenum pname, const GLfixed *params ) */
196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
196427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxvOES__I_3II
196527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
19662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
19672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
19682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
1969a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
1970a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
1971a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
1972a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1973a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
19742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
19752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
1977a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1978a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1979a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
19802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
19812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
1983a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
1984a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
1985a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1986a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
19873b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
1988a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
1989a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1990a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glPointParameterxvOES(
1991a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
1992a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
1993a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
1994a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
1995a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
1996a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
19973b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1998a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
1999a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
20002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
20012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
20022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
200327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
200427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
200527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxvOES ( GLenum pname, const GLfixed *params ) */
200627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
200727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxvOES__ILjava_nio_IntBuffer_2
200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
20093b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
201017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
2011a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
2012a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
2013a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
20143b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
201517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
20163b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
201717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
201817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
2019a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glPointParameterxvOES(
2020a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
2021a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
2022a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
2023a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
20243b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
2025a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
202727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
202827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizexOES ( GLfixed size ) */
202927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
203027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSizexOES__I
203127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size) {
2032a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glPointSizexOES(
2033a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)size
2034a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
203527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
203627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
203727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffsetxOES ( GLfixed factor, GLfixed units ) */
203827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
203927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffsetxOES__II
204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint factor, jint units) {
2041a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glPolygonOffsetxOES(
2042a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)factor,
2043a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)units
2044a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
204527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
204627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
204727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatexOES ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */
204827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
204927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatexOES__IIII
205027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) {
2051a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glRotatexOES(
2052a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)angle,
2053a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)x,
2054a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)y,
2055a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)z
2056a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
205727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
205927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoveragexOES ( GLclampx value, GLboolean invert ) */
206027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
206127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoveragexOES__IZ
206227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint value, jboolean invert) {
2063a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glSampleCoveragexOES(
2064a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampx)value,
2065a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLboolean)invert
2066a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
206727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalexOES ( GLfixed x, GLfixed y, GLfixed z ) */
207027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
207127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalexOES__III
207227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
2073a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glScalexOES(
2074a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)x,
2075a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)y,
2076a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)z
2077a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
207827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxOES ( GLenum target, GLenum pname, GLfixed param ) */
208127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
208227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxOES__III
208327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
2084a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexEnvxOES(
2085a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
2086a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
2087a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)param
2088a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
208927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
209027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
209127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxvOES ( GLenum target, GLenum pname, const GLfixed *params ) */
209227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
209327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxvOES__II_3II
209427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
20952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
20962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
20972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
2098a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
2099a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
2100a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
2101a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
2102a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
21032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
2106a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
2107a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
2108a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
21092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
2112a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
2113a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
2114a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
2115a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
21163b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
2117a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
2118a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
2119a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexEnvxvOES(
2120a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
2121a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
2122a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
2123a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
2124a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
2125a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
2126a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
21273b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
2128a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
2129a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
21302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
21312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
21322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
213427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
213527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxvOES ( GLenum target, GLenum pname, const GLfixed *params ) */
213627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxvOES__IILjava_nio_IntBuffer_2
213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
21393b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
214017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
2141a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
2142a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
2143a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
21443b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
214517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
21463b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
214717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
214817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
2149a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexEnvxvOES(
2150a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
2151a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
2152a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
2153a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
2154a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
21553b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
2156a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
215727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
215827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
215927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxOES ( GLenum target, GLenum pname, GLfixed param ) */
216027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
216127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxOES__III
216227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
2163a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexParameterxOES(
2164a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
2165a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
2166a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)param
2167a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
216927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
217027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxvOES ( GLenum target, GLenum pname, const GLfixed *params ) */
217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
217227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxvOES__II_3II
217327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
21742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
21752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
21762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
2177a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
2178a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
2179a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
2180a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
2181a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
21822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
2185a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
2186a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
2187a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
21882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
2191a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
2192a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
2193a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
2194a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
21953b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
2196a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
2197a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
2198a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexParameterxvOES(
2199a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
2200a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
2201a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
2202a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
2203a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
2204a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
2205a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
22063b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
2207a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
2208a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
22092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
22102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
22112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
221227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxvOES ( GLenum target, GLenum pname, const GLfixed *params ) */
221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxvOES__IILjava_nio_IntBuffer_2
221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
22183b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
221917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
2220a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
2221a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
2222a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
22233b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
222417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
22253b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
222617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
222717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
2228a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexParameterxvOES(
2229a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)target,
2230a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
2231a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
2232a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
2233a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
22343b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
2235a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
223727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
223827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatexOES ( GLfixed x, GLfixed y, GLfixed z ) */
223927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
224027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatexOES__III
224127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
2242a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTranslatexOES(
2243a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)x,
2244a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)y,
2245a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)z
2246a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
224727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
224827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
224927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsRenderbufferOES ( GLuint renderbuffer ) */
225027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean
225127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsRenderbufferOES__I
225227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint renderbuffer) {
225373108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLboolean _returnValue;
225473108675c944ab4ee89631dced23566b12341b66Jack Palevich    _returnValue = glIsRenderbufferOES(
225573108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint)renderbuffer
225673108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
2257cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden    return (jboolean)_returnValue;
225827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
225927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
226027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindRenderbufferOES ( GLenum target, GLuint renderbuffer ) */
226127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
226227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindRenderbufferOES__II
226327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint renderbuffer) {
226473108675c944ab4ee89631dced23566b12341b66Jack Palevich    glBindRenderbufferOES(
226573108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
226673108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint)renderbuffer
226773108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
226827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
226927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteRenderbuffersOES ( GLsizei n, const GLuint *renderbuffers ) */
227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
227227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteRenderbuffersOES__I_3II
227327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
22742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
22752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
22762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
227773108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *renderbuffers_base = (GLuint *) 0;
227873108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
227973108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *renderbuffers = (GLuint *) 0;
228073108675c944ab4ee89631dced23566b12341b66Jack Palevich
228173108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (!renderbuffers_ref) {
22822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "renderbuffers == null";
228573108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
228673108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
228773108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (offset < 0) {
22882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
229173108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
229273108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
229373108675c944ab4ee89631dced23566b12341b66Jack Palevich    _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
229473108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < n) {
22952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
229873108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
229973108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
230073108675c944ab4ee89631dced23566b12341b66Jack Palevich    renderbuffers_base = (GLuint *)
23013b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(renderbuffers_ref, (jboolean *)0);
230273108675c944ab4ee89631dced23566b12341b66Jack Palevich    renderbuffers = renderbuffers_base + offset;
230373108675c944ab4ee89631dced23566b12341b66Jack Palevich
230473108675c944ab4ee89631dced23566b12341b66Jack Palevich    glDeleteRenderbuffersOES(
230573108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLsizei)n,
230673108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint *)renderbuffers
230773108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
230873108675c944ab4ee89631dced23566b12341b66Jack Palevich
230973108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
231073108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (renderbuffers_base) {
23113b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(renderbuffers_ref, (jint*)renderbuffers_base,
231273108675c944ab4ee89631dced23566b12341b66Jack Palevich            JNI_ABORT);
231373108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
23142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
23152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
23162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
231727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteRenderbuffersOES ( GLsizei n, const GLuint *renderbuffers ) */
232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2
232227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
23232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
23242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
23252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
23263b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
232717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
232873108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
232973108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *renderbuffers = (GLuint *) 0;
233073108675c944ab4ee89631dced23566b12341b66Jack Palevich
23313b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
233273108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < n) {
23332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
23342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
23352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
233673108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
233773108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
233817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (renderbuffers == NULL) {
23393b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _renderbuffersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
234017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset);
234117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
234273108675c944ab4ee89631dced23566b12341b66Jack Palevich    glDeleteRenderbuffersOES(
234373108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLsizei)n,
234473108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint *)renderbuffers
234573108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
234673108675c944ab4ee89631dced23566b12341b66Jack Palevich
234773108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
234873108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_array) {
23493b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)renderbuffers, JNI_ABORT);
235073108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
23512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
23522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
23532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
235427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenRenderbuffersOES ( GLsizei n, GLuint *renderbuffers ) */
235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenRenderbuffersOES__I_3II
235927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
236073108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
23612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
23622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
236373108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *renderbuffers_base = (GLuint *) 0;
236473108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
236573108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *renderbuffers = (GLuint *) 0;
236673108675c944ab4ee89631dced23566b12341b66Jack Palevich
236773108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (!renderbuffers_ref) {
236873108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
23692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
23702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "renderbuffers == null";
237173108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
237273108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
237373108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (offset < 0) {
237473108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
23752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
23762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
237773108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
237873108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
237973108675c944ab4ee89631dced23566b12341b66Jack Palevich    _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
238073108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < n) {
238173108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
23822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
23832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
238473108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
238573108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
238673108675c944ab4ee89631dced23566b12341b66Jack Palevich    renderbuffers_base = (GLuint *)
23873b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(renderbuffers_ref, (jboolean *)0);
238873108675c944ab4ee89631dced23566b12341b66Jack Palevich    renderbuffers = renderbuffers_base + offset;
238973108675c944ab4ee89631dced23566b12341b66Jack Palevich
239073108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGenRenderbuffersOES(
239173108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLsizei)n,
239273108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint *)renderbuffers
239373108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
239473108675c944ab4ee89631dced23566b12341b66Jack Palevich
239573108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
239673108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (renderbuffers_base) {
23973b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(renderbuffers_ref, (jint*)renderbuffers_base,
239873108675c944ab4ee89631dced23566b12341b66Jack Palevich            _exception ? JNI_ABORT: 0);
239973108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
24002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
24012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
24022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
240327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
240427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
240527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenRenderbuffersOES ( GLsizei n, GLuint *renderbuffers ) */
240627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
240727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2
240827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
240973108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
24102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
24112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
24123b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
241317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
241473108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
241573108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *renderbuffers = (GLuint *) 0;
241673108675c944ab4ee89631dced23566b12341b66Jack Palevich
24173b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
241873108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < n) {
241973108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
24202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
24212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
242273108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
242373108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
242417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (renderbuffers == NULL) {
24253b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _renderbuffersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
242617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset);
242717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
242873108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGenRenderbuffersOES(
242973108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLsizei)n,
243073108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint *)renderbuffers
243173108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
243273108675c944ab4ee89631dced23566b12341b66Jack Palevich
243373108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
243473108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_array) {
24353b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)renderbuffers, _exception ? JNI_ABORT : 0);
243673108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
24372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
24382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
24392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
244027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
244127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
244227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRenderbufferStorageOES ( GLenum target, GLenum internalformat, GLsizei width, GLsizei height ) */
244327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
244427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRenderbufferStorageOES__IIII
244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint width, jint height) {
244673108675c944ab4ee89631dced23566b12341b66Jack Palevich    glRenderbufferStorageOES(
244773108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
244873108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)internalformat,
244973108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLsizei)width,
245073108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLsizei)height
245173108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetRenderbufferParameterivOES ( GLenum target, GLenum pname, GLint *params ) */
245527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
245627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetRenderbufferParameterivOES__II_3II
245727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
245873108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
24592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
24602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
246173108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params_base = (GLint *) 0;
246273108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
246373108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params = (GLint *) 0;
246473108675c944ab4ee89631dced23566b12341b66Jack Palevich
246573108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (!params_ref) {
246673108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
24672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
24682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
246973108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
247073108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
247173108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (offset < 0) {
247273108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
24732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
24742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
247573108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
247673108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
247773108675c944ab4ee89631dced23566b12341b66Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
247873108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < 1) {
247973108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
24802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
24812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 1 < needed";
248273108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
248373108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
248473108675c944ab4ee89631dced23566b12341b66Jack Palevich    params_base = (GLint *)
24853b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
248673108675c944ab4ee89631dced23566b12341b66Jack Palevich    params = params_base + offset;
248773108675c944ab4ee89631dced23566b12341b66Jack Palevich
248873108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGetRenderbufferParameterivOES(
248973108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
249073108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)pname,
249173108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLint *)params
249273108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
249373108675c944ab4ee89631dced23566b12341b66Jack Palevich
249473108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
249573108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (params_base) {
24963b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
249773108675c944ab4ee89631dced23566b12341b66Jack Palevich            _exception ? JNI_ABORT: 0);
249873108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
24992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
25002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
25012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
250227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
250327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
250427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetRenderbufferParameterivOES ( GLenum target, GLenum pname, GLint *params ) */
250527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
250627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2
250727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
250873108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
25092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
25102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
25113b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
251217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
251373108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
251473108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params = (GLint *) 0;
251573108675c944ab4ee89631dced23566b12341b66Jack Palevich
25163b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
251773108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < 1) {
251873108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
25192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
25202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 1 < needed";
252173108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
252273108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
252317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
25243b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
252517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
252617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
252773108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGetRenderbufferParameterivOES(
252873108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
252973108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)pname,
253073108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLint *)params
253173108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
253273108675c944ab4ee89631dced23566b12341b66Jack Palevich
253373108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
253473108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_array) {
25353b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0);
253673108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
25372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
25382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
25392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
254027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
254127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
254227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsFramebufferOES ( GLuint framebuffer ) */
254327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean
254427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsFramebufferOES__I
254527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint framebuffer) {
254673108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLboolean _returnValue;
254773108675c944ab4ee89631dced23566b12341b66Jack Palevich    _returnValue = glIsFramebufferOES(
254873108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint)framebuffer
254973108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
2550cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden    return (jboolean)_returnValue;
255127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
255227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
255327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindFramebufferOES ( GLenum target, GLuint framebuffer ) */
255427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
255527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindFramebufferOES__II
255627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint framebuffer) {
255773108675c944ab4ee89631dced23566b12341b66Jack Palevich    glBindFramebufferOES(
255873108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
255973108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint)framebuffer
256073108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
256127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
256227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
256327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteFramebuffersOES ( GLsizei n, const GLuint *framebuffers ) */
256427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
256527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteFramebuffersOES__I_3II
256627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
25672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
25682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
25692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
257073108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *framebuffers_base = (GLuint *) 0;
257173108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
257273108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *framebuffers = (GLuint *) 0;
257373108675c944ab4ee89631dced23566b12341b66Jack Palevich
257473108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (!framebuffers_ref) {
25752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
25762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
25772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "framebuffers == null";
257873108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
257973108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
258073108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (offset < 0) {
25812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
25822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
25832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
258473108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
258573108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
258673108675c944ab4ee89631dced23566b12341b66Jack Palevich    _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
258773108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < n) {
25882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
25892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
25902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
259173108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
259273108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
259373108675c944ab4ee89631dced23566b12341b66Jack Palevich    framebuffers_base = (GLuint *)
25943b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(framebuffers_ref, (jboolean *)0);
259573108675c944ab4ee89631dced23566b12341b66Jack Palevich    framebuffers = framebuffers_base + offset;
259673108675c944ab4ee89631dced23566b12341b66Jack Palevich
259773108675c944ab4ee89631dced23566b12341b66Jack Palevich    glDeleteFramebuffersOES(
259873108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLsizei)n,
259973108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint *)framebuffers
260073108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
260173108675c944ab4ee89631dced23566b12341b66Jack Palevich
260273108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
260373108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (framebuffers_base) {
26043b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(framebuffers_ref, (jint*)framebuffers_base,
260573108675c944ab4ee89631dced23566b12341b66Jack Palevich            JNI_ABORT);
260673108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
26072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
26082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
26092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
261027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
261127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
261227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteFramebuffersOES ( GLsizei n, const GLuint *framebuffers ) */
261327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
261427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2
261527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
26162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
26172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
26182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
26193b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
262017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
262173108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
262273108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *framebuffers = (GLuint *) 0;
262373108675c944ab4ee89631dced23566b12341b66Jack Palevich
26243b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
262573108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < n) {
26262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
26272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
262973108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
263073108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
263117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (framebuffers == NULL) {
26323b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _framebuffersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
263317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset);
263417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
263573108675c944ab4ee89631dced23566b12341b66Jack Palevich    glDeleteFramebuffersOES(
263673108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLsizei)n,
263773108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint *)framebuffers
263873108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
263973108675c944ab4ee89631dced23566b12341b66Jack Palevich
264073108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
264173108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_array) {
26423b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)framebuffers, JNI_ABORT);
264373108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
26442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
26452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
26462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
264727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
264827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
264927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenFramebuffersOES ( GLsizei n, GLuint *framebuffers ) */
265027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
265127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenFramebuffersOES__I_3II
265227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
265373108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
26542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
26552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
265673108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *framebuffers_base = (GLuint *) 0;
265773108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
265873108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *framebuffers = (GLuint *) 0;
265973108675c944ab4ee89631dced23566b12341b66Jack Palevich
266073108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (!framebuffers_ref) {
266173108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
26622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "framebuffers == null";
266473108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
266573108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
266673108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (offset < 0) {
266773108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
26682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
267073108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
267173108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
267273108675c944ab4ee89631dced23566b12341b66Jack Palevich    _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
267373108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < n) {
267473108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
26752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
267773108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
267873108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
267973108675c944ab4ee89631dced23566b12341b66Jack Palevich    framebuffers_base = (GLuint *)
26803b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(framebuffers_ref, (jboolean *)0);
268173108675c944ab4ee89631dced23566b12341b66Jack Palevich    framebuffers = framebuffers_base + offset;
268273108675c944ab4ee89631dced23566b12341b66Jack Palevich
268373108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGenFramebuffersOES(
268473108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLsizei)n,
268573108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint *)framebuffers
268673108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
268773108675c944ab4ee89631dced23566b12341b66Jack Palevich
268873108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
268973108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (framebuffers_base) {
26903b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(framebuffers_ref, (jint*)framebuffers_base,
269173108675c944ab4ee89631dced23566b12341b66Jack Palevich            _exception ? JNI_ABORT: 0);
269273108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
26932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
26942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
26952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
269627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
269727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
269827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenFramebuffersOES ( GLsizei n, GLuint *framebuffers ) */
269927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
270027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenFramebuffersOES__ILjava_nio_IntBuffer_2
270127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
270273108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
27032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
27042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
27053b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
270617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
270773108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
270873108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLuint *framebuffers = (GLuint *) 0;
270973108675c944ab4ee89631dced23566b12341b66Jack Palevich
27103b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
271173108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < n) {
271273108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
27132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
271573108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
271673108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
271717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (framebuffers == NULL) {
27183b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _framebuffersBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
271917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset);
272017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
272173108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGenFramebuffersOES(
272273108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLsizei)n,
272373108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint *)framebuffers
272473108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
272573108675c944ab4ee89631dced23566b12341b66Jack Palevich
272673108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
272773108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_array) {
27283b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)framebuffers, _exception ? JNI_ABORT : 0);
272973108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
27302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
27312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
27322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
273327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
273427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
273527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLenum glCheckFramebufferStatusOES ( GLenum target ) */
273627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jint
273727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCheckFramebufferStatusOES__I
273827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target) {
273973108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLenum _returnValue;
274073108675c944ab4ee89631dced23566b12341b66Jack Palevich    _returnValue = glCheckFramebufferStatusOES(
274173108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target
274273108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
2743cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden    return (jint)_returnValue;
274427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
274527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
274627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFramebufferRenderbufferOES ( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) */
274727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
274827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFramebufferRenderbufferOES__IIII
274927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer) {
275073108675c944ab4ee89631dced23566b12341b66Jack Palevich    glFramebufferRenderbufferOES(
275173108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
275273108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)attachment,
275373108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)renderbuffertarget,
275473108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint)renderbuffer
275573108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
275627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
275727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
275827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFramebufferTexture2DOES ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) */
275927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
276027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFramebufferTexture2DOES__IIIII
276127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint textarget, jint texture, jint level) {
276273108675c944ab4ee89631dced23566b12341b66Jack Palevich    glFramebufferTexture2DOES(
276373108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
276473108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)attachment,
276573108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)textarget,
276673108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLuint)texture,
276773108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLint)level
276873108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
276927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
277027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
277127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFramebufferAttachmentParameterivOES ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */
277227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
277327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFramebufferAttachmentParameterivOES__III_3II
277427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jintArray params_ref, jint offset) {
277573108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
27762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
27772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
277873108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params_base = (GLint *) 0;
277973108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
278073108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params = (GLint *) 0;
278173108675c944ab4ee89631dced23566b12341b66Jack Palevich
278273108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (!params_ref) {
278373108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
27842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
278673108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
278773108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
278873108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (offset < 0) {
278973108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
27902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
279273108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
279373108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
279473108675c944ab4ee89631dced23566b12341b66Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
279573108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < 1) {
279673108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
27972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 1 < needed";
279973108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
280073108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
280173108675c944ab4ee89631dced23566b12341b66Jack Palevich    params_base = (GLint *)
28023b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
280373108675c944ab4ee89631dced23566b12341b66Jack Palevich    params = params_base + offset;
280473108675c944ab4ee89631dced23566b12341b66Jack Palevich
280573108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGetFramebufferAttachmentParameterivOES(
280673108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
280773108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)attachment,
280873108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)pname,
280973108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLint *)params
281073108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
281173108675c944ab4ee89631dced23566b12341b66Jack Palevich
281273108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
281373108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (params_base) {
28143b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
281573108675c944ab4ee89631dced23566b12341b66Jack Palevich            _exception ? JNI_ABORT: 0);
281673108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
28172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
28182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
28192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
282027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
282127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
282227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFramebufferAttachmentParameterivOES ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */
282327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
282427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2
282527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) {
282673108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
28272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
28282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
28293b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
283017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
283173108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
283273108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params = (GLint *) 0;
283373108675c944ab4ee89631dced23566b12341b66Jack Palevich
28343b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
283573108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < 1) {
283673108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
28372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
28382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 1 < needed";
283973108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
284073108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
284117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
28423b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
284317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
284417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
284573108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGetFramebufferAttachmentParameterivOES(
284673108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
284773108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)attachment,
284873108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)pname,
284973108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLint *)params
285073108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
285173108675c944ab4ee89631dced23566b12341b66Jack Palevich
285273108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
285373108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_array) {
28543b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0);
285573108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
28562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
28572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
28582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
285927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
286027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
286127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenerateMipmapOES ( GLenum target ) */
286227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
286327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenerateMipmapOES__I
286427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target) {
286573108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGenerateMipmapOES(
286673108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target
286773108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
286827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
286927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
287027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCurrentPaletteMatrixOES ( GLuint matrixpaletteindex ) */
287127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
287227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCurrentPaletteMatrixOES__I
287327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint matrixpaletteindex) {
2874be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glCurrentPaletteMatrixOES(
2875be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLuint)matrixpaletteindex
2876be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
287727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
287827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
287927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadPaletteFromModelViewMatrixOES ( void ) */
288027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
288127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadPaletteFromModelViewMatrixOES__
288227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
2883be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glLoadPaletteFromModelViewMatrixOES();
288427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
288527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
288627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
288727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
2888be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I
2889be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
2890be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jarray _array = (jarray) 0;
289117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
2892be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jint _remaining;
2893be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
2894be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich
2895be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (pointer_buf) {
2896be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
2897be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        if ( ! pointer ) {
2898be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich            return;
2899be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        }
2900be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
2901be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glMatrixIndexPointerOESBounds(
2902be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLint)size,
2903be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLenum)type,
2904be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)stride,
2905be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLvoid *)pointer,
2906be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)remaining
2907be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
290827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
290927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
291027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
291127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
2912be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I
2913be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
2914be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jarray _array = (jarray) 0;
291517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
2916be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jint _remaining;
2917be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
2918be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich
2919be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (pointer_buf) {
2920be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
2921be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        if ( ! pointer ) {
2922be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich            return;
2923be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        }
2924be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
2925be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glWeightPointerOESBounds(
2926be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLint)size,
2927be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLenum)type,
2928be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)stride,
2929be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLvoid *)pointer,
2930be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)remaining
2931be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
293227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
293327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
293427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangefOES ( GLclampf zNear, GLclampf zFar ) */
293527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
293627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangefOES__FF
293727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
2938a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glDepthRangefOES(
2939a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampf)zNear,
2940a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampf)zFar
2941a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
294227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
294327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
294427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumfOES ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
294527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
294627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumfOES__FFFFFF
294727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
2948a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glFrustumfOES(
2949a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)left,
2950a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)right,
2951a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)bottom,
2952a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)top,
2953a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)zNear,
2954a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)zFar
2955a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
295627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
295727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
295827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthofOES ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
295927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
296027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthofOES__FFFFFF
296127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
2962a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glOrthofOES(
2963a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)left,
2964a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)right,
2965a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)bottom,
2966a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)top,
2967a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)zNear,
2968a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)zFar
2969a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
297027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
297127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
297227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanefOES ( GLenum plane, const GLfloat *equation ) */
297327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
297427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanefOES__I_3FI
297527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) {
29762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
29772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
29782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
2979a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *equation_base = (GLfloat *) 0;
2980a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
2981a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *equation = (GLfloat *) 0;
2982a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
2983a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!equation_ref) {
29842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
29852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
29862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "equation == null";
2987a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
2988a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
2989a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
29902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
29912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
29922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
2993a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
2994a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
2995a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(equation_ref) - offset;
2996a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    equation_base = (GLfloat *)
29973b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetFloatArrayElements(equation_ref, (jboolean *)0);
2998a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    equation = equation_base + offset;
2999a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3000a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glClipPlanefOES(
3001a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)plane,
3002a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat *)equation
3003a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3004a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3005a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
3006a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (equation_base) {
30073b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(equation_ref, (jfloat*)equation_base,
3008a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
3009a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
30102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
30112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
30122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
301327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
301427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
301527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanefOES ( GLenum plane, const GLfloat *equation ) */
301627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
301727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanefOES__ILjava_nio_FloatBuffer_2
301827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
30193b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jfloatArray _array = (jfloatArray) 0;
302017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
3021a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3022a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *equation = (GLfloat *) 0;
3023a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
30243b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    equation = (GLfloat *)getPointer(_env, equation_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
302517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (equation == NULL) {
30263b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _equationBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0);
302717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        equation = (GLfloat *) (_equationBase + _bufferOffset);
302817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
3029a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glClipPlanefOES(
3030a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)plane,
3031a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat *)equation
3032a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3033a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
30343b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(_array, (jfloat*)equation, JNI_ABORT);
3035a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
303627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
303727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
303827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanefOES ( GLenum pname, GLfloat *eqn ) */
303927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
304027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanefOES__I_3FI
304127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) {
3042a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
30432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
30442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
3045a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *eqn_base = (GLfloat *) 0;
3046a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3047a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *eqn = (GLfloat *) 0;
3048a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3049a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!eqn_ref) {
3050a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
30512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
30522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "eqn == null";
3053a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3054a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3055a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
3056a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
30572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
30582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
3059a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3060a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3061a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(eqn_ref) - offset;
3062a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_remaining < 4) {
3063a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
30642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
30652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 4 < needed";
3066a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3067a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3068a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    eqn_base = (GLfloat *)
30693b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetFloatArrayElements(eqn_ref, (jboolean *)0);
3070a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    eqn = eqn_base + offset;
3071a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3072a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetClipPlanefOES(
3073a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3074a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat *)eqn
3075a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3076a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3077a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
3078a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (eqn_base) {
30793b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(eqn_ref, (jfloat*)eqn_base,
3080a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            _exception ? JNI_ABORT: 0);
3081a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
30822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
30832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
30842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
308527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
308627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
308727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanefOES ( GLenum pname, GLfloat *eqn ) */
308827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
308927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanefOES__ILjava_nio_FloatBuffer_2
309027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
3091a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
30922ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
30932ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
30943b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jfloatArray _array = (jfloatArray) 0;
309517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
3096a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3097a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *eqn = (GLfloat *) 0;
3098a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
30993b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    eqn = (GLfloat *)getPointer(_env, eqn_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
3100a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_remaining < 4) {
3101a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
31022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
31032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 4 < needed";
3104a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3105a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
310617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (eqn == NULL) {
31073b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _eqnBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0);
310817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        eqn = (GLfloat *) (_eqnBase + _bufferOffset);
310917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
3110a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetClipPlanefOES(
3111a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3112a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat *)eqn
3113a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3114a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3115a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
3116a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
31173b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(_array, (jfloat*)eqn, _exception ? JNI_ABORT : 0);
3118a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
31192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
31202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
31212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
312227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
312327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
312427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthfOES ( GLclampf depth ) */
312527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
312627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthfOES__F
312727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat depth) {
3128a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glClearDepthfOES(
3129a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLclampf)depth
3130a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
313127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
313227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
313327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexGenfOES ( GLenum coord, GLenum pname, GLfloat param ) */
313427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
313527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexGenfOES__IIF
313627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloat param) {
3137a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexGenfOES(
3138a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3139a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3140a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat)param
3141a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
314227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
314327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
314427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexGenfvOES ( GLenum coord, GLenum pname, const GLfloat *params ) */
314527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
314627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexGenfvOES__II_3FI
314727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
31482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
31492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
31502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
3151a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *params_base = (GLfloat *) 0;
3152a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3153a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *params = (GLfloat *) 0;
3154a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3155a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
31562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
31572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
31582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
3159a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3160a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3161a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
31622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
31632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
31642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
3165a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3166a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3167a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3168a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfloat *)
31693b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetFloatArrayElements(params_ref, (jboolean *)0);
3170a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
3171a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3172a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexGenfvOES(
3173a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3174a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3175a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat *)params
3176a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3177a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3178a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
3179a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
31803b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base,
3181a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
3182a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
31832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
31842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
31852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
318627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
318727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
318827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexGenfvOES ( GLenum coord, GLenum pname, const GLfloat *params ) */
318927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
319027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexGenfvOES__IILjava_nio_FloatBuffer_2
319127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
31923b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jfloatArray _array = (jfloatArray) 0;
319317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
3194a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3195a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *params = (GLfloat *) 0;
3196a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
31973b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
319817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
31993b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0);
320017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
320117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
3202a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexGenfvOES(
3203a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3204a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3205a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat *)params
3206a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3207a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
32083b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(_array, (jfloat*)params, JNI_ABORT);
3209a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
321027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
321127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
321227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexGeniOES ( GLenum coord, GLenum pname, GLint param ) */
321327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
321427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexGeniOES__III
321527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
3216a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexGeniOES(
3217a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3218a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3219a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLint)param
3220a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
322127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
322227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
322327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexGenivOES ( GLenum coord, GLenum pname, const GLint *params ) */
322427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
322527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexGenivOES__II_3II
322627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
32272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
32282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
32292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
3230a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLint *params_base = (GLint *) 0;
3231a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3232a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLint *params = (GLint *) 0;
3233a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3234a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
32352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
32362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
32372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
3238a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3239a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3240a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
32412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
32422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
32432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
3244a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3245a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3246a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3247a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLint *)
32483b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
3249a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
3250a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3251a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexGenivOES(
3252a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3253a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3254a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLint *)params
3255a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3256a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3257a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
3258a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
32593b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
3260a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
3261a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
32622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
32632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
32642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
326527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
326627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
326727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexGenivOES ( GLenum coord, GLenum pname, const GLint *params ) */
326827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
326927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexGenivOES__IILjava_nio_IntBuffer_2
327027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
32713b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
327217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
3273a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3274a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLint *params = (GLint *) 0;
3275a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
32763b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
327717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
32783b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
327917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
328017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
3281a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexGenivOES(
3282a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3283a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3284a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLint *)params
3285a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3286a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
32873b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
3288a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
328927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
329027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
329127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexGenxOES ( GLenum coord, GLenum pname, GLfixed param ) */
329227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
329327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexGenxOES__III
329427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
3295a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexGenxOES(
3296a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3297a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3298a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed)param
3299a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
330027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
330127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
330227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexGenxvOES ( GLenum coord, GLenum pname, const GLfixed *params ) */
330327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
330427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexGenxvOES__II_3II
330527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
33062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
33072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
33082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
3309a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
3310a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3311a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
3312a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3313a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
33142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
33152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
33162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
3317a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3318a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3319a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
33202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
33212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
33222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
3323a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3324a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3325a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3326a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
33273b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
3328a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
3329a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3330a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexGenxvOES(
3331a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3332a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3333a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
3334a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3335a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3336a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
3337a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
33383b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
3339a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            JNI_ABORT);
3340a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
33412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
33422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
33432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
334427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
334527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
334627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexGenxvOES ( GLenum coord, GLenum pname, const GLfixed *params ) */
334727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
334827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexGenxvOES__IILjava_nio_IntBuffer_2
334927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
33503b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
335117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
3352a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3353a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
3354a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
33553b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
335617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
33573b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
335817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
335917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
3360a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glTexGenxvOES(
3361a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3362a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3363a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
3364a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3365a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
33663b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
3367a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
336827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
336927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
337027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexGenfvOES ( GLenum coord, GLenum pname, GLfloat *params ) */
337127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
337227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexGenfvOES__II_3FI
337327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
3374a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
33752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
33762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
3377a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *params_base = (GLfloat *) 0;
3378a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3379a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *params = (GLfloat *) 0;
3380a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3381a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
3382a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
33832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
33842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
3385a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3386a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3387a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
3388a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
33892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
33902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
3391a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3392a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3393a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3394a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfloat *)
33953b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetFloatArrayElements(params_ref, (jboolean *)0);
3396a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
3397a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3398a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetTexGenfvOES(
3399a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3400a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3401a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat *)params
3402a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3403a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3404a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
3405a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
34063b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base,
3407a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            _exception ? JNI_ABORT: 0);
3408a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
34092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
34102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
34112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
341227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
341327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
341427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexGenfvOES ( GLenum coord, GLenum pname, GLfloat *params ) */
341527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
341627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexGenfvOES__IILjava_nio_FloatBuffer_2
341727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
34183b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jfloatArray _array = (jfloatArray) 0;
341917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
3420a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3421a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfloat *params = (GLfloat *) 0;
3422a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
34233b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
342417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
34253b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0);
342617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
342717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
3428a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetTexGenfvOES(
3429a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3430a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3431a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfloat *)params
3432a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3433a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
34343b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseFloatArrayElements(_array, (jfloat*)params, 0);
3435a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
343627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
343727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
343827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexGenivOES ( GLenum coord, GLenum pname, GLint *params ) */
343927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
344027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexGenivOES__II_3II
344127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
3442a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
34432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
34442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
3445a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLint *params_base = (GLint *) 0;
3446a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3447a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLint *params = (GLint *) 0;
3448a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3449a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
3450a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
34512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
34522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
3453a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3454a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3455a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
3456a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
34572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
34582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
3459a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3460a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3461a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3462a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLint *)
34633b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
3464a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
3465a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3466a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetTexGenivOES(
3467a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3468a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3469a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLint *)params
3470a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3471a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3472a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
3473a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
34743b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
3475a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            _exception ? JNI_ABORT: 0);
3476a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
34772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
34782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
34792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
348027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
348127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
348227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexGenivOES ( GLenum coord, GLenum pname, GLint *params ) */
348327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
348427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexGenivOES__IILjava_nio_IntBuffer_2
348527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
34863b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
348717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
3488a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3489a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLint *params = (GLint *) 0;
3490a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
34913b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
349217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
34933b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
349417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
349517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
3496a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetTexGenivOES(
3497a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3498a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3499a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLint *)params
3500a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3501a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
35023b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
3503a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
350427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
350527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
350627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexGenxvOES ( GLenum coord, GLenum pname, GLfixed *params ) */
350727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
350827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexGenxvOES__II_3II
350927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
3510a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _exception = 0;
35112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
35122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
3513a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params_base = (GLfixed *) 0;
3514a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3515a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
3516a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3517a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (!params_ref) {
3518a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
35192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
35202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
3521a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3522a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3523a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (offset < 0) {
3524a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        _exception = 1;
35252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
35262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
3527a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        goto exit;
3528a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
3529a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3530a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params_base = (GLfixed *)
35313b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->GetIntArrayElements(params_ref, (jboolean *)0);
3532a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    params = params_base + offset;
3533a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3534a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetTexGenxvOES(
3535a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3536a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3537a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
3538a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3539a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
3540a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevichexit:
3541a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (params_base) {
35423b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
3543a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich            _exception ? JNI_ABORT: 0);
3544a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
35452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
35462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
35472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
354827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
354927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
355027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexGenxvOES ( GLenum coord, GLenum pname, GLfixed *params ) */
355127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
355227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexGenxvOES__IILjava_nio_IntBuffer_2
355327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
35543b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    jintArray _array = (jintArray) 0;
355517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
3556a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    jint _remaining;
3557a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    GLfixed *params = (GLfixed *) 0;
3558a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich
35593b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi    params = (GLfixed *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
356017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
35613b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
356217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
356317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
3564a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    glGetTexGenxvOES(
3565a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)coord,
3566a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLenum)pname,
3567a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich        (GLfixed *)params
3568a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    );
3569a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    if (_array) {
35703b1d46e809ed38cd5662c110c511b8d98868ed72Hiroshi Yamauchi        _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
3571a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich    }
357227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
357327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
357427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES11Ext";
357527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
357676f6a86de25e1bf74717e047e55fd44b089673f3Daniel Micaystatic const JNINativeMethod methods[] = {
357727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit },
357827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBlendEquationSeparateOES", "(II)V", (void *) android_glBlendEquationSeparateOES__II },
357927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBlendFuncSeparateOES", "(IIII)V", (void *) android_glBlendFuncSeparateOES__IIII },
358027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBlendEquationOES", "(I)V", (void *) android_glBlendEquationOES__I },
358127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexsOES", "(SSSSS)V", (void *) android_glDrawTexsOES__SSSSS },
358227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexiOES", "(IIIII)V", (void *) android_glDrawTexiOES__IIIII },
358327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexxOES", "(IIIII)V", (void *) android_glDrawTexxOES__IIIII },
358427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexsvOES", "([SI)V", (void *) android_glDrawTexsvOES___3SI },
358527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexsvOES", "(Ljava/nio/ShortBuffer;)V", (void *) android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 },
358627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexivOES", "([II)V", (void *) android_glDrawTexivOES___3II },
358727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexivOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexivOES__Ljava_nio_IntBuffer_2 },
358827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexxvOES", "([II)V", (void *) android_glDrawTexxvOES___3II },
358927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexxvOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 },
359027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexfOES", "(FFFFF)V", (void *) android_glDrawTexfOES__FFFFF },
359127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexfvOES", "([FI)V", (void *) android_glDrawTexfvOES___3FI },
359227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawTexfvOES", "(Ljava/nio/FloatBuffer;)V", (void *) android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 },
359327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEGLImageTargetTexture2DOES", "(ILjava/nio/Buffer;)V", (void *) android_glEGLImageTargetTexture2DOES__ILjava_nio_Buffer_2 },
359427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEGLImageTargetRenderbufferStorageOES", "(ILjava/nio/Buffer;)V", (void *) android_glEGLImageTargetRenderbufferStorageOES__ILjava_nio_Buffer_2 },
359527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFuncxOES", "(II)V", (void *) android_glAlphaFuncxOES__II },
359627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColorxOES", "(IIII)V", (void *) android_glClearColorxOES__IIII },
359727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthxOES", "(I)V", (void *) android_glClearDepthxOES__I },
359827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanexOES", "(I[II)V", (void *) android_glClipPlanexOES__I_3II },
359927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanexOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanexOES__ILjava_nio_IntBuffer_2 },
360027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4xOES", "(IIII)V", (void *) android_glColor4xOES__IIII },
360127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangexOES", "(II)V", (void *) android_glDepthRangexOES__II },
360227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxOES", "(II)V", (void *) android_glFogxOES__II },
360327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxvOES", "(I[II)V", (void *) android_glFogxvOES__I_3II },
360427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxvOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxvOES__ILjava_nio_IntBuffer_2 },
360527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumxOES", "(IIIIII)V", (void *) android_glFrustumxOES__IIIIII },
360627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanexOES", "(I[II)V", (void *) android_glGetClipPlanexOES__I_3II },
360727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanexOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanexOES__ILjava_nio_IntBuffer_2 },
360827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFixedvOES", "(I[II)V", (void *) android_glGetFixedvOES__I_3II },
360927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFixedvOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedvOES__ILjava_nio_IntBuffer_2 },
361027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightxvOES", "(II[II)V", (void *) android_glGetLightxvOES__II_3II },
361127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxvOES__IILjava_nio_IntBuffer_2 },
361227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialxvOES", "(II[II)V", (void *) android_glGetMaterialxvOES__II_3II },
361327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxvOES__IILjava_nio_IntBuffer_2 },
361427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvxvOES", "(II[II)V", (void *) android_glGetTexEnvxvOES__II_3II },
361527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxvOES__IILjava_nio_IntBuffer_2 },
361627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterxvOES", "(II[II)V", (void *) android_glGetTexParameterxvOES__II_3II },
361727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxvOES__IILjava_nio_IntBuffer_2 },
361827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxOES", "(II)V", (void *) android_glLightModelxOES__II },
361927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxvOES", "(I[II)V", (void *) android_glLightModelxvOES__I_3II },
362027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxvOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxvOES__ILjava_nio_IntBuffer_2 },
362127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxOES", "(III)V", (void *) android_glLightxOES__III },
362227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxvOES", "(II[II)V", (void *) android_glLightxvOES__II_3II },
362327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxvOES__IILjava_nio_IntBuffer_2 },
362427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidthxOES", "(I)V", (void *) android_glLineWidthxOES__I },
362527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixxOES", "([II)V", (void *) android_glLoadMatrixxOES___3II },
362627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixxOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixxOES__Ljava_nio_IntBuffer_2 },
362727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxOES", "(III)V", (void *) android_glMaterialxOES__III },
362827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxvOES", "(II[II)V", (void *) android_glMaterialxvOES__II_3II },
362927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxvOES__IILjava_nio_IntBuffer_2 },
363027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixxOES", "([II)V", (void *) android_glMultMatrixxOES___3II },
363127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixxOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixxOES__Ljava_nio_IntBuffer_2 },
363227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4xOES", "(IIIII)V", (void *) android_glMultiTexCoord4xOES__IIIII },
363327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3xOES", "(III)V", (void *) android_glNormal3xOES__III },
363427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthoxOES", "(IIIIII)V", (void *) android_glOrthoxOES__IIIIII },
363527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxOES", "(II)V", (void *) android_glPointParameterxOES__II },
363627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxvOES", "(I[II)V", (void *) android_glPointParameterxvOES__I_3II },
363727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxvOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxvOES__ILjava_nio_IntBuffer_2 },
363827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSizexOES", "(I)V", (void *) android_glPointSizexOES__I },
363927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffsetxOES", "(II)V", (void *) android_glPolygonOffsetxOES__II },
364027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatexOES", "(IIII)V", (void *) android_glRotatexOES__IIII },
364127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoveragexOES", "(IZ)V", (void *) android_glSampleCoveragexOES__IZ },
364227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalexOES", "(III)V", (void *) android_glScalexOES__III },
364327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxOES", "(III)V", (void *) android_glTexEnvxOES__III },
364427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxvOES", "(II[II)V", (void *) android_glTexEnvxvOES__II_3II },
364527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxvOES__IILjava_nio_IntBuffer_2 },
364627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxOES", "(III)V", (void *) android_glTexParameterxOES__III },
364727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxvOES", "(II[II)V", (void *) android_glTexParameterxvOES__II_3II },
364827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxvOES__IILjava_nio_IntBuffer_2 },
364927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatexOES", "(III)V", (void *) android_glTranslatexOES__III },
365027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsRenderbufferOES", "(I)Z", (void *) android_glIsRenderbufferOES__I },
365127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindRenderbufferOES", "(II)V", (void *) android_glBindRenderbufferOES__II },
365227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteRenderbuffersOES", "(I[II)V", (void *) android_glDeleteRenderbuffersOES__I_3II },
365327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2 },
365427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenRenderbuffersOES", "(I[II)V", (void *) android_glGenRenderbuffersOES__I_3II },
365527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2 },
365627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRenderbufferStorageOES", "(IIII)V", (void *) android_glRenderbufferStorageOES__IIII },
365727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetRenderbufferParameterivOES", "(II[II)V", (void *) android_glGetRenderbufferParameterivOES__II_3II },
365827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetRenderbufferParameterivOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 },
365927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsFramebufferOES", "(I)Z", (void *) android_glIsFramebufferOES__I },
366027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindFramebufferOES", "(II)V", (void *) android_glBindFramebufferOES__II },
366127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteFramebuffersOES", "(I[II)V", (void *) android_glDeleteFramebuffersOES__I_3II },
366227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2 },
366327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenFramebuffersOES", "(I[II)V", (void *) android_glGenFramebuffersOES__I_3II },
366427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenFramebuffersOES__ILjava_nio_IntBuffer_2 },
366527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCheckFramebufferStatusOES", "(I)I", (void *) android_glCheckFramebufferStatusOES__I },
366627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFramebufferRenderbufferOES", "(IIII)V", (void *) android_glFramebufferRenderbufferOES__IIII },
366727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFramebufferTexture2DOES", "(IIIII)V", (void *) android_glFramebufferTexture2DOES__IIIII },
366827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFramebufferAttachmentParameterivOES", "(III[II)V", (void *) android_glGetFramebufferAttachmentParameterivOES__III_3II },
366927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFramebufferAttachmentParameterivOES", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 },
367027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenerateMipmapOES", "(I)V", (void *) android_glGenerateMipmapOES__I },
367127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCurrentPaletteMatrixOES", "(I)V", (void *) android_glCurrentPaletteMatrixOES__I },
367227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadPaletteFromModelViewMatrixOES", "()V", (void *) android_glLoadPaletteFromModelViewMatrixOES__ },
3673be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glMatrixIndexPointerOESBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I },
3674be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glWeightPointerOESBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I },
367527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangefOES", "(FF)V", (void *) android_glDepthRangefOES__FF },
367627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumfOES", "(FFFFFF)V", (void *) android_glFrustumfOES__FFFFFF },
367727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthofOES", "(FFFFFF)V", (void *) android_glOrthofOES__FFFFFF },
367827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanefOES", "(I[FI)V", (void *) android_glClipPlanefOES__I_3FI },
367927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanefOES", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanefOES__ILjava_nio_FloatBuffer_2 },
368027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanefOES", "(I[FI)V", (void *) android_glGetClipPlanefOES__I_3FI },
368127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanefOES", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanefOES__ILjava_nio_FloatBuffer_2 },
368227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthfOES", "(F)V", (void *) android_glClearDepthfOES__F },
368327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexGenfOES", "(IIF)V", (void *) android_glTexGenfOES__IIF },
368427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexGenfvOES", "(II[FI)V", (void *) android_glTexGenfvOES__II_3FI },
368527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexGenfvOES", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexGenfvOES__IILjava_nio_FloatBuffer_2 },
368627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexGeniOES", "(III)V", (void *) android_glTexGeniOES__III },
368727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexGenivOES", "(II[II)V", (void *) android_glTexGenivOES__II_3II },
368827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexGenivOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGenivOES__IILjava_nio_IntBuffer_2 },
368927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexGenxOES", "(III)V", (void *) android_glTexGenxOES__III },
369027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexGenxvOES", "(II[II)V", (void *) android_glTexGenxvOES__II_3II },
369127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexGenxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGenxvOES__IILjava_nio_IntBuffer_2 },
369227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexGenfvOES", "(II[FI)V", (void *) android_glGetTexGenfvOES__II_3FI },
369327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexGenfvOES", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexGenfvOES__IILjava_nio_FloatBuffer_2 },
369427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexGenivOES", "(II[II)V", (void *) android_glGetTexGenivOES__II_3II },
369527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexGenivOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGenivOES__IILjava_nio_IntBuffer_2 },
369627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexGenxvOES", "(II[II)V", (void *) android_glGetTexGenxvOES__II_3II },
369727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexGenxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGenxvOES__IILjava_nio_IntBuffer_2 },
369827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich};
369927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
370027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES11Ext(JNIEnv *_env)
370127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
370227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int err;
370327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
370427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return err;
370527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
3706