com_google_android_gles_jni_GLImpl.cpp revision 17045a16575ece34cfadb63da4791f115625df78
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* //device/libs/android_runtime/com_google_android_gles_jni_GLImpl.cpp
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Copyright 2006, The Android Open Source Project
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
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
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes**     http://www.apache.org/licenses/LICENSE-2.0
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
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
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** limitations under the License.
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project*/
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// This source file is automatically generated
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "jni.h"
2124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "JNIHelp.h"
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <android_runtime/AndroidRuntime.h>
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <utils/misc.h>
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <assert.h>
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <GLES/gl.h>
27be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#include <GLES/glext.h>
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich// Work around differences between the generated name and the actual name.
308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glBlendEquation glBlendEquationOES
328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glBlendEquationSeparate glBlendEquationSeparateOES
338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glBlendFuncSeparate glBlendFuncSeparateOES
348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glGetTexGenfv glGetTexGenfvOES
358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glGetTexGeniv glGetTexGenivOES
368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glGetTexGenxv glGetTexGenxvOES
378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glTexGenf glTexGenfOES
388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glTexGenfv glTexGenfvOES
398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glTexGeni glTexGeniOES
408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glTexGeniv glTexGenivOES
418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glTexGenx glTexGenxOES
428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich#define glTexGenxv glTexGenxvOES
438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
468331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian/* special calls implemented in Android's GLES wrapper used to more
478331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian * efficiently bound-check passed arrays */
488331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopianextern "C" {
498331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride,
508331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        const GLvoid *ptr, GLsizei count);
518331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride,
528331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        const GLvoid *pointer, GLsizei count);
538331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type,
548331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
558331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type,
568331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
57be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack PalevichGL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type,
58be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        GLsizei stride, const GLvoid *pointer, GLsizei count);
59be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack PalevichGL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type,
60be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        GLsizei stride, const GLvoid *pointer, GLsizei count);
61be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack PalevichGL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type,
62be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        GLsizei stride, const GLvoid *pointer, GLsizei count);
638331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian}
648331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic int initialized = 0;
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jclass nioAccessClass;
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jclass bufferClass;
6991a27ae2fec23b420244258636d2370117e86f5eJack Palevichstatic jclass G11ImplClass;
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jmethodID getBasePointerID;
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jmethodID getBaseArrayID;
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jmethodID getBaseArrayOffsetID;
7391a27ae2fec23b420244258636d2370117e86f5eJack Palevichstatic jmethodID allowIndirectBuffersID;
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jfieldID positionID;
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jfieldID limitID;
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jfieldID elementSizeShiftID;
778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic jfieldID haveCheckedExtensionsID;
788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic jfieldID have_OES_blend_equation_separateID;
798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic jfieldID have_OES_blend_subtractID;
808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic jfieldID have_OES_framebuffer_objectID;
818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic jfieldID have_OES_texture_cube_mapID;
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* Cache method IDs each time the class is loaded. */
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
8624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass)
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9491a27ae2fec23b420244258636d2370117e86f5eJack Palevich    jclass g11impClassLocal = _env->FindClass("com/google/android/gles_jni/GLImpl");
9591a27ae2fec23b420244258636d2370117e86f5eJack Palevich    G11ImplClass = (jclass) _env->NewGlobalRef(g11impClassLocal);
968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    haveCheckedExtensionsID =  _env->GetFieldID(G11ImplClass, "haveCheckedExtensions", "Z");
978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    have_OES_blend_equation_separateID =  _env->GetFieldID(G11ImplClass, "have_OES_blend_equation_separate", "Z");
988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    have_OES_blend_subtractID =  _env->GetFieldID(G11ImplClass, "have_OES_blend_subtract", "Z");
998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    have_OES_framebuffer_objectID =  _env->GetFieldID(G11ImplClass, "have_OES_framebuffer_object", "Z");
1008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    have_OES_texture_cube_mapID =  _env->GetFieldID(G11ImplClass, "have_OES_texture_cube_map", "Z");
10191a27ae2fec23b420244258636d2370117e86f5eJack Palevich
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "getBasePointer", "(Ljava/nio/Buffer;)J");
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
10891a27ae2fec23b420244258636d2370117e86f5eJack Palevich    allowIndirectBuffersID = _env->GetStaticMethodID(g11impClassLocal,
10991a27ae2fec23b420244258636d2370117e86f5eJack Palevich            "allowIndirectBuffers", "(Ljava/lang/String;)Z");
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    positionID = _env->GetFieldID(bufferClass, "position", "I");
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    limitID = _env->GetFieldID(bufferClass, "limit", "I");
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    elementSizeShiftID =
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void *
11717045a16575ece34cfadb63da4791f115625df78Thomas TafertshofergetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset)
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint position;
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint limit;
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint elementSizeShift;
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jlong pointer;
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    position = _env->GetIntField(buffer, positionID);
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    limit = _env->GetIntField(buffer, limitID);
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    *remaining = (limit - position) << elementSizeShift;
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    pointer = _env->CallStaticLongMethod(nioAccessClass,
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getBasePointerID, buffer);
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (pointer != 0L) {
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        *array = NULL;
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return (void *) (jint) pointer;
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
13424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getBaseArrayID, buffer);
13791a27ae2fec23b420244258636d2370117e86f5eJack Palevich    if (*array == NULL) {
13891a27ae2fec23b420244258636d2370117e86f5eJack Palevich        return (void*) NULL;
13991a27ae2fec23b420244258636d2370117e86f5eJack Palevich    }
14017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    *offset = _env->CallStaticIntMethod(nioAccessClass,
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getBaseArrayOffsetID, buffer);
14224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
14317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    return NULL;
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ReleasePrimitiveArrayCritical(array, data,
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project					   commit ? 0 : JNI_ABORT);
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15391a27ae2fec23b420244258636d2370117e86f5eJack Palevichextern "C" {
15491a27ae2fec23b420244258636d2370117e86f5eJack Palevichextern char*  __progname;
15591a27ae2fec23b420244258636d2370117e86f5eJack Palevich}
15691a27ae2fec23b420244258636d2370117e86f5eJack Palevich
15791a27ae2fec23b420244258636d2370117e86f5eJack Palevichstatic bool
15891a27ae2fec23b420244258636d2370117e86f5eJack PalevichallowIndirectBuffers(JNIEnv *_env) {
15991a27ae2fec23b420244258636d2370117e86f5eJack Palevich    static jint sIndirectBufferCompatability;
16091a27ae2fec23b420244258636d2370117e86f5eJack Palevich    if (sIndirectBufferCompatability == 0) {
16191a27ae2fec23b420244258636d2370117e86f5eJack Palevich        jobject appName = _env->NewStringUTF(::__progname);
16291a27ae2fec23b420244258636d2370117e86f5eJack Palevich        sIndirectBufferCompatability = _env->CallStaticBooleanMethod(G11ImplClass, allowIndirectBuffersID, appName) ? 2 : 1;
16391a27ae2fec23b420244258636d2370117e86f5eJack Palevich    }
16491a27ae2fec23b420244258636d2370117e86f5eJack Palevich    return sIndirectBufferCompatability == 2;
16591a27ae2fec23b420244258636d2370117e86f5eJack Palevich}
16691a27ae2fec23b420244258636d2370117e86f5eJack Palevich
16716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevichstatic void *
16816e7972f0d986eebf846ea8feb50f4435a9c6970Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) {
16991a27ae2fec23b420244258636d2370117e86f5eJack Palevich    if (!buffer) {
17091a27ae2fec23b420244258636d2370117e86f5eJack Palevich        return NULL;
17191a27ae2fec23b420244258636d2370117e86f5eJack Palevich    }
17291a27ae2fec23b420244258636d2370117e86f5eJack Palevich    void* buf = _env->GetDirectBufferAddress(buffer);
17316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    if (buf) {
17416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        jint position = _env->GetIntField(buffer, positionID);
17516e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
17691a27ae2fec23b420244258636d2370117e86f5eJack Palevich        buf = ((char*) buf) + (position << elementSizeShift);
17716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    } else {
17891a27ae2fec23b420244258636d2370117e86f5eJack Palevich        if (allowIndirectBuffers(_env)) {
17991a27ae2fec23b420244258636d2370117e86f5eJack Palevich            jarray array = 0;
18091a27ae2fec23b420244258636d2370117e86f5eJack Palevich            jint remaining;
18117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer            jint offset;
18217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer            buf = getPointer(_env, buffer, &array, &remaining, &offset);
18391a27ae2fec23b420244258636d2370117e86f5eJack Palevich            if (array) {
18491a27ae2fec23b420244258636d2370117e86f5eJack Palevich                releasePointer(_env, array, buf, 0);
18591a27ae2fec23b420244258636d2370117e86f5eJack Palevich            }
18617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer            buf = buf + offset;
18791a27ae2fec23b420244258636d2370117e86f5eJack Palevich        } else {
18824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes            jniThrowException(_env, "java/lang/IllegalArgumentException",
18924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes                              "Must use a native order direct Buffer");
19091a27ae2fec23b420244258636d2370117e86f5eJack Palevich        }
19116e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    }
19291a27ae2fec23b420244258636d2370117e86f5eJack Palevich    return buf;
19316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich}
19416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich
195be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevichstatic int
196be509c9c7de5929d014dfe6d45e71cc8454ede0fJack PalevichgetNumCompressedTextureFormats() {
197be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    int numCompressedTextureFormats = 0;
198be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats);
199be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    return numCompressedTextureFormats;
200be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich}
201be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich
2028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich// Check if the extension at the head of pExtensions is pExtension. Note that pExtensions is
2038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich// terminated by either 0 or space, while pExtension is terminated by 0.
2048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
2058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic bool
2068a4de4be9ed522c704a45a44a265669e10a8f2ebJack PalevichextensionEqual(const GLubyte* pExtensions, const GLubyte* pExtension) {
2078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    while (true) {
2088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        char a = *pExtensions++;
2098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        char b = *pExtension++;
2108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        bool aEnd = a == '\0' || a == ' ';
2118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        bool bEnd = b == '\0';
2128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        if ( aEnd || bEnd) {
2138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return aEnd == bEnd;
2148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        }
2158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        if ( a != b ) {
2168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return false;
2178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        }
2188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
2198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
2208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
2218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic const GLubyte*
2228a4de4be9ed522c704a45a44a265669e10a8f2ebJack PalevichnextExtension(const GLubyte* pExtensions) {
2238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    while (true) {
2248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        char a = *pExtensions++;
2258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        if ( a == '\0') {
2268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return pExtensions-1;
2278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        } else if ( a == ' ') {
2288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return pExtensions;
2298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        }
2308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
2318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
23224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
2338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic bool
2348a4de4be9ed522c704a45a44a265669e10a8f2ebJack PalevichcheckForExtension(const GLubyte* pExtensions, const GLubyte* pExtension) {
2358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    for (;*pExtensions != '\0'; pExtensions = nextExtension(pExtensions)) {
2368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        if (extensionEqual(pExtensions, pExtension)) {
2378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return true;
2388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        }
2398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
2408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    return false;
2418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
2428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
2438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic bool
2448a4de4be9ed522c704a45a44a265669e10a8f2ebJack PalevichsupportsExtension(JNIEnv *_env, jobject impl, jfieldID fieldId) {
2458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!_env->GetBooleanField(impl, haveCheckedExtensionsID)) {
2468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->SetBooleanField(impl, haveCheckedExtensionsID, true);
2478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        const GLubyte* sExtensions = glGetString(GL_EXTENSIONS);
2488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->SetBooleanField(impl, have_OES_blend_equation_separateID,
2498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            checkForExtension(sExtensions, (const GLubyte*) "GL_OES_blend_equation_separate"));
2508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->SetBooleanField(impl, have_OES_blend_subtractID,
2518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            checkForExtension(sExtensions, (const GLubyte*) "GL_OES_blend_subtract"));
2528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->SetBooleanField(impl, have_OES_framebuffer_objectID,
2538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            checkForExtension(sExtensions, (const GLubyte*) "GL_OES_framebuffer_object"));
2548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->SetBooleanField(impl, have_OES_texture_cube_mapID,
2558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            checkForExtension(sExtensions, (const GLubyte*) "GL_OES_texture_cube_map"));
2568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
2578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    return _env->GetBooleanField(impl, fieldId);
2588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
2598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// --------------------------------------------------------------------------
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glActiveTexture ( GLenum texture ) */
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glActiveTexture__I
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint texture) {
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glActiveTexture(
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)texture
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glAlphaFunc ( GLenum func, GLclampf ref ) */
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glAlphaFunc__IF
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func, jfloat ref) {
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glAlphaFunc(
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func,
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)ref
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glAlphaFuncx__II
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func, jint ref) {
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glAlphaFuncx(
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func,
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)ref
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindTexture ( GLenum target, GLuint texture ) */
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindTexture__II
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint texture) {
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBindTexture(
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)texture
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendFunc__II
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) {
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBlendFunc(
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)sfactor,
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)dfactor
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClear ( GLbitfield mask ) */
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClear__I
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mask) {
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClear(
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLbitfield)mask
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearColor__FFFF
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearColor(
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)red,
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)green,
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)blue,
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)alpha
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearColorx__IIII
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearColorx(
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)red,
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)green,
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)blue,
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)alpha
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearDepthf ( GLclampf depth ) */
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearDepthf__F
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat depth) {
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearDepthf(
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)depth
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearDepthx ( GLclampx depth ) */
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearDepthx__I
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint depth) {
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearDepthx(
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)depth
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearStencil ( GLint s ) */
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearStencil__I
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint s) {
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearStencil(
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)s
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClientActiveTexture ( GLenum texture ) */
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClientActiveTexture__I
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint texture) {
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClientActiveTexture(
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)texture
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColor4f__FFFF
3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColor4f(
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)red,
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)green,
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)blue,
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)alpha
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColor4x__IIII
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColor4x(
3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)red,
3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)green,
3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)blue,
3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)alpha
4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */
4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColorMask__ZZZZ
4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) {
4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColorMask(
4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)red,
4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)green,
4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)blue,
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)alpha
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColorPointerBounds__IIILjava_nio_Buffer_2I
4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
42017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
424e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
42516e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
426e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
427e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
428e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
429e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColorPointerBounds(
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) {
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
44417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
44917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (data == NULL) {
45017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
45117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        data = (GLvoid *) (_dataBase + _bufferOffset);
45217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCompressedTexImage2D(
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)internalformat,
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)border,
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)imageSize,
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) {
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
47317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
47817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (data == NULL) {
47917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
48017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        data = (GLvoid *) (_dataBase + _bufferOffset);
48117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCompressedTexSubImage2D(
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)xoffset,
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)yoffset,
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)imageSize,
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data
4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCopyTexImage2D__IIIIIIII
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) {
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCopyTexImage2D(
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)internalformat,
5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)border
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */
5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCopyTexSubImage2D__IIIIIIII
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) {
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCopyTexSubImage2D(
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)xoffset,
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)yoffset,
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCullFace ( GLenum mode ) */
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCullFace__I
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCullFace(
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteTextures__I_3II
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
5432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
5442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
5452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures_base = (GLuint *) 0;
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!textures_ref) {
5512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
5522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
5532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "textures == null";
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
5572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
5582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
5592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(textures_ref) - offset;
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
5642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
5652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
5662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures_base = (GLuint *)
5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures = textures_base + offset;
5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteTextures(
5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (textures_base) {
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
5842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
5852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteTextures__ILjava_nio_IntBuffer_2
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
5922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
5932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
5942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
59617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset);
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
6022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (textures == NULL) {
60817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
60917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        textures = (GLuint *) (_texturesBase + _bufferOffset);
61017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteTextures(
6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, textures, JNI_FALSE);
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
6212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
6222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthFunc ( GLenum func ) */
6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthFunc__I
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func) {
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthFunc(
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthMask ( GLboolean flag ) */
6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthMask__Z
6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jboolean flag) {
6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthMask(
6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)flag
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */
6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthRangef__FF
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthRangef(
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)zNear,
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)zFar
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */
6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthRangex__II
6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint zNear, jint zFar) {
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthRangex(
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)zNear,
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)zFar
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDisable ( GLenum cap ) */
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDisable__I
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint cap) {
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDisable(
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)cap
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDisableClientState ( GLenum array ) */
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDisableClientState__I
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint array) {
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDisableClientState(
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)array
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawArrays__III
6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) {
6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawArrays(
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode,
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)first,
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)count
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawElements__IIILjava_nio_Buffer_2
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) {
6962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
6972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
6982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
70017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *indices = (GLvoid *) 0;
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset);
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < count) {
7062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
7072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
7082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < count < needed";
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
71117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (indices == NULL) {
71217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
71317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        indices = (GLvoid *) (_indicesBase + _bufferOffset);
71417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawElements(
7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode,
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)count,
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)indices
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, indices, JNI_FALSE);
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
7272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
7282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glEnable ( GLenum cap ) */
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glEnable__I
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint cap) {
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glEnable(
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)cap
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glEnableClientState ( GLenum array ) */
7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glEnableClientState__I
7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint array) {
7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glEnableClientState(
7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)array
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFinish ( void ) */
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFinish__
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFinish();
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFlush ( void ) */
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFlush__
7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFlush();
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogf ( GLenum pname, GLfloat param ) */
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogf__IF
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogf(
7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogfv ( GLenum pname, const GLfloat *params ) */
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogfv__I_3FI
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
7772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
7782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
7792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
7852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
7862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
7872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
7912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
7922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
7932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
8232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
8242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogfv(
8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
8432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
8442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogfv ( GLenum pname, const GLfloat *params ) */
8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogfv__ILjava_nio_FloatBuffer_2
8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
8512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
8522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
8532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
85517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
85917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
8862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
8872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
89117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
89217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
89317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
89417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogfv(
8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
9052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
9062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogx ( GLenum pname, GLfixed param ) */
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogx__II
9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogx(
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogxv ( GLenum pname, const GLfixed *params ) */
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogxv__I_3II
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
9232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
9242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
9252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
9312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
9322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
9372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
9382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
9692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
9702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogxv(
9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
9892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
9902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogxv ( GLenum pname, const GLfixed *params ) */
9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogxv__ILjava_nio_IntBuffer_2
9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
9972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
9982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
9992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
100117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
100517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
10322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
10332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
10342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
103717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
103817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
103917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
104017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogxv(
10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
10512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
10522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFrontFace ( GLenum mode ) */
10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFrontFace__I
10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFrontFace(
10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFrustumf__FFFFFF
10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFrustumf(
10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)left,
10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)right,
10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)bottom,
10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)top,
10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zNear,
10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zFar
10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFrustumx__IIIIII
10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFrustumx(
10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)left,
10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)right,
10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)bottom,
10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)top,
10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zNear,
10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zFar
10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenTextures ( GLsizei n, GLuint *textures ) */
10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenTextures__I_3II
10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
10972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
10982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures_base = (GLuint *) 0;
11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!textures_ref) {
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
11052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "textures == null";
11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
11112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(textures_ref) - offset;
11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
11182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures_base = (GLuint *)
11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures = textures_base + offset;
11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenTextures(
11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (textures_base) {
11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
11362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
11372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
11382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
11399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenTextures ( GLsizei n, GLuint *textures ) */
11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenTextures__ILjava_nio_IntBuffer_2
11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
11459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
11462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
11472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
11489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
114917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
11509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
115317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset);
11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
11562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
116017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (textures == NULL) {
116117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
116217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        textures = (GLuint *) (_texturesBase + _bufferOffset);
116317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenTextures(
11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE);
11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
11732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
11742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
11752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLenum glGetError ( void ) */
11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetError__
11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLenum _returnValue;
11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glGetError();
11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetIntegerv ( GLenum pname, GLint *params ) */
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetIntegerv__I_3II
11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
11922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
11932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
12002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
12012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
12029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
12049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
12059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
12062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
12072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_BITS)
12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_BITS:
12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_BITS)
12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_FUNC)
12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_FUNC:
12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_FUNC)
12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_REF)
12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_REF:
12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_REF)
12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLEND_DST)
12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLEND_DST:
12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLEND_DST)
12259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLUE_BITS)
12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLUE_BITS:
12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLUE_BITS)
12289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_BUFFER_BINDING:
12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_SIZE)
12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_SIZE:
12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_SIZE)
12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_STRIDE)
12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_STRIDE:
12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_STRIDE)
12379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_TYPE)
12389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_TYPE:
12399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_TYPE)
12409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CULL_FACE)
12419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CULL_FACE:
12429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CULL_FACE)
12439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_BITS)
12449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_BITS:
12459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_BITS)
12469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_CLEAR_VALUE)
12479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_CLEAR_VALUE:
12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_CLEAR_VALUE)
12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_FUNC)
12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_FUNC:
12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_FUNC)
12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_WRITEMASK)
12539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_WRITEMASK:
12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_WRITEMASK)
12559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
12569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
12579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
12589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
12599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
12609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
12619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
12629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
12639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
12649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
12659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
12669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
12679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FRONT_FACE)
12689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FRONT_FACE:
12699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FRONT_FACE)
12709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_GREEN_BITS)
12719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_GREEN_BITS:
12729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_GREEN_BITS)
12739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
12749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
12759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
12769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
12779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
12789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1279be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1280be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_COLOR_CONTROL:
1281be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1282be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
1283be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_LOCAL_VIEWER:
1284be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
12859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
12869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
12879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
12889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_SMOOTH_HINT)
12899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_SMOOTH_HINT:
12909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_SMOOTH_HINT)
12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_WIDTH)
12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_WIDTH:
12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_WIDTH)
12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LOGIC_OP_MODE)
12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LOGIC_OP_MODE:
12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LOGIC_OP_MODE)
12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
13009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
13019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
13029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
13039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
13049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
13059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
13069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
13089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
13099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_MODE)
13109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_MODE:
13119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_MODE)
13129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_CLIP_PLANES)
13139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_CLIP_PLANES:
13149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_CLIP_PLANES)
13159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_INDICES)
13169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_INDICES:
13179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_INDICES)
13189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_VERTICES)
13199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_VERTICES:
13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_VERTICES)
13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_LIGHTS)
13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_LIGHTS:
13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_LIGHTS)
13249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_MODELVIEW_STACK_DEPTH:
13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PALETTE_MATRICES_OES)
13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PALETTE_MATRICES_OES:
13299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
13309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
13319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PROJECTION_STACK_DEPTH:
13329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
13339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_SIZE)
13349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_SIZE:
13359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_SIZE)
13369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
13379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_STACK_DEPTH:
13389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
13399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_UNITS)
13409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_UNITS:
13419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_UNITS)
13429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VERTEX_UNITS_OES)
13439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VERTEX_UNITS_OES:
13449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VERTEX_UNITS_OES)
13459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_STACK_DEPTH)
13469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_STACK_DEPTH:
13479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_STACK_DEPTH)
13489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
13499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_BUFFER_BINDING:
13509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
13519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_STRIDE)
13529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_STRIDE:
13539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_STRIDE)
13549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_TYPE)
13559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_TYPE:
13569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_TYPE)
13579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
13589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
13599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
13609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PACK_ALIGNMENT)
13619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PACK_ALIGNMENT:
13629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PACK_ALIGNMENT)
13639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
13649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PERSPECTIVE_CORRECTION_HINT:
13659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
13669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE)
13679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE:
13689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE)
13699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
13709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
13719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
13729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
13739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
13749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
13759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
13769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_TYPE_OES:
13779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
13789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SMOOTH_HINT)
13799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SMOOTH_HINT:
13809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SMOOTH_HINT)
13819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_FACTOR)
13829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_FACTOR:
13839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_FACTOR)
13849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_UNITS)
13859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_UNITS:
13869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_UNITS)
13879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_STACK_DEPTH)
13889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_STACK_DEPTH:
13899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_STACK_DEPTH)
13909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_RED_BITS)
13919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_RED_BITS:
13929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_RED_BITS)
13939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHADE_MODEL)
13949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHADE_MODEL:
13959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHADE_MODEL)
13969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_BITS)
13979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_BITS:
13989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_BITS)
13999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_CLEAR_VALUE)
14009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_CLEAR_VALUE:
14019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_CLEAR_VALUE)
14029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FAIL)
14039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FAIL:
14049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FAIL)
14059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FUNC)
14069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FUNC:
14079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FUNC)
14089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
14099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_FAIL:
14109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
14119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_PASS)
14129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_PASS:
14139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
14149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_REF)
14159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_REF:
14169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_REF)
14179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_VALUE_MASK)
14189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_VALUE_MASK:
14199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_VALUE_MASK)
14209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_WRITEMASK)
14219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_WRITEMASK:
14229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_WRITEMASK)
14239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SUBPIXEL_BITS)
14249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SUBPIXEL_BITS:
14259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SUBPIXEL_BITS)
14269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_BINDING_2D)
14279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_BINDING_2D:
14289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_BINDING_2D)
14299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
14309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
14319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
14329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
14339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_SIZE:
14349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
14359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
14369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_STRIDE:
14379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
14389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
14399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_TYPE:
14409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
14419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_STACK_DEPTH)
14429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_STACK_DEPTH:
14439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_STACK_DEPTH)
14449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_UNPACK_ALIGNMENT)
14459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_UNPACK_ALIGNMENT:
14469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_UNPACK_ALIGNMENT)
14479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
14489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_BUFFER_BINDING:
14499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
14509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_SIZE)
14519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_SIZE:
14529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_SIZE)
14539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_STRIDE)
14549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_STRIDE:
14559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_STRIDE)
14569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_TYPE)
14579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_TYPE:
14589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_TYPE)
14599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
14609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
14619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
14629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
14639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_SIZE_OES:
14649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
14659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
14669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_STRIDE_OES:
14679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
14689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
14699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_TYPE_OES:
14709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
14719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
14729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
14739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_POINT_SIZE_RANGE)
14749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_POINT_SIZE_RANGE:
14759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
14769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
14779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_LINE_WIDTH_RANGE:
14789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
14799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_RANGE)
14809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_RANGE:
14819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_RANGE)
14829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VIEWPORT_DIMS)
14839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VIEWPORT_DIMS:
14849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VIEWPORT_DIMS)
14859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
14869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_LINE_WIDTH_RANGE:
14879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
14889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
14899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_POINT_SIZE_RANGE:
14909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
14919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 2;
14929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
14939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_CLEAR_VALUE)
14949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_CLEAR_VALUE:
14959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_CLEAR_VALUE)
14969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_WRITEMASK)
14979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_WRITEMASK:
14989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_WRITEMASK)
1499be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_FOG_COLOR)
1500be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_FOG_COLOR:
1501be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_FOG_COLOR)
1502be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
1503be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_AMBIENT:
1504be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
15059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SCISSOR_BOX)
15069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SCISSOR_BOX:
15079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SCISSOR_BOX)
15089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VIEWPORT)
15099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VIEWPORT:
15109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VIEWPORT)
15119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
15129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
15139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX)
15149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX:
15159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX)
15169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
15179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
15189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
15199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX)
15209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX:
15219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX)
15229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
15239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
15249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
15259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX)
15269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX:
15279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX)
15289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
15299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
15309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
15319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 16;
15329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
15339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
15349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMPRESSED_TEXTURE_FORMATS:
15359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1536be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich            _needed = getNumCompressedTextureFormats();
15379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
15389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
15399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
15409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
15419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
15429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
15439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
15442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
15452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
15469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
15479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
15489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
15499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
15509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
15519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetIntegerv(
15539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
15549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
15559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
15569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
15589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
15599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
15609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
15619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
15622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
15632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
15642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
15659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
15669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetIntegerv ( GLenum pname, GLint *params ) */
15689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
15699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetIntegerv__ILjava_nio_IntBuffer_2
15709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
15719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
15722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
15732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
15749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
157517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
15769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
15779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
15789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
157917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
15809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
15819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
15829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_BITS)
15839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_BITS:
15849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_BITS)
15859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_FUNC)
15869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_FUNC:
15879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_FUNC)
15889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_REF)
15899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_REF:
15909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_REF)
15919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLEND_DST)
15929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLEND_DST:
15939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLEND_DST)
15949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLUE_BITS)
15959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLUE_BITS:
15969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLUE_BITS)
15979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
15989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_BUFFER_BINDING:
15999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
16009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_SIZE)
16019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_SIZE:
16029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_SIZE)
16039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_STRIDE)
16049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_STRIDE:
16059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_STRIDE)
16069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_TYPE)
16079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_TYPE:
16089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_TYPE)
16099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CULL_FACE)
16109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CULL_FACE:
16119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CULL_FACE)
16129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_BITS)
16139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_BITS:
16149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_BITS)
16159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_CLEAR_VALUE)
16169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_CLEAR_VALUE:
16179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_CLEAR_VALUE)
16189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_FUNC)
16199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_FUNC:
16209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_FUNC)
16219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_WRITEMASK)
16229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_WRITEMASK:
16239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_WRITEMASK)
16249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
16259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
16269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
16279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
16289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
16299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
16309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
16319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
16329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
16339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
16349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
16359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
16369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FRONT_FACE)
16379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FRONT_FACE:
16389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FRONT_FACE)
16399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_GREEN_BITS)
16409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_GREEN_BITS:
16419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_GREEN_BITS)
16429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
16439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
16449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
16459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
16469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
16479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1648be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1649be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_COLOR_CONTROL:
1650be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1651be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
1652be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_LOCAL_VIEWER:
1653be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
16549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
16559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
16569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
16579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_SMOOTH_HINT)
16589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_SMOOTH_HINT:
16599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_SMOOTH_HINT)
16609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_WIDTH)
16619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_WIDTH:
16629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_WIDTH)
16639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LOGIC_OP_MODE)
16649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LOGIC_OP_MODE:
16659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LOGIC_OP_MODE)
16669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
16679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
16689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
16699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
16709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
16719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
16729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
16739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
16749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
16759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
16769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
16779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
16789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_MODE)
16799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_MODE:
16809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_MODE)
16819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_CLIP_PLANES)
16829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_CLIP_PLANES:
16839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_CLIP_PLANES)
16849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_INDICES)
16859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_INDICES:
16869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_INDICES)
16879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_VERTICES)
16889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_VERTICES:
16899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_VERTICES)
16909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_LIGHTS)
16919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_LIGHTS:
16929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_LIGHTS)
16939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
16949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_MODELVIEW_STACK_DEPTH:
16959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
16969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PALETTE_MATRICES_OES)
16979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PALETTE_MATRICES_OES:
16989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
16999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
17009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PROJECTION_STACK_DEPTH:
17019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
17029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_SIZE)
17039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_SIZE:
17049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_SIZE)
17059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
17069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_STACK_DEPTH:
17079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
17089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_UNITS)
17099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_UNITS:
17109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_UNITS)
17119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VERTEX_UNITS_OES)
17129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VERTEX_UNITS_OES:
17139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VERTEX_UNITS_OES)
17149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_STACK_DEPTH)
17159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_STACK_DEPTH:
17169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_STACK_DEPTH)
17179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
17189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_BUFFER_BINDING:
17199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
17209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_STRIDE)
17219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_STRIDE:
17229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_STRIDE)
17239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_TYPE)
17249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_TYPE:
17259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_TYPE)
17269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
17279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
17289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
17299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PACK_ALIGNMENT)
17309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PACK_ALIGNMENT:
17319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PACK_ALIGNMENT)
17329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
17339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PERSPECTIVE_CORRECTION_HINT:
17349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
17359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE)
17369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE:
17379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE)
17389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
17399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
17409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
17419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
17429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
17439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
17449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
17459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_TYPE_OES:
17469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
17479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SMOOTH_HINT)
17489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SMOOTH_HINT:
17499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SMOOTH_HINT)
17509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_FACTOR)
17519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_FACTOR:
17529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_FACTOR)
17539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_UNITS)
17549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_UNITS:
17559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_UNITS)
17569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_STACK_DEPTH)
17579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_STACK_DEPTH:
17589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_STACK_DEPTH)
17599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_RED_BITS)
17609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_RED_BITS:
17619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_RED_BITS)
17629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHADE_MODEL)
17639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHADE_MODEL:
17649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHADE_MODEL)
17659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_BITS)
17669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_BITS:
17679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_BITS)
17689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_CLEAR_VALUE)
17699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_CLEAR_VALUE:
17709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_CLEAR_VALUE)
17719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FAIL)
17729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FAIL:
17739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FAIL)
17749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FUNC)
17759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FUNC:
17769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FUNC)
17779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
17789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_FAIL:
17799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
17809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_PASS)
17819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_PASS:
17829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
17839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_REF)
17849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_REF:
17859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_REF)
17869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_VALUE_MASK)
17879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_VALUE_MASK:
17889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_VALUE_MASK)
17899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_WRITEMASK)
17909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_WRITEMASK:
17919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_WRITEMASK)
17929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SUBPIXEL_BITS)
17939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SUBPIXEL_BITS:
17949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SUBPIXEL_BITS)
17959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_BINDING_2D)
17969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_BINDING_2D:
17979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_BINDING_2D)
17989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
17999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
18009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
18019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
18029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_SIZE:
18039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
18049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
18059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_STRIDE:
18069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
18079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
18089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_TYPE:
18099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
18109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_STACK_DEPTH)
18119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_STACK_DEPTH:
18129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_STACK_DEPTH)
18139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_UNPACK_ALIGNMENT)
18149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_UNPACK_ALIGNMENT:
18159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_UNPACK_ALIGNMENT)
18169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
18179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_BUFFER_BINDING:
18189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
18199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_SIZE)
18209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_SIZE:
18219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_SIZE)
18229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_STRIDE)
18239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_STRIDE:
18249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_STRIDE)
18259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_TYPE)
18269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_TYPE:
18279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_TYPE)
18289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
18299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
18309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
18319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
18329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_SIZE_OES:
18339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
18349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
18359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_STRIDE_OES:
18369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
18379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
18389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_TYPE_OES:
18399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
18409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
18419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_POINT_SIZE_RANGE)
18439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_POINT_SIZE_RANGE:
18449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
18459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
18469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_LINE_WIDTH_RANGE:
18479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
18489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_RANGE)
18499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_RANGE:
18509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_RANGE)
18519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VIEWPORT_DIMS)
18529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VIEWPORT_DIMS:
18539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VIEWPORT_DIMS)
18549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
18559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_LINE_WIDTH_RANGE:
18569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
18579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
18589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_POINT_SIZE_RANGE:
18599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
18609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 2;
18619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_CLEAR_VALUE)
18639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_CLEAR_VALUE:
18649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_CLEAR_VALUE)
18659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_WRITEMASK)
18669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_WRITEMASK:
18679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_WRITEMASK)
1868be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_FOG_COLOR)
1869be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_FOG_COLOR:
1870be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_FOG_COLOR)
1871be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
1872be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_AMBIENT:
1873be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
18749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SCISSOR_BOX)
18759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SCISSOR_BOX:
18769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SCISSOR_BOX)
18779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VIEWPORT)
18789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VIEWPORT:
18799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VIEWPORT)
18809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
18819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX)
18839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX:
18849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX)
18859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
18869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
18879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
18889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX)
18899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX:
18909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX)
18919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
18929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
18939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
18949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX)
18959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX:
18969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX)
18979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
18989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
18999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
19009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 16;
19019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
19039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMPRESSED_TEXTURE_FORMATS:
19049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1905be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich            _needed = getNumCompressedTextureFormats();
19069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
19089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
19099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
19129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
19132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
19159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
19169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
191717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
191817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
191917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
192017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
19219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetIntegerv(
19229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
19239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
19249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
19259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
19279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
19289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
19299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
19312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
19322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
19339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
19349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* const GLubyte * glGetString ( GLenum name ) */
193624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetString(JNIEnv *_env, jobject, jint name) {
193724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    const char* chars = (const char*) glGetString((GLenum) name);
193824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    return _env->NewStringUTF(chars);
19399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
19409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glHint ( GLenum target, GLenum mode ) */
19419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
19429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glHint__II
19439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint mode) {
19449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glHint(
19459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
19469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
19479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
19489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
19499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelf ( GLenum pname, GLfloat param ) */
19519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
19529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelf__IF
19539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
19549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelf(
19559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
19569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
19579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
19589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
19599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
19619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
19629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelfv__I_3FI
19639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
19642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
19652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
19662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
19679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
19689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
19699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
19709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
19722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
19732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
19759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
19769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
19782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
19792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
19819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
19829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
19849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
19859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
19869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
19879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
19889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
19899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
19909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
19929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
19939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
19949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
19959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
19979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
19989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
20012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
20022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
20032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
20049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
20059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
20079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
20089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
20099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelfv(
20119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
20129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
20139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
20149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
20169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
20179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
20189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
20199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
20212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
20222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
20239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
20249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
20269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
20279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelfv__ILjava_nio_FloatBuffer_2
20289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
20292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
20302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
20312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
20329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
203317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
20349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
20359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
20369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
203717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
20389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
20399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
20409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
20419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
20429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
20439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
20449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
20469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
20479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
20489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
20499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
20519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
20529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
20552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
20562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
20572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
20589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
20599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
206017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
206117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
206217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
206317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
20649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelfv(
20659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
20669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
20679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
20689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
20709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
20719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
20729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
20742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
20752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
20769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
20779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelx ( GLenum pname, GLfixed param ) */
20799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
20809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelx__II
20819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
20829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelx(
20839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
20849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
20859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
20869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
20879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
20899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
20909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelxv__I_3II
20919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
20922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
20932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
20942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
20959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
20969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
20979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
20989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
21002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
21039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
21049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
21062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
21099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
21109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
21129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
21139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
21149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
21159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
21169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
21179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
21189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
21209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
21219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
21229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
21239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
21259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
21269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
21292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
21329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
21339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
21359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
21369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
21379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelxv(
21399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
21409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
21419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
21429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
21449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
21459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
21469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
21479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
21492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
21502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
21519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
21529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
21549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
21559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelxv__ILjava_nio_IntBuffer_2
21569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
21572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
21582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
21592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
21609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
216117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
21629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
21639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
21649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
216517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
21669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
21679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
21689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
21699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
21709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
21719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
21729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
21749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
21759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
21769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
21779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
21799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
21809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
21832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
21869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
21879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
218817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
218917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
219017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
219117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
21929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelxv(
21939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
21949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
21959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
21969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
21989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
21999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
22009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
22022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
22032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
22049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
22059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */
22079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
22089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightf__IIF
22099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) {
22109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightf(
22119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
22129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
22139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
22149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
22159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
22169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
22189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
22199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightfv__II_3FI
22209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
22212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
22222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
22232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
22249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
22259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
22269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
22279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
22292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
22329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
22339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
22352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
22389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
22399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
22419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
22429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
22439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
22449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
22459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
22469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
22479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
22489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
22499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
22509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
22519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
22529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
22539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
22549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
22559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
22569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
22579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
22589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
22599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
22619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
22629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
22639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
22649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
22669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
22679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
22689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
22699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
22709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
22719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
22729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
22739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
22749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
22759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
22769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
22779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
22789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
22809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
22819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
22842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
22879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
22889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
22909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
22919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
22929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightfv(
22949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
22959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
22969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
22979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
22989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
23009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
23019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
23029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
23039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
23052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
23062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
23079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
23109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightfv__IILjava_nio_FloatBuffer_2
23129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
23132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
23142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
23152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
23169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
231717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
23189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
23199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
23209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
232117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
23229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
23239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
23249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
23259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
23269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
23279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
23289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
23299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
23309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
23319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
23329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
23339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
23349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
23359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
23369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
23379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
23389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
23399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
23409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
23419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
23429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
23439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
23449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
23459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
23469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
23479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
23489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
23499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
23509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
23519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
23529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
23539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
23549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
23559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
23569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
23579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
23589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
23599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
23609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
23619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
23629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
23639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
23652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
23662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
23672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
23689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
23699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
237017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
237117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
237217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
237317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
23749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightfv(
23759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
23769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
23779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
23789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
23799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
23819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
23829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
23839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
23852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
23862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
23879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */
23909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightx__III
23929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) {
23939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightx(
23949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
23959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
23969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
23979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
23989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
24019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
24029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightxv__II_3II
24039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
24042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
24052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
24062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
24079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
24089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
24099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
24109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
24122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
24132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
24142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
24159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
24169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
24182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
24192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
24202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
24219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
24229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
24249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
24259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
24269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
24279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
24289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
24299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
24309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
24319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
24329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
24339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
24349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
24359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
24369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
24379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
24389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
24399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
24409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
24419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
24429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
24439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
24449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
24459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
24469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
24479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
24489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
24499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
24509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
24519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
24529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
24539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
24549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
24559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
24569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
24579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
24589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
24599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
24609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
24619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
24629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
24639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
24649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
24659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
24672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
24682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
24692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
24709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
24719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
24739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
24749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
24759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightxv(
24779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
24789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
24799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
24809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
24819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
24839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
24849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
24859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
24869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
24882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
24892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
24909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
24919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
24939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
24949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightxv__IILjava_nio_IntBuffer_2
24959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
24962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
24972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
24982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
24999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
250017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
25019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
25029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
25039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
250417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
25059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
25069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
25079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
25089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
25099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
25109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
25119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
25129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
25139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
25149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
25159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
25169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
25179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
25189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
25199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
25209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
25219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
25229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
25239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
25259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
25269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
25279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
25289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
25309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
25319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
25329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
25339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
25349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
25359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
25369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
25379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
25389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
25399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
25409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
25419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
25429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
25449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
25459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
25482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
25492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
25502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
25519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
25529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
255317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
255417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
255517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
255617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
25579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightxv(
25589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
25599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
25609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
25619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
25629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
25649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
25659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
25669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
25682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
25692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
25709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
25719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLineWidth ( GLfloat width ) */
25739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
25749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLineWidth__F
25759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat width) {
25769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLineWidth(
25779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)width
25789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
25799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
25809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLineWidthx ( GLfixed width ) */
25829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
25839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLineWidthx__I
25849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint width) {
25859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLineWidthx(
25869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)width
25879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
25889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
25899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadIdentity ( void ) */
25919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
25929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadIdentity__
25939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
25949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadIdentity();
25959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
25969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixf ( const GLfloat *m ) */
25989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
25999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixf___3FI
26009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
26012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
26022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
26032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
26049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m_base = (GLfloat *) 0;
26059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
26069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
26079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
26092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
26102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
26129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
26152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
26162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
26189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
26219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfloat *)
26229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
26239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
26249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixf(
26269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
26279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
26289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
26309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
26319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
26329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
26339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
26352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
26362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
26379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
26389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixf ( const GLfloat *m ) */
26409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
26419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixf__Ljava_nio_FloatBuffer_2
26429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
26439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
264417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
26459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
26469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
26479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
264817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
264917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
265017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
265117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfloat *) (_mBase + _bufferOffset);
265217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
26539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixf(
26549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
26559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
26569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
26579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
26589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
26609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixx ( const GLfixed *m ) */
26629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
26639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixx___3II
26649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
26652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
26662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
26672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
26689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m_base = (GLfixed *) 0;
26699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
26709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
26719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
26732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
26742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
26769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
26792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
26802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
26829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
26859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfixed *)
26869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
26879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
26889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixx(
26909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
26919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
26929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
26949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
26959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
26969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
26979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
26992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
27002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
27019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixx ( const GLfixed *m ) */
27049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixx__Ljava_nio_IntBuffer_2
27069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
27079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
270817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
27099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
27109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
27119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
271217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
271317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
271417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
271517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfixed *) (_mBase + _bufferOffset);
271617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
27179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixx(
27189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
27199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
27219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
27229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLogicOp ( GLenum opcode ) */
27269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLogicOp__I
27289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint opcode) {
27299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLogicOp(
27309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)opcode
27319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */
27359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialf__IIF
27379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) {
27389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialf(
27399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
27409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
27419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
27429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
27469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialfv__II_3FI
27489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
27492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
27502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
27512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
27529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
27539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
27549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
27559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
27572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
27582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
27609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
27619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
27632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
27642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
27669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
27679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
27699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
27709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
27719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
27729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
27739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
27749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
27759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
27769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
27779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
27789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
27799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
27809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
27819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
27829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
27839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
27849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
27859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
27869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
27879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
27889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
27899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
27909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
27919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
27929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
27939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
27949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
27959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
27969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
27982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
27992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
28002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
28019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
28029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
28049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
28059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
28069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialfv(
28089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
28099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
28109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
28119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
28149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
28159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
28169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
28179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
28192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
28202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
28219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
28249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialfv__IILjava_nio_FloatBuffer_2
28269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
28272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
28282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
28292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
28309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
283117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
28329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
28339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
28349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
283517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
28369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
28379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
28389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
28399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
28409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
28419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
28429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
28439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
28449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
28459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
28469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
28479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
28489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
28499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
28509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
28519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
28529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
28539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
28549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
28559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
28569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
28579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
28589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
28599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
28609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
28619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
28629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
28639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
28652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
28662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
28672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
28689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
28699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
287017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
287117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
287217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
287317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
28749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialfv(
28759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
28769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
28779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
28789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
28819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
28829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
28839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
28852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
28862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
28879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */
28909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialx__III
28929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) {
28939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialx(
28949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
28959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
28969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
28979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
29019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialxv__II_3II
29039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
29042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
29052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
29062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
29079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
29089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
29099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
29109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
29122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
29132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
29142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
29159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
29169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
29182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
29192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
29202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
29219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
29229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
29249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
29259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
29269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
29279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
29289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
29299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
29309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
29319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
29329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
29339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
29349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
29359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
29369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
29379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
29389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
29399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
29409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
29419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
29429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
29439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
29449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
29459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
29469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
29479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
29489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
29499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
29509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
29519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
29532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
29542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
29552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
29569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
29579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
29599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
29609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
29619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialxv(
29639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
29649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
29659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
29669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
29699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
29709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
29719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
29729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
29742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
29752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
29769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
29799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialxv__IILjava_nio_IntBuffer_2
29819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
29822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
29832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
29842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
29859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
298617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
29879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
29889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
29899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
299017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
29919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
29929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
29939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
29949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
29959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
29969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
29979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
29989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
29999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
30009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
30019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
30029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
30039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
30049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
30059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
30069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
30079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
30089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
30099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
30109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
30119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
30129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
30139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
30149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
30159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
30169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
30179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
30189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
30202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
30212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
30222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
30239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
30249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
302517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
302617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
302717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
302817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
30299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialxv(
30309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
30319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
30329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
30339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
30369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
30379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
30389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
30402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
30412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
30429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMatrixMode ( GLenum mode ) */
30459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMatrixMode__I
30479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
30489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMatrixMode(
30499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
30509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixf ( const GLfloat *m ) */
30549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixf___3FI
30569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
30572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
30582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
30592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
30609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m_base = (GLfloat *) 0;
30619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
30629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
30639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
30652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
30662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
30672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
30689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
30699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
30712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
30722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
30732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
30749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
30759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
30779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfloat *)
30789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
30799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
30809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixf(
30829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
30839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
30869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
30879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
30889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
30899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
30912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
30922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
30939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixf ( const GLfloat *m ) */
30969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixf__Ljava_nio_FloatBuffer_2
30989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
30999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
310017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
31019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
31029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
31039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
310417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
310517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
310617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
310717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfloat *) (_mBase + _bufferOffset);
310817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
31099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixf(
31109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
31119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
31139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
31149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixx ( const GLfixed *m ) */
31189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixx___3II
31209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
31212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
31222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
31232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
31249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m_base = (GLfixed *) 0;
31259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
31269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
31279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
31292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
31302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
31312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
31329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
31339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
31352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
31362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
31372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
31389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
31399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
31419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfixed *)
31429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
31439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
31449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixx(
31469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
31479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
31509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
31519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
31529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
31539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
31552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
31562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
31579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixx ( const GLfixed *m ) */
31609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixx__Ljava_nio_IntBuffer_2
31629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
31639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
316417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
31659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
31669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
31679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
316817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
316917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
317017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
317117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfixed *) (_mBase + _bufferOffset);
317217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
31739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixx(
31749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
31759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
31779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
31789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */
31829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultiTexCoord4f__IFFFF
31849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) {
31859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultiTexCoord4f(
31869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
31879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)s,
31889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)t,
31899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)r,
31909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)q
31919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */
31959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultiTexCoord4x__IIIII
31979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) {
31989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultiTexCoord4x(
31999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
32009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)s,
32019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)t,
32029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)r,
32039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)q
32049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */
32089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormal3f__FFF
32109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) {
32119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormal3f(
32129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)nx,
32139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)ny,
32149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)nz
32159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */
32199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormal3x__III
32219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) {
32229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormal3x(
32239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)nx,
32249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)ny,
32259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)nz
32269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
32309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormalPointerBounds__IILjava_nio_Buffer_2I
32329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
32339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
323417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
32359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
32369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
32379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3238e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
323916e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
3240e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3241e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3242e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3243e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
32449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormalPointerBounds(
32459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
32469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
32479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
32489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
32499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
32539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glOrthof__FFFFFF
32559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
32569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glOrthof(
32579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)left,
32589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)right,
32599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)bottom,
32609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)top,
32619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zNear,
32629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zFar
32639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
32679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glOrthox__IIIIII
32699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
32709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glOrthox(
32719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)left,
32729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)right,
32739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)bottom,
32749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)top,
32759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zNear,
32769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zFar
32779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPixelStorei ( GLenum pname, GLint param ) */
32819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPixelStorei__II
32839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
32849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPixelStorei(
32859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
32869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)param
32879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointSize ( GLfloat size ) */
32919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointSize__F
32939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat size) {
32949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointSize(
32959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)size
32969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointSizex ( GLfixed size ) */
33009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointSizex__I
33029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size) {
33039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointSizex(
33049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)size
33059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */
33099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPolygonOffset__FF
33119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) {
33129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPolygonOffset(
33139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)factor,
33149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)units
33159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */
33199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPolygonOffsetx__II
33219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint factor, jint units) {
33229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPolygonOffsetx(
33239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)factor,
33249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)units
33259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPopMatrix ( void ) */
33299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPopMatrix__
33319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
33329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPopMatrix();
33339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPushMatrix ( void ) */
33369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPushMatrix__
33389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
33399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPushMatrix();
33409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */
33439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glReadPixels__IIIIIILjava_nio_Buffer_2
33459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) {
33469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
334717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
33489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
33499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pixels = (GLvoid *) 0;
33509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
335117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
335217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (pixels == NULL) {
335317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
335417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
335517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
33569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glReadPixels(
33579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
33589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
33599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
33609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
33619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
33629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
33639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pixels
33649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
33662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, pixels, JNI_TRUE);
33679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */
33719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glRotatef__FFFF
33739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) {
33749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glRotatef(
33759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)angle,
33769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
33779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
33789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z
33799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */
33839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glRotatex__IIII
33859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) {
33869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glRotatex(
33879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)angle,
33889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
33899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
33909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z
33919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */
33959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glSampleCoverage__FZ
33979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) {
33989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glSampleCoverage(
33999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)value,
34009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)invert
34019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */
34059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glSampleCoveragex__IZ
34079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint value, jboolean invert) {
34089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glSampleCoveragex(
34099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)value,
34109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)invert
34119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */
34159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glScalef__FFF
34179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
34189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glScalef(
34199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
34209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
34219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z
34229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */
34269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glScalex__III
34289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
34299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glScalex(
34309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
34319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
34329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z
34339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */
34379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glScissor__IIII
34399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
34409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glScissor(
34419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
34429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
34439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
34449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height
34459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glShadeModel ( GLenum mode ) */
34499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glShadeModel__I
34519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
34529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glShadeModel(
34539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
34549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */
34589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glStencilFunc__III
34609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) {
34619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glStencilFunc(
34629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func,
34639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)ref,
34649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)mask
34659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glStencilMask ( GLuint mask ) */
34699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glStencilMask__I
34719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mask) {
34729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glStencilMask(
34739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)mask
34749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */
34789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glStencilOp__III
34809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) {
34819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glStencilOp(
34829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)fail,
34839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)zfail,
34849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)zpass
34859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
34899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I
34919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
34929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
349317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
34949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
34959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
34969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3497e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
349816e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
3499e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3500e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3501e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3502e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
35039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexCoordPointerBounds(
35049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
35059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
35069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
35079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
35089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
35099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
35109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
35119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */
35139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
35149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvf__IIF
35159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
35169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvf(
35179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
35189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
35199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
35209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
35219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
35229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
35249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
35259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvfv__II_3FI
35269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
35272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
35282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
35292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
35309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
35319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
35329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
35339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
35352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
35362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
35372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
35389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
35412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
35422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
35432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
35449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
35479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
35489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
35499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
35509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
35519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
35529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
35539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
35549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
35559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
35569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
35579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
35589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
35599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
35609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
35619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
35629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
35639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
35649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
35659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
35669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
35679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
35689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
35702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
35712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
35722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
35739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
35769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
35779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
35789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvfv(
35809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
35819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
35829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
35839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
35849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
35869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
35879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
35889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
35899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
35912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
35922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
35939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
35949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
35969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
35979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvfv__IILjava_nio_FloatBuffer_2
35989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
35992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
36002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
36012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
36029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
360317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
36049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
36059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
36069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
360717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
36089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
36099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
36109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
36119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
36129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
36139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
36149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
36159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
36169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
36179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
36189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
36199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
36209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
36219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
36229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
36239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
36249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
36259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
36269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
36279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
36289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
36299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
36312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
36322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
36332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
36349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
363617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
363717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
363817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
363917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
36409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvfv(
36419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
36429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
36439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
36449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
36459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
36479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
36489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
36499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
36512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
36522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
36539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
36549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */
36569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
36579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvx__III
36589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
36599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvx(
36609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
36619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
36629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
36639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
36649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
36659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
36679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
36689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvxv__II_3II
36699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
36702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
36712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
36722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
36739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
36749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
36759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
36769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
36782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
36792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
36802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
36819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
36842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
36852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
36862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
36879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
36909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
36919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
36929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
36939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
36949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
36959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
36969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
36979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
36989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
36999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
37009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
37019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
37029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
37039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
37049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
37059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
37069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
37079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
37089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
37099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
37109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
37119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
37132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
37142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
37152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
37169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
37199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
37209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
37219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvxv(
37239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
37249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
37259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
37269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
37279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
37299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
37309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
37319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
37329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
37342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
37352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
37369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
37379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
37399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
37409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvxv__IILjava_nio_IntBuffer_2
37419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
37422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
37432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
37442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
37459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
374617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
37479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
37489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
37499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
375017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
37519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
37529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
37539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
37549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
37559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
37569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
37579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
37589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
37599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
37609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
37619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
37629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
37639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
37649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
37659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
37669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
37679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
37689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
37699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
37709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
37719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
37729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
37742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
37752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
37762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
37779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
377917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
378017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
378117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
378217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
37839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvxv(
37849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
37859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
37869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
37879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
37889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
37909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
37919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
37929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
37942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
37952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
37969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
37979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */
37999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2
38019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) {
38029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
380317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
38049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
38059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pixels = (GLvoid *) 0;
38069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (pixels_buf) {
380817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
380917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
381017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (pixels == NULL) {
381117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
381217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
38139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexImage2D(
38159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
38169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
38179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)internalformat,
38189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
38199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
38209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)border,
38219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
38229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
38239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pixels
38249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
38269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, pixels, JNI_FALSE);
38279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */
38319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterf__IIF
38339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
38349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterf(
38359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
38369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
38379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
38389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */
38429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterx__III
38449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
38459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterx(
38469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
38479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
38489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
38499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */
38539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
38559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) {
38569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
385717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
38589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
38599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pixels = (GLvoid *) 0;
38609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (pixels_buf) {
386217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
386317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
386417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (pixels == NULL) {
386517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
386617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
38679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexSubImage2D(
38699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
38709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
38719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)xoffset,
38729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)yoffset,
38739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
38749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
38759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
38769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
38779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pixels
38789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
38809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, pixels, JNI_FALSE);
38819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */
38859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTranslatef__FFF
38879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
38889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTranslatef(
38899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
38909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
38919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z
38929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */
38969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTranslatex__III
38989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
38999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTranslatex(
39009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
39019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
39029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z
39039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
39049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
39079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glVertexPointerBounds__IIILjava_nio_Buffer_2I
39099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
39109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
391117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
39129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
39139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
39149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3915e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
391616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
3917e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3918e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3919e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3920e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
39219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glVertexPointerBounds(
39229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
39239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
39249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
39259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
39269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
39279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
39289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */
39319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glViewport__IIII
39339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
39349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glViewport(
39359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
39369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
39379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
39389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height
39399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
39409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent ) */
39439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
39449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glQueryMatrixxOES___3II_3II
39459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray mantissa_ref, jint mantissaOffset, jintArray exponent_ref, jint exponentOffset) {
39469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
39472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
39482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
39499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLbitfield _returnValue = -1;
39509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *mantissa_base = (GLfixed *) 0;
39519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _mantissaRemaining;
39529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *mantissa = (GLfixed *) 0;
39539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *exponent_base = (GLint *) 0;
39549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exponentRemaining;
39559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *exponent = (GLint *) 0;
39569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!mantissa_ref) {
39589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
39592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
39602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "mantissa == null";
39619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (mantissaOffset < 0) {
39649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
39652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
39662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "mantissaOffset < 0";
39679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _mantissaRemaining = _env->GetArrayLength(mantissa_ref) - mantissaOffset;
39709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_mantissaRemaining < 16) {
39719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
39722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
39732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - mantissaOffset < 16 < needed";
39749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    mantissa_base = (GLfixed *)
39779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(mantissa_ref, (jboolean *)0);
39789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    mantissa = mantissa_base + mantissaOffset;
39799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!exponent_ref) {
39819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
39822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
39832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "exponent == null";
39849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (exponentOffset < 0) {
39879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
39882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
39892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "exponentOffset < 0";
39909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _exponentRemaining = _env->GetArrayLength(exponent_ref) - exponentOffset;
39939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_exponentRemaining < 16) {
39949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
39952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
39962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - exponentOffset < 16 < needed";
39979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    exponent_base = (GLint *)
40009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(exponent_ref, (jboolean *)0);
40019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    exponent = exponent_base + exponentOffset;
40029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glQueryMatrixxOES(
40049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)mantissa,
40059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)exponent
40069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
40079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
40099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (exponent_base) {
40109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(exponent_ref, exponent_base,
40119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
40129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (mantissa_base) {
40149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(mantissa_ref, mantissa_base,
40159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
40169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
40182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
40192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
40209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
40219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent ) */
40249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
40259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2
40269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject mantissa_buf, jobject exponent_buf) {
40279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
40282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
40292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
40309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _mantissaArray = (jarray) 0;
403117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _mantissaBufferOffset = (jint) 0;
40329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _exponentArray = (jarray) 0;
403317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _exponentBufferOffset = (jint) 0;
40349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLbitfield _returnValue = -1;
40359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _mantissaRemaining;
40369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *mantissa = (GLfixed *) 0;
40379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exponentRemaining;
40389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *exponent = (GLint *) 0;
40399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
404017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    mantissa = (GLfixed *)getPointer(_env, mantissa_buf, &_mantissaArray, &_mantissaRemaining, &_mantissaBufferOffset);
40419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_mantissaRemaining < 16) {
40429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
40432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
40442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 16 < needed";
40459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
40469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
404717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    exponent = (GLint *)getPointer(_env, exponent_buf, &_exponentArray, &_exponentRemaining, &_exponentBufferOffset);
40489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_exponentRemaining < 16) {
40499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
40502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
40512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 16 < needed";
40529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
40539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
405417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (mantissa == NULL) {
405517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mantissaBase = (char *)_env->GetPrimitiveArrayCritical(_mantissaArray, (jboolean *) 0);
405617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        mantissa = (GLfixed *) (_mantissaBase + _mantissaBufferOffset);
405717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
405817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (exponent == NULL) {
405917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _exponentBase = (char *)_env->GetPrimitiveArrayCritical(_exponentArray, (jboolean *) 0);
406017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        exponent = (GLint *) (_exponentBase + _exponentBufferOffset);
406117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
40629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glQueryMatrixxOES(
40639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)mantissa,
40649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)exponent
40659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
40669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
40689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_exponentArray) {
406917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        releasePointer(_env, _exponentArray, exponent, _exception ? JNI_FALSE : JNI_TRUE);
407017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
407117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (_mantissaArray) {
407217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        releasePointer(_env, _mantissaArray, mantissa, _exception ? JNI_FALSE : JNI_TRUE);
40739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
40752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
40762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
40779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
40789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindBuffer ( GLenum target, GLuint buffer ) */
40819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
40829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindBuffer__II
40839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint buffer) {
40849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBindBuffer(
40859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
40869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)buffer
40879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
40889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */
40919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
40929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBufferData__IILjava_nio_Buffer_2I
40939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) {
40942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
40952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
40962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
40979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
409817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
40999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
41009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
41019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (data_buf) {
410317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
4104c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich        if (_remaining < size) {
41052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer            _exception = 1;
41062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer            _exceptionType = "java/lang/IllegalArgumentException";
41072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer            _exceptionMessage = "remaining() < size < needed";
4108c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich            goto exit;
4109c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich        }
41109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
411117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (data == NULL) {
411217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
411317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        data = (GLvoid *) (_dataBase + _bufferOffset);
411417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
41159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBufferData(
41169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
41179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizeiptr)size,
41189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data,
41199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)usage
41209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4121c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich
4122c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit:
41239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
41249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
41259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
41272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
41282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
41299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
41309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */
41329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
41339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBufferSubData__IIILjava_nio_Buffer_2
41349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) {
41352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
41362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
41372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
41389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
413917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
41409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
41419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
41429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
414317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
4144c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich    if (_remaining < size) {
41452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
41462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
41472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < size < needed";
4148c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich        goto exit;
4149c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich    }
415017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (data == NULL) {
415117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
415217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        data = (GLvoid *) (_dataBase + _bufferOffset);
415317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
41549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBufferSubData(
41559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
41569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLintptr)offset,
41579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizeiptr)size,
41589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data
41599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4160c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich
4161c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit:
41629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
41639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
41649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
41662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
41672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
41689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
41699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
41719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
41729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanef__I_3FI
41739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) {
41742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
41752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
41762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
41779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *equation_base = (GLfloat *) 0;
41789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
41799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *equation = (GLfloat *) 0;
41809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!equation_ref) {
41822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
41832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
41842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "equation == null";
41859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
41882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
41892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
41902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
41919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(equation_ref) - offset;
41949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
41952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
41962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
41972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 4 < needed";
41989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation_base = (GLfloat *)
42019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
42029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation = equation_base + offset;
42039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanef(
42059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
42069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)equation
42079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
42089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
42109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (equation_base) {
42119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
42129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
42139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
42152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
42162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
42179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
42189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
42209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
42219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanef__ILjava_nio_FloatBuffer_2
42229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
42232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
42242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
42252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
42269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
422717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
42289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
42299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *equation = (GLfloat *) 0;
42309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
423117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset);
42329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
42332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
42342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
42352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 4 < needed";
42369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
42379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
423817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (equation == NULL) {
423917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
424017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        equation = (GLfloat *) (_equationBase + _bufferOffset);
424117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
42429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanef(
42439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
42449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)equation
42459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
42469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
42489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
42499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, equation, JNI_FALSE);
42509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
42522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
42532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
42549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
42559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
42579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
42589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanex__I_3II
42599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) {
42602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
42612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
42622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
42639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *equation_base = (GLfixed *) 0;
42649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
42659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *equation = (GLfixed *) 0;
42669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!equation_ref) {
42682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
42692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
42702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "equation == null";
42719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
42729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
42742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
42752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
42762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
42779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
42789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(equation_ref) - offset;
42809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
42812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
42822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
42832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 4 < needed";
42849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
42859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation_base = (GLfixed *)
42879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
42889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation = equation_base + offset;
42899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanex(
42919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
42929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)equation
42939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
42949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
42969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (equation_base) {
42979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
42989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
42999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
43012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
43022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
43039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
43049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
43069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
43079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanex__ILjava_nio_IntBuffer_2
43089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
43092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
43102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
43112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
43129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
431317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
43149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
43159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *equation = (GLfixed *) 0;
43169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
431717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset);
43189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
43192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
43202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
43212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 4 < needed";
43229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
43239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
432417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (equation == NULL) {
432517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
432617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        equation = (GLfixed *) (_equationBase + _bufferOffset);
432717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
43289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanex(
43299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
43309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)equation
43319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
43329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
43349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
43359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, equation, JNI_FALSE);
43369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
43382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
43392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
43409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
43419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) */
43439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
43449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColor4ub__BBBB
43459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jbyte red, jbyte green, jbyte blue, jbyte alpha) {
43469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColor4ub(
43479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)red,
43489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)green,
43499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)blue,
43509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)alpha
43519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
43529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
43539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
43559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
43569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColorPointer__IIII
43579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
43589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColorPointer(
43599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
43609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
43619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
43629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
43639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
43649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
43659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
43679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
43689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteBuffers__I_3II
43699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
43702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
43712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
43722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
43739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers_base = (GLuint *) 0;
43749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
43759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
43769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!buffers_ref) {
43782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
43792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
43802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "buffers == null";
43819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
43829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
43842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
43852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
43862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
43879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
43889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(buffers_ref) - offset;
43909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
43912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
43922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
43932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
43949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
43959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers_base = (GLuint *)
43979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
43989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers = buffers_base + offset;
43999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteBuffers(
44019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
44029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
44039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
44049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
44069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (buffers_base) {
44079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
44089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
44099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
44112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
44122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
44139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
44149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
44169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
44179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteBuffers__ILjava_nio_IntBuffer_2
44189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
44192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
44202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
44212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
44229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
442317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
44249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
44259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
44269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
442717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset);
44289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
44292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
44302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
44312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
44329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
443417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (buffers == NULL) {
443517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
443617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        buffers = (GLuint *) (_buffersBase + _bufferOffset);
443717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
44389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteBuffers(
44399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
44409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
44419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
44429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
44449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
44459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, buffers, JNI_FALSE);
44469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
44482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
44492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
44509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
44519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */
44539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
44549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawElements__IIII
44559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) {
44562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
44572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
44582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
44599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawElements(
44609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode,
44619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)count,
44629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
44639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
44649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
44652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
44662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
44672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
44689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
44699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
44719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
44729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenBuffers__I_3II
44739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
44749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
44752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
44762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
44779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers_base = (GLuint *) 0;
44789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
44799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
44809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!buffers_ref) {
44829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
44832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
44842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "buffers == null";
44859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
44889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
44892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
44902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
44919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(buffers_ref) - offset;
44949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
44959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
44962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
44972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
44989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers_base = (GLuint *)
45019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
45029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers = buffers_base + offset;
45039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenBuffers(
45059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
45069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
45079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
45089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
45109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (buffers_base) {
45119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
45129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
45139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
45152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
45162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
45179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
45189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
45209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
45219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenBuffers__ILjava_nio_IntBuffer_2
45229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
45239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
45242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
45252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
45269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
452717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
45289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
45299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
45309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
453117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset);
45329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
45339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
45342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
45352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
45369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
45379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
453817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (buffers == NULL) {
453917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
454017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        buffers = (GLuint *) (_buffersBase + _bufferOffset);
454117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
45429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenBuffers(
45439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
45449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
45459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
45469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
45489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
45499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE);
45509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
45522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
45532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
45549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
45559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
45579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
45589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBooleanv__I_3ZI
45599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) {
45609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
45612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
45622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
45639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean *params_base = (GLboolean *) 0;
45649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
45659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean *params = (GLboolean *) 0;
45669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
45689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
45692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
45702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
45719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
45729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
45749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
45752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
45762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
45779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
45789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
45809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLboolean *)
45819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
45829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
45839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetBooleanv(
45859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
45869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean *)params
45879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
45889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
45909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
45919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
45929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
45939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
45952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
45962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
45979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
45989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
46009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
46019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBooleanv__ILjava_nio_IntBuffer_2
46029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
46039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
460417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
46059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
46069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean *params = (GLboolean *) 0;
46079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
460817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
460917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
461017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
461117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLboolean *) (_paramsBase + _bufferOffset);
461217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
46139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetBooleanv(
46149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
46159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean *)params
46169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
46179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
46182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
46199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
46219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
46239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
46249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBufferParameteriv__II_3II
46259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
462624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    jniThrowException(_env, "java/lang/UnsupportedOperationException",
46279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetBufferParameteriv");
46289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
46299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
46319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
46329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBufferParameteriv__IILjava_nio_IntBuffer_2
46339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
463424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    jniThrowException(_env, "java/lang/UnsupportedOperationException",
46359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetBufferParameteriv");
46369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
46379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
46399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
46409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanef__I_3FI
46419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) {
46429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
46432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
46442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
46459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *eqn_base = (GLfloat *) 0;
46469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
46479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *eqn = (GLfloat *) 0;
46489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!eqn_ref) {
46509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
46512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
46522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "eqn == null";
46539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
46549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
46569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
46572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
46582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
46599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
46609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(eqn_ref) - offset;
46629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn_base = (GLfloat *)
46639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
46649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn = eqn_base + offset;
46659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanef(
46679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
46689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)eqn
46699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
46709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
46729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (eqn_base) {
46739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
46749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
46759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
46772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
46782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
46799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
46809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
46829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
46839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanef__ILjava_nio_FloatBuffer_2
46849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
46859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
468617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
46879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
46889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *eqn = (GLfloat *) 0;
46899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
469017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset);
469117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (eqn == NULL) {
469217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
469317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        eqn = (GLfloat *) (_eqnBase + _bufferOffset);
469417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
46959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanef(
46969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
46979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)eqn
46989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
46999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
47002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, eqn, JNI_TRUE);
47019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
47039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
47059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
47069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanex__I_3II
47079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) {
47089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
47092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
47102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
47119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *eqn_base = (GLfixed *) 0;
47129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
47139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *eqn = (GLfixed *) 0;
47149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!eqn_ref) {
47169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
47172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
47182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "eqn == null";
47199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
47229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
47232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
47242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
47259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(eqn_ref) - offset;
47289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn_base = (GLfixed *)
47299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
47309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn = eqn_base + offset;
47319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanex(
47339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
47349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)eqn
47359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
47369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
47389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (eqn_base) {
47399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
47409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
47419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
47432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
47442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
47459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
47469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
47489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
47499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanex__ILjava_nio_IntBuffer_2
47509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
47519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
475217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
47539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
47549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *eqn = (GLfixed *) 0;
47559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
475617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset);
475717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (eqn == NULL) {
475817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
475917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        eqn = (GLfixed *) (_eqnBase + _bufferOffset);
476017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
47619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanex(
47629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
47639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)eqn
47649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
47659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
47662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, eqn, JNI_TRUE);
47679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
47699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFixedv ( GLenum pname, GLfixed *params ) */
47719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
47729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFixedv__I_3II
47739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
47749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
47752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
47762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
47779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
47789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
47799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
47809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
47829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
47832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
47842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
47859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
47889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
47892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
47902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
47919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
47949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
47959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
47969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
47979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFixedv(
47999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
48009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
48019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
48029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
48049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
48059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
48069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
48079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
48092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
48102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
48119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
48129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFixedv ( GLenum pname, GLfixed *params ) */
48149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
48159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFixedv__ILjava_nio_IntBuffer_2
48169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
48179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
481817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
48199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
48209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
48219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
482217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
482317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
482417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
482517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
482617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
48279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFixedv(
48289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
48299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
48309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
48319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
48322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
48339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
48359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFloatv ( GLenum pname, GLfloat *params ) */
48379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
48389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFloatv__I_3FI
48399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
48409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
48412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
48422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
48439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
48449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
48459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
48469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
48489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
48492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
48502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
48519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
48529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
48549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
48552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
48562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
48579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
48589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
48609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
48619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
48629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
48639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFloatv(
48659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
48669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
48679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
48689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
48709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
48719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
48729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
48739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
48752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
48762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
48779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
48789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFloatv ( GLenum pname, GLfloat *params ) */
48809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
48819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFloatv__ILjava_nio_FloatBuffer_2
48829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
48839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
488417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
48859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
48869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
48879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
488817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
488917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
489017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
489117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
489217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
48939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFloatv(
48949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
48959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
48969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
48979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
48982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
48999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
49019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
49039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
49049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightfv__II_3FI
49059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
49069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
49072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
49082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
49099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
49109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
49119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
49129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
49149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
49152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
49162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
49179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
49209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
49212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
49222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
49239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
49269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
49279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
49289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
49299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
49309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
49319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
49329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
49339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
49349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
49359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
49369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
49379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
49389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
49399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
49409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
49419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
49429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
49439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
49449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
49469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
49479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
49489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
49499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
49519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
49529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
49539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
49549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
49559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
49569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
49579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
49589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
49599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
49609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
49619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
49629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
49639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
49659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
49669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
49699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
49702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
49712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
49729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
49759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
49769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
49779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightfv(
49799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
49809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
49819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
49829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
49839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
49859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
49869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
49879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
49889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
49902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
49912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
49929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
49939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
49959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
49969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightfv__IILjava_nio_FloatBuffer_2
49979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
49989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
49992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
50002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
50019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
500217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
50039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
50049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
50059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
500617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
50079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
50089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
50099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
50109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
50119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
50129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
50139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
50149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
50159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
50169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
50179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
50189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
50199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
50209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
50219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
50229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
50239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
50249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
50259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
50269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
50279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
50289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
50299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
50309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
50319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
50329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
50339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
50349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
50359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
50369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
50379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
50389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
50399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
50409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
50419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
50429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
50439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
50449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
50459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
50469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
50479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
50489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
50509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
50512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
50522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
50539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
505517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
505617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
505717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
505817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
50599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightfv(
50609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
50619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
50629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
50639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
50649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
50669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
50679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
50689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
50702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
50712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
50729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
50739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
50759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
50769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightxv__II_3II
50779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
50789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
50792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
50802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
50819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
50829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
50839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
50849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
50869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
50872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
50882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
50899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
50929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
50932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
50942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
50959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
50989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
50999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
51009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
51019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
51029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
51039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
51049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
51059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
51069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
51079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
51089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
51099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
51109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
51119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
51129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
51139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
51149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
51159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
51169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
51179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
51189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
51199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
51209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
51219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
51229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
51239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
51249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
51259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
51269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
51279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
51289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
51299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
51309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
51319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
51329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
51339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
51349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
51359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
51369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
51379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
51389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
51399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
51419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
51422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
51432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
51449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
51459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
51479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
51489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
51499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightxv(
51519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
51529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
51539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
51549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
51559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
51579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
51589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
51599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
51609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
51622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
51632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
51649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
51679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
51689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightxv__IILjava_nio_IntBuffer_2
51699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
51709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
51712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
51722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
51739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
517417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
51759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
51769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
51779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
517817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
51799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
51809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
51819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
51829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
51839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
51849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
51859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
51869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
51879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
51889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
51899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
51909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
51919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
51929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
51939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
51949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
51959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
51969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
51979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
51989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
51999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
52009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
52019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
52029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
52039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
52049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
52059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
52069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
52079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
52089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
52099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
52109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
52119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
52129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
52139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
52149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
52159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
52169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
52179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
52189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
52199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
52209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
52229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
52232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
52242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
52259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
522717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
522817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
522917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
523017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
52319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightxv(
52329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
52339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
52349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
52359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
52369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
52389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
52399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
52409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
52422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
52432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
52449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
52459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
52479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
52489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialfv__II_3FI
52499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
52509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
52512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
52522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
52539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
52549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
52559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
52569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
52589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
52592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
52602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
52619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
52649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
52652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
52662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
52679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
52709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
52719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
52729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
52739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
52749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
52759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
52769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
52779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
52789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
52799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
52809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
52819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
52829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
52839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
52849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
52859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
52869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
52879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
52889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
52899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
52909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
52919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
52929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
52939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
52949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
52959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
52969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
52979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
52999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
53002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
53012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
53029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
53039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
53059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
53069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
53079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialfv(
53099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
53109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
53119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
53129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
53159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
53169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
53179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
53189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
53202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
53212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
53229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
53259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialfv__IILjava_nio_FloatBuffer_2
53279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
53289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
53292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
53302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
53319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
533217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
53339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
53349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
53359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
533617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
53379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
53389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
53399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
53409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
53419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
53429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
53439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
53449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
53459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
53469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
53479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
53489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
53499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
53509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
53519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
53529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
53539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
53549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
53559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
53569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
53579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
53589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
53599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
53609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
53619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
53629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
53639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
53649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
53669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
53672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
53682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
53699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
53709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
537117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
537217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
537317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
537417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
53759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialfv(
53769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
53779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
53789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
53799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
53829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
53839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
53849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
53862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
53872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
53889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
53919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialxv__II_3II
53939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
53949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
53952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
53962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
53979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
53989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
53999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
54009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
54029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
54032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
54042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
54059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
54069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
54089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
54092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
54102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
54119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
54129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
54149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
54159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
54169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
54179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
54189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
54199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
54209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
54219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
54229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
54239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
54249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
54259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
54269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
54279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
54289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
54299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
54309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
54319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
54329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
54339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
54349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
54359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
54369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
54379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
54389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
54399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
54409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
54419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
54439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
54442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
54452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
54469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
54479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
54499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
54509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
54519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialxv(
54539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
54549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
54559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
54569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
54579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
54599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
54609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
54619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
54629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
54642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
54652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
54669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
54679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
54699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
54709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialxv__IILjava_nio_IntBuffer_2
54719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
54729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
54732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
54742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
54759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
547617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
54779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
54789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
54799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
548017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
54819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
54829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
54839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
54849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
54859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
54869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
54879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
54889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
54899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
54909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
54919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
54929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
54939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
54949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
54959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
54969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
54979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
54989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
54999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
55009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
55019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
55029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
55039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
55049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
55069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
55079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
55109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
55112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
55122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
55139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
551517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
551617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
551717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
551817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
55199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialxv(
55209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
55219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
55229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
55239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
55249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
55269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
55279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
55289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
55302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
55312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
55329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
55339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
55359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
55369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnviv__II_3II
55379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
55389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
55392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
55402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
55419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
55429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
55439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
55449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
55469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
55472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
55482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
55499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
55529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
55532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
55542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
55559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
55589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
55599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
55609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
55619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
55629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
55639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
55649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
55659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
55669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
55679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
55689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
55699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
55709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
55729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
55739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
55749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
55759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
55779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
55789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
55819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
55822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
55832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
55849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
55879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
55889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
55899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnviv(
55919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
55929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
55939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
55949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
55959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
55979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
55989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
55999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
56009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
56022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
56032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
56049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
56079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
56089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnviv__IILjava_nio_IntBuffer_2
56099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
56109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
56112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
56122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
56139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
561417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
56159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
56169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
56179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
561817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
56199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
56209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
56219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
56229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
56239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
56249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
56259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
56269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
56279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
56289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
56299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
56309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
56319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
56329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
56339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
56349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
56359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
56369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
56379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
56389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
56399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
56409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
56429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
56432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
56442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
56459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
564717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
564817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
564917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
565017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
56519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnviv(
56529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
56539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
56549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
56559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
56569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
56589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
56599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
56609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
56622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
56632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
56649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
56679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
56689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnvxv__II_3II
56699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
56709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
56712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
56722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
56739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
56749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
56759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
56769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
56789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
56792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
56802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
56819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
56849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
56852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
56862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
56879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
56909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
56919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
56929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
56939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
56949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
56959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
56969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
56979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
56989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
56999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
57009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
57019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
57029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
57039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
57049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
57059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
57069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
57079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
57089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
57099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
57109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
57119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
57139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
57142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
57152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
57169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
57199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
57209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
57219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnvxv(
57239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
57249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
57259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
57269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
57279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
57299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
57309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
57319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
57329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
57342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
57352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
57369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
57399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
57409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnvxv__IILjava_nio_IntBuffer_2
57419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
57429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
57432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
57442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
57459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
574617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
57479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
57489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
57499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
575017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
57519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
57529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
57539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
57549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
57559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
57569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
57579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
57589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
57599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
57609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
57619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
57629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
57639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
57649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
57659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
57669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
57679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
57689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
57699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
57709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
57719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
57729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
57749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
57752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
57762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
57779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
577917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
578017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
578117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
578217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
57839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnvxv(
57849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
57859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
57869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
57879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
57889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
57909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
57919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
57929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
57942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
57952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
57969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
57999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterfv__II_3FI
58019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
58029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
58032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
58042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
58059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
58069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
58079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
58089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
58109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
58112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
58122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
58139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
58169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
58172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
58182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
58199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
58229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
58239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
58242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
58252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 1 < needed";
58269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
58299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
58309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
58319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterfv(
58339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
58349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
58359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
58369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
58399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
58409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
58419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
58429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
58442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
58452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
58469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
58499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterfv__IILjava_nio_FloatBuffer_2
58519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
58529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
58532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
58542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
58559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
585617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
58579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
58589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
58599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
586017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
58619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
58629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
58632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
58642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 1 < needed";
58659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
586717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
586817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
586917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
587017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
58719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterfv(
58729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
58739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
58749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
58759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
58789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
58799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
58809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
58822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
58832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
58849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
58879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameteriv__II_3II
58899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
58909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
58912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
58922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
58939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
58949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
58959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
58969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
58989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
58992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
59002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
59019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
59049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
59052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
59062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
59079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
59109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
59119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
59122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
59132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 1 < needed";
59149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
59179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
59189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
59199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameteriv(
59219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
59229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
59239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
59249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
59259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
59279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
59289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
59299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
59309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
59322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
59332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
59349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
59359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
59379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameteriv__IILjava_nio_IntBuffer_2
59399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
59409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
59412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
59422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
59439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
594417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
59459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
59469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
59479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
594817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
59499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
59509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
59512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
59522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 1 < needed";
59539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
595517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
595617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
595717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
595817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
59599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameteriv(
59609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
59619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
59629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
59639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
59649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
59669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
59679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
59689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
59702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
59712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
59729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
59739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
59759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterxv__II_3II
59779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
59789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
59792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
59802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
59819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
59829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
59839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
59849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
59869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
59872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
59882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
59899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
59929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
59932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
59942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
59959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
59989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
59999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
60002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
60012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 1 < needed";
60029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
60039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
60059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
60069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
60079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterxv(
60099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
60109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
60119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
60129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
60139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
60159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
60169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
60179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
60189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
60202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
60212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
60229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
60259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterxv__IILjava_nio_IntBuffer_2
60279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
60289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
60292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
60302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
60319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
603217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
60339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
60349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
60359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
603617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
60379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
60389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
60392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
60402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 1 < needed";
60419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
60429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
604317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
604417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
604517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
604617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
60479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterxv(
60489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
60499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
60509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
60519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
60529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
60549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
60559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
60569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
60582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
60592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
60609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsBuffer ( GLuint buffer ) */
60639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
60649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsBuffer__I
60659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint buffer) {
60669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean _returnValue;
60679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glIsBuffer(
60689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)buffer
60699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
60709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
60719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsEnabled ( GLenum cap ) */
60749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
60759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsEnabled__I
60769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint cap) {
60779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean _returnValue;
60789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glIsEnabled(
60799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)cap
60809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
60819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
60829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsTexture ( GLuint texture ) */
60859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
60869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsTexture__I
60879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint texture) {
60889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean _returnValue;
60899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glIsTexture(
60909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)texture
60919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
60929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
60939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormalPointer ( GLenum type, GLsizei stride, GLint offset ) */
60969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormalPointer__III
60989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint type, jint stride, jint offset) {
60999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormalPointer(
61009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
61019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
61029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
61039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
61049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterf ( GLenum pname, GLfloat param ) */
61079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterf__IF
61099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
61109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterf(
61119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
61129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
61139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
61149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
61179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterfv__I_3FI
61199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
61202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
61212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
61222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
61239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
61249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
61259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
61269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
61282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
61292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
61302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
61319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
61329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
61339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
61342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
61352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
61362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
61379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
61389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
61399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
61409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
61412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
61422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
61432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 1 < needed";
61449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
61459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
61469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
61479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
61489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
61499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterfv(
61519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
61529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
61539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
61549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
61569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
61579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
61589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
61599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
61602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
61612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
61622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
61639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
61669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterfv__ILjava_nio_FloatBuffer_2
61689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
61692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
61702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
61712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
61729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
617317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
61749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
61759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
61769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
617717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
61789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
61792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
61802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
61812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 1 < needed";
61829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
61839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
618417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
618517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
618617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
618717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
61889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterfv(
61899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
61909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
61919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
61929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
61949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
61959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
61969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
61972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
61982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
61992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
62009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterx ( GLenum pname, GLfixed param ) */
62039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterx__II
62059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
62069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterx(
62079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
62089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
62099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
62109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
62139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterxv__I_3II
62159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
62162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
62172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
62182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
62199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
62209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
62219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
62229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
62242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
62252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
62262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
62279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
62289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
62299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
62302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
62312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
62322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
62339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
62349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
62359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
62369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
62372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
62382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
62392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 1 < needed";
62409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
62419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
62429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
62439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
62449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
62459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterxv(
62479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
62489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
62499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
62509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
62529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
62539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
62549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
62559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
62562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
62572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
62582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
62599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
62629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterxv__ILjava_nio_IntBuffer_2
62649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
62652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
62662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
62672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
62689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
626917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
62709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
62719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
62729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
627317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
62749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
62752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
62762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
62772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 1 < needed";
62789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
62799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
628017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
628117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
628217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
628317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
62849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterxv(
62859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
62869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
62879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
62889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
62909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
62919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
62929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
62932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
62942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
62952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
62969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
62999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6300be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I
6301be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich  (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
63029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
630317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
63049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
63059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
63069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6307be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (pointer_buf) {
6308be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
6309be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        if ( ! pointer ) {
6310be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich            return;
6311be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        }
6312be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
6313be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glPointSizePointerOESBounds(
63149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
63159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
6316be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLvoid *)pointer,
6317be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)remaining
63189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
63199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
63229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexCoordPointer__IIII
63249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
63259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexCoordPointer(
63269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
63279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
63289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
63299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
63309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
63319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvi ( GLenum target, GLenum pname, GLint param ) */
63349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvi__III
63369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
63379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvi(
63389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
63399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
63409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)param
63419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
63429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
63459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnviv__II_3II
63479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
63482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
63492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
63502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
63519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
63529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
63539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
63549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
63562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
63572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
63582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
63599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
63609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
63619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
63622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
63632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
63642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
63659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
63669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
63679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
63689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
63699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
63709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
63719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
63729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
63739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
63749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
63759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
63769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
63779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
63789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
63799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
63809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
63819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
63829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
63839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
63849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
63859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
63869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
63879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
63889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
63899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
63909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
63912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
63922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
63932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
63949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
63959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
63969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
63979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
63989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
63999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnviv(
64019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
64029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
64039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
64049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
64059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
64079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
64089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
64099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
64109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
64112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
64122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
64132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
64149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
64159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
64179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
64189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnviv__IILjava_nio_IntBuffer_2
64199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
64202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
64212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
64222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
64239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
642417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
64259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
64269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
64279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
642817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
64299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
64309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
64319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
64329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
64339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
64349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
64359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
64369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
64379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
64389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
64399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
64409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
64419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
64429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
64439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
64449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
64459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
64469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
64479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
64489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
64499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
64509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
64519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
64522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
64532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
64542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
64559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
64569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
645717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
645817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
645917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
646017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
64619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnviv(
64629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
64639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
64649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
64659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
64669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
64689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
64699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
64709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
64712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
64722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
64732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
64749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
64759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
64779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
64789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterfv__II_3FI
64799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
64802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
64812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
64822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
64839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
64849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
64859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
64869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
64882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
64892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
64902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
64919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
64929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
64939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
64942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
64952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
64962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
64979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
64989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
64999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
65009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
65012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
65022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
65032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 1 < needed";
65049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
65059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
65069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
65079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
65089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
65099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
65109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterfv(
65119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
65129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
65139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
65149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
65159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
65169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
65179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
65189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
65199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
65209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
65212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
65222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
65232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
65249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
65259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
65269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
65279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
65289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterfv__IILjava_nio_FloatBuffer_2
65299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
65302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
65312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
65322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
65339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
653417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
65359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
65369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
65379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
653817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
65399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
65402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
65412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
65422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 1 < needed";
65439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
65449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
654517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
654617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
654717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
654817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
65499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterfv(
65509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
65519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
65529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
65539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
65549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
65559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
65569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
65579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
65589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
65592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
65602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
65612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
65629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
65639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
65649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */
65659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
65669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameteri__III
65679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
65689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameteri(
65699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
65709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
65719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)param
65729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
65739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
65749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
65759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
65769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
65779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameteriv__II_3II
65789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
65792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
65802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
65812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
65829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
65839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
65849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
65859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
65869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
65872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
65882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
65892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
65909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
65919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
65929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
65932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
65942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
65952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
65969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
65979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
65989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
65999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
66002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
66012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
66022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 1 < needed";
66039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
66049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
66059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
66069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
66079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
66089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameteriv(
66109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
66119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
66129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
66139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
66149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
66169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
66179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
66189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
66199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
66202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
66212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
66222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
66239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
66249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
66269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
66279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameteriv__IILjava_nio_IntBuffer_2
66289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
66292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
66302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
66312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
66329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
663317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
66349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
66359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
66369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
663717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
66389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
66392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
66402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
66412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 1 < needed";
66429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
66439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
664417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
664517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
664617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
664717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
66489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameteriv(
66499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
66509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
66519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
66529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
66539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
66559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
66569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
66579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
66582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
66592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
66602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
66619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
66629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
66649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
66659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterxv__II_3II
66669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
66672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
66682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
66692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
66709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
66719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
66729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
66739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
66752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
66762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
66772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
66789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
66799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
66809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
66812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
66822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
66832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
66849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
66859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
66869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
66879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
66882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
66892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
66902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 1 < needed";
66919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
66929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
66939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
66949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
66959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
66969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterxv(
66989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
66999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
67009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
67019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
67029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
67039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
67049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
67059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
67069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
67079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
67082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
67092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
67102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
67119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
67129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
67139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
67149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
67159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterxv__IILjava_nio_IntBuffer_2
67169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
67172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
67182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
67192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
67209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
672117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
67229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
67239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
67249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
672517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
67269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
67272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
67282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
67292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 1 < needed";
67309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
67319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
673217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
673317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
673417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
673517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
67369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterxv(
67379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
67389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
67399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
67409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
67419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
67429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
67439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
67449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
67459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
67462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
67472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
67482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
67499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
67509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
67519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
67529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
67539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glVertexPointer__IIII
67549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
67559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glVertexPointer(
67569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
67579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
67589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
67599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
67609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
67619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
67629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
67639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCurrentPaletteMatrixOES ( GLuint matrixpaletteindex ) */
67649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
67659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCurrentPaletteMatrixOES__I
67669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint matrixpaletteindex) {
6767be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glCurrentPaletteMatrixOES(
6768be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLuint)matrixpaletteindex
6769be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
67709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
67719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
67729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexfOES ( GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height ) */
67739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
67749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexfOES__FFFFF
67759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z, jfloat width, jfloat height) {
67769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexfOES(
67779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
67789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
67799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z,
67809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)width,
67819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)height
67829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
67839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
67849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
67859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexfvOES ( const GLfloat *coords ) */
67869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
67879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexfvOES___3FI
67889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloatArray coords_ref, jint offset) {
67892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
67902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
67912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
67929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *coords_base = (GLfloat *) 0;
67939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
67949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *coords = (GLfloat *) 0;
67959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
67969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
67972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
67982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
67992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "coords == null";
68009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
68019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
68029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
68032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
68042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
68052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
68069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
68079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
68089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
68099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
68102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
68112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
68122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 5 < needed";
68139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
68149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
68159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLfloat *)
68169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
68179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
68189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexfvOES(
68209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)coords
68219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
68229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
68249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
68259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
68269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
68279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
68282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
68292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
68302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
68319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
68329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexfvOES ( const GLfloat *coords ) */
68349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
68359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexfvOES__Ljava_nio_FloatBuffer_2
68369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
68372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
68382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
68392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
68409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
684117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
68429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
68439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *coords = (GLfloat *) 0;
68449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
684517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    coords = (GLfloat *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset);
68469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
68472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
68482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
68492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 5 < needed";
68509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
68519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
685217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (coords == NULL) {
685317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
685417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        coords = (GLfloat *) (_coordsBase + _bufferOffset);
685517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
68569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexfvOES(
68579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)coords
68589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
68599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
68619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
68629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
68639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
68642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
68652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
68662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
68679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
68689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexiOES ( GLint x, GLint y, GLint z, GLint width, GLint height ) */
68709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
68719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexiOES__IIIII
68729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
68739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexiOES(
68749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
68759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
68769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)z,
68779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)width,
68789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)height
68799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
68809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
68819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexivOES ( const GLint *coords ) */
68839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
68849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexivOES___3II
68859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
68862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
68872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
68882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
68899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *coords_base = (GLint *) 0;
68909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
68919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *coords = (GLint *) 0;
68929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
68942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
68952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
68962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "coords == null";
68979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
68989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
68999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
69002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
69012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
69022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
69039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
69049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
69059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
69069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
69072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
69082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
69092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 5 < needed";
69109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
69119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
69129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLint *)
69139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
69149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
69159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexivOES(
69179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)coords
69189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
69199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
69219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
69229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
69239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
69249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
69252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
69262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
69272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
69289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
69299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexivOES ( const GLint *coords ) */
69319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
69329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexivOES__Ljava_nio_IntBuffer_2
69339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
69342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
69352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
69362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
69379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
693817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
69399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
69409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *coords = (GLint *) 0;
69419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
694217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    coords = (GLint *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset);
69439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
69442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
69452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
69462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 5 < needed";
69479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
69489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
694917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (coords == NULL) {
695017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
695117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        coords = (GLint *) (_coordsBase + _bufferOffset);
695217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
69539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexivOES(
69549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)coords
69559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
69569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
69589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
69599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
69609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
69612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
69622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
69632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
69649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
69659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexsOES ( GLshort x, GLshort y, GLshort z, GLshort width, GLshort height ) */
69679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
69689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexsOES__SSSSS
69699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jshort x, jshort y, jshort z, jshort width, jshort height) {
69709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexsOES(
69719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)x,
69729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)y,
69739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)z,
69749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)width,
69759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)height
69769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
69779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
69789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexsvOES ( const GLshort *coords ) */
69809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
69819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexsvOES___3SI
69829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jshortArray coords_ref, jint offset) {
69832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
69842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
69852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
69869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLshort *coords_base = (GLshort *) 0;
69879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
69889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLshort *coords = (GLshort *) 0;
69899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
69912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
69922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
69932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "coords == null";
69949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
69959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
69969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
69972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
69982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
69992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
70009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
70019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
70029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
70039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
70042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
70052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
70062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 5 < needed";
70079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
70089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
70099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLshort *)
70109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
70119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
70129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexsvOES(
70149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort *)coords
70159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
70169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
70189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
70199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
70209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
70219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
70222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
70232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
70242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
70259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
70269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexsvOES ( const GLshort *coords ) */
70289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
70299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexsvOES__Ljava_nio_ShortBuffer_2
70309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
70312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
70322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
70332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
70349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
703517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
70369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
70379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLshort *coords = (GLshort *) 0;
70389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
703917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    coords = (GLshort *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset);
70409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
70412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
70422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
70432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 5 < needed";
70449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
70459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
704617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (coords == NULL) {
704717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
704817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        coords = (GLshort *) (_coordsBase + _bufferOffset);
704917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
70509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexsvOES(
70519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort *)coords
70529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
70539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
70559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
70569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
70579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
70582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
70592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
70602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
70619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
70629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexxOES ( GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height ) */
70649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
70659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexxOES__IIIII
70669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
70679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexxOES(
70689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
70699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
70709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z,
70719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)width,
70729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)height
70739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
70749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
70759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexxvOES ( const GLfixed *coords ) */
70779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
70789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexxvOES___3II
70799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
70802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
70812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
70822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
70839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *coords_base = (GLfixed *) 0;
70849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
70859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *coords = (GLfixed *) 0;
70869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
70882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
70892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
70902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "coords == null";
70919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
70929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
70939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
70942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
70952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
70962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
70979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
70989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
70999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
71009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
71012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
71022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
71032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < 5 < needed";
71049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
71059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
71069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLfixed *)
71079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
71089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
71099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexxvOES(
71119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)coords
71129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
71139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
71159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
71169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
71179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
71189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
71192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
71202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
71212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
71229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
71239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexxvOES ( const GLfixed *coords ) */
71259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
71269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexxvOES__Ljava_nio_IntBuffer_2
71279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
71282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
71292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
71302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
71319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
713217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
71339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
71349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *coords = (GLfixed *) 0;
71359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
713617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    coords = (GLfixed *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset);
71379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
71382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
71392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
71402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < 5 < needed";
71419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
71429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
714317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (coords == NULL) {
714417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
714517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        coords = (GLfixed *) (_coordsBase + _bufferOffset);
714617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
71479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexxvOES(
71489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)coords
71499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
71509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
71529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
71539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
71549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
71552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
71562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
71572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
71589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
71599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadPaletteFromModelViewMatrixOES ( void ) */
71619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
71629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadPaletteFromModelViewMatrixOES__
71639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
7164be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glLoadPaletteFromModelViewMatrixOES();
71659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
71669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
71689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7169be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I
7170be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
7171be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jarray _array = (jarray) 0;
717217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
7173be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jint _remaining;
7174be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
7175be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich
7176be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (pointer_buf) {
7177be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
7178be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        if ( ! pointer ) {
7179be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich            return;
7180be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        }
7181be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
7182be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glMatrixIndexPointerOESBounds(
7183be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLint)size,
7184be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLenum)type,
7185be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)stride,
7186be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLvoid *)pointer,
7187be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)remaining
7188be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
71899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
71909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
71929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
71939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMatrixIndexPointerOES__IIII
71949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
7195be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glMatrixIndexPointerOES(
7196be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLint)size,
7197be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLenum)type,
7198be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)stride,
7199be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (const GLvoid *)offset
7200be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
72019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
72029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
72049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7205be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I
7206be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
7207be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jarray _array = (jarray) 0;
720817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
7209be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jint _remaining;
7210be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
7211be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich
7212be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (pointer_buf) {
7213be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
7214be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        if ( ! pointer ) {
7215be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich            return;
7216be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        }
7217be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
7218be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glWeightPointerOESBounds(
7219be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLint)size,
7220be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLenum)type,
7221be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)stride,
7222be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLvoid *)pointer,
7223be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)remaining
7224be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
72259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
72269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
72289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
72299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glWeightPointerOES__IIII
72309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
7231be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glWeightPointerOES(
7232be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLint)size,
7233be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLenum)type,
7234be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)stride,
7235be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (const GLvoid *)offset
7236be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
72379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
72389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindFramebufferOES ( GLint target, GLint framebuffer ) */
72409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
72419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindFramebufferOES__II
72429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint framebuffer) {
72438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
724424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
72458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glBindFramebufferOES");
72468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
72478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glBindFramebufferOES(
72498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
72508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)framebuffer
72518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
72529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
72539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindRenderbufferOES ( GLint target, GLint renderbuffer ) */
72559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
72569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindRenderbufferOES__II
72579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint renderbuffer) {
72588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
725924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
72608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glBindRenderbufferOES");
72618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
72628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glBindRenderbufferOES(
72648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
72658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)renderbuffer
72668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
72679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
72689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendEquation ( GLint mode ) */
72709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
72719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendEquation__I
72729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
72738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_blend_subtractID)) {
727424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
72758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glBlendEquation");
72768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
72778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glBlendEquation(
72798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)mode
72808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
72819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
72829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendEquationSeparate ( GLint modeRGB, GLint modeAlpha ) */
72849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
72859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendEquationSeparate__II
72869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint modeRGB, jint modeAlpha) {
72878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_blend_equation_separateID)) {
728824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
72898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glBlendEquationSeparate");
72908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
72918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glBlendEquationSeparate(
72938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)modeRGB,
72948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)modeAlpha
72958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
72969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
72979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendFuncSeparate ( GLint srcRGB, GLint dstRGB, GLint srcAlpha, GLint dstAlpha ) */
72999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
73009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendFuncSeparate__IIII
73019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) {
73028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_blend_equation_separateID)) {
730324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
73048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glBlendFuncSeparate");
73058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
73068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
73078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glBlendFuncSeparate(
73088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)srcRGB,
73098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)dstRGB,
73108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)srcAlpha,
73118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)dstAlpha
73128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
73139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
73149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
73159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLint glCheckFramebufferStatusOES ( GLint target ) */
73169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
73179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCheckFramebufferStatusOES__I
73189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target) {
73198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
732024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
73218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glCheckFramebufferStatusOES");
73222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    return 0;
73238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
73248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint _returnValue = 0;
73258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _returnValue = glCheckFramebufferStatusOES(
73268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target
73278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
73288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    return _returnValue;
73299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
73309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
73318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glDeleteFramebuffersOES ( GLint n, GLuint *framebuffers ) */
73329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
73339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteFramebuffersOES__I_3II
73349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
73358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
733624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
73378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glDeleteFramebuffersOES");
73388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
73398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
73408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
73412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
73422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
73438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers_base = (GLuint *) 0;
73448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
73458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers = (GLuint *) 0;
73468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
73478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!framebuffers_ref) {
73488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
73492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
73502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "framebuffers == null";
73518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
73528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
73538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
73548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
73552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
73562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
73578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
73588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
73598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
73608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
73618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
73622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
73632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
73648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
73658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
73668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    framebuffers_base = (GLuint *)
73678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0);
73688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    framebuffers = framebuffers_base + offset;
73698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
73708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glDeleteFramebuffersOES(
73718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
73728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)framebuffers
73738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
73748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
73758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
73768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (framebuffers_base) {
73778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base,
73788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
73798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
73802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
73812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
73822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
73839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
73849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
73858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glDeleteFramebuffersOES ( GLint n, GLuint *framebuffers ) */
73869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
73879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2
73889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
73898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
739024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
73918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glDeleteFramebuffersOES");
73928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
73938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
73948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
73952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
73962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
73978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
739817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
73998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
74008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers = (GLuint *) 0;
74018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
740217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining, &_bufferOffset);
74038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
74048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
74052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
74062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
74078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
74088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
740917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (framebuffers == NULL) {
741017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _framebuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
741117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset);
741217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
74138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glDeleteFramebuffersOES(
74148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
74158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)framebuffers
74168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
74178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
74188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
74198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
74208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, framebuffers, _exception ? JNI_FALSE : JNI_TRUE);
74218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
74222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
74232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
74242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
74259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
74269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
74278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glDeleteRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
74289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
74299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteRenderbuffersOES__I_3II
74309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
74318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
743224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
74338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glDeleteRenderbuffersOES");
74348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
74358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
74368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
74372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
74382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
74398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers_base = (GLuint *) 0;
74408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
74418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers = (GLuint *) 0;
74428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
74438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!renderbuffers_ref) {
74448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
74452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
74462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "renderbuffers == null";
74478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
74488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
74498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
74508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
74512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
74522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
74538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
74548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
74558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
74568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
74578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
74582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
74592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
74608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
74618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
74628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    renderbuffers_base = (GLuint *)
74638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0);
74648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    renderbuffers = renderbuffers_base + offset;
74658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
74668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glDeleteRenderbuffersOES(
74678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
74688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)renderbuffers
74698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
74708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
74718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
74728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (renderbuffers_base) {
74738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base,
74748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
74758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
74762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
74772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
74782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
74799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
74809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
74818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glDeleteRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
74829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
74839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2
74849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
74858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
748624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
74878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glDeleteRenderbuffersOES");
74888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
74898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
74908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
74912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
74922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
74938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
749417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
74958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
74968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers = (GLuint *) 0;
74978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
749817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining, &_bufferOffset);
74998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
75008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
75012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
75022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
75038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
75048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
750517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (renderbuffers == NULL) {
750617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _renderbuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
750717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset);
750817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
75098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glDeleteRenderbuffersOES(
75108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
75118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)renderbuffers
75128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
75138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
75148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
75158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
75168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, renderbuffers, _exception ? JNI_FALSE : JNI_TRUE);
75178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
75182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
75192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
75202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
75219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
75229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
75239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFramebufferRenderbufferOES ( GLint target, GLint attachment, GLint renderbuffertarget, GLint renderbuffer ) */
75249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
75259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFramebufferRenderbufferOES__IIII
75269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer) {
75278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
752824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
75298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glFramebufferRenderbufferOES");
75308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
75318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
75328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glFramebufferRenderbufferOES(
75338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
75348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)attachment,
75358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)renderbuffertarget,
75368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)renderbuffer
75378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
75389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
75399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
75409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFramebufferTexture2DOES ( GLint target, GLint attachment, GLint textarget, GLint texture, GLint level ) */
75419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
75429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFramebufferTexture2DOES__IIIII
75439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint textarget, jint texture, jint level) {
75448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
754524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
75468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glFramebufferTexture2DOES");
75478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
75488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
75498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glFramebufferTexture2DOES(
75508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
75518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)attachment,
75528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)textarget,
75538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)texture,
75548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)level
75558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
75569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
75579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
75589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenerateMipmapOES ( GLint target ) */
75599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
75609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenerateMipmapOES__I
75619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target) {
75628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
756324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
75648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGenerateMipmapOES");
75658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
75668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
75678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGenerateMipmapOES(
75688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target
75698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
75709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
75719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
75728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGenFramebuffersOES ( GLint n, GLuint *framebuffers ) */
75739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
75749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenFramebuffersOES__I_3II
75759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
75768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
757724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
75788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGenFramebuffersOES");
75798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
75808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
75818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
75822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
75832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
75848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers_base = (GLuint *) 0;
75858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
75868a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers = (GLuint *) 0;
75878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
75888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!framebuffers_ref) {
75898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
75902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
75912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "framebuffers == null";
75928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
75938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
75948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
75958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
75962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
75972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
75988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
75998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
76008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
76018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
76028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
76032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
76042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
76058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
76068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
76078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    framebuffers_base = (GLuint *)
76088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0);
76098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    framebuffers = framebuffers_base + offset;
76108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
76118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGenFramebuffersOES(
76128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
76138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)framebuffers
76148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
76158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
76168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
76178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (framebuffers_base) {
76188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base,
76198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
76208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
76212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
76222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
76232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
76249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
76259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
76268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGenFramebuffersOES ( GLint n, GLuint *framebuffers ) */
76279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
76289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenFramebuffersOES__ILjava_nio_IntBuffer_2
76299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
76308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
763124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
76328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGenFramebuffersOES");
76338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
76348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
76358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
76362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
76372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
76388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
763917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
76408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
76418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers = (GLuint *) 0;
76428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
764317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining, &_bufferOffset);
76448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
76458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
76462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
76472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
76488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
76498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
765017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (framebuffers == NULL) {
765117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _framebuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
765217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset);
765317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
76548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGenFramebuffersOES(
76558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
76568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)framebuffers
76578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
76588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
76598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
76608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
76618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, framebuffers, _exception ? JNI_FALSE : JNI_TRUE);
76628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
76632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
76642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
76652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
76669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
76679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
76688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGenRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
76699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
76709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenRenderbuffersOES__I_3II
76719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
76728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
767324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
76748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGenRenderbuffersOES");
76758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
76768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
76778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
76782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
76792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
76808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers_base = (GLuint *) 0;
76818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
76828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers = (GLuint *) 0;
76838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
76848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!renderbuffers_ref) {
76858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
76862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
76872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "renderbuffers == null";
76888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
76898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
76908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
76918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
76922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
76932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
76948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
76958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
76968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
76978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
76988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
76992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
77002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
77018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
77028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
77038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    renderbuffers_base = (GLuint *)
77048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0);
77058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    renderbuffers = renderbuffers_base + offset;
77068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
77078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGenRenderbuffersOES(
77088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
77098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)renderbuffers
77108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
77118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
77128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
77138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (renderbuffers_base) {
77148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base,
77158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
77168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
77172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
77182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
77192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
77209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
77219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
77228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGenRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
77239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
77249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2
77259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
77268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
772724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
77288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGenRenderbuffersOES");
77298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
77308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
77318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
77322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
77332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
77348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
773517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
77368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
77378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers = (GLuint *) 0;
77388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
773917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining, &_bufferOffset);
77408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
77418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
77422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
77432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
77448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
77458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
774617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (renderbuffers == NULL) {
774717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _renderbuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
774817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset);
774917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
77508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGenRenderbuffersOES(
77518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
77528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)renderbuffers
77538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
77548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
77558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
77568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
77578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, renderbuffers, _exception ? JNI_FALSE : JNI_TRUE);
77588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
77592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
77602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
77612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
77629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
77639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
77649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFramebufferAttachmentParameterivOES ( GLint target, GLint attachment, GLint pname, GLint *params ) */
77659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
77669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFramebufferAttachmentParameterivOES__III_3II
77679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jintArray params_ref, jint offset) {
77688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
776924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
77708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetFramebufferAttachmentParameterivOES");
77718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
77728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
77738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
77742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
77752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
77768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
77778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
77788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
77799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
77808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
77818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
77822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
77832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
77848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
77858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
77868a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
77878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
77882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
77892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
77908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
77918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
77928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
77938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
77948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
77958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
77969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
77978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetFramebufferAttachmentParameterivOES(
77988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
77998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)attachment,
78008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
78018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
78028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
78038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
78048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
78058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
78068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
78078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
78088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
78092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
78102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
78112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
78128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
78138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
78148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGetFramebufferAttachmentParameterivOES ( GLint target, GLint attachment, GLint pname, GLint *params ) */
78158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic void
78168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichandroid_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2
78178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) {
78188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
781924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
78208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetFramebufferAttachmentParameterivOES");
78218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
78228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
78238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
782417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
78258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
78268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
78278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
782817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
782917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
783017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
783117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
783217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
78338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetFramebufferAttachmentParameterivOES(
78348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
78358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)attachment,
78368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
78378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
78388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
78398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
78402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
78418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
78428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
78438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
78448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGetRenderbufferParameterivOES ( GLint target, GLint pname, GLint *params ) */
78459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
78469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetRenderbufferParameterivOES__II_3II
78479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
78488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
784924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
78508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetRenderbufferParameterivOES");
78518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
78528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
78538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
78542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
78552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
78568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
78578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
78588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
78598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
78608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
78618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
78622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
78632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
78648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
78658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
78668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
78678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
78682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
78692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
78708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
78718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
78728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
78738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
78748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
78758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
78768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
78778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetRenderbufferParameterivOES(
78788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
78798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
78808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
78818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
78828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
78838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
78848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
78858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
78868a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
78878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
78882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
78892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
78902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
78919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
78929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
78939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetRenderbufferParameterivOES ( GLint target, GLint pname, GLint *params ) */
78949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
78959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2
78969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
78978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
789824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
78998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetRenderbufferParameterivOES");
79008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
79018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
79028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
790317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
79048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
79058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
79068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
790717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
790817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
790917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
791017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
791117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
79128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetRenderbufferParameterivOES(
79138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
79148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
79158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
79168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
79178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
79182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
79198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
79209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
79219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
79229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
79239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
79249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenfv__II_3FI
79259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
79268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
792724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
79288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGenfv");
79298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
79308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
79318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
79322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
79332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
79348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params_base = (GLfloat *) 0;
79358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
79368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params = (GLfloat *) 0;
79378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
79388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
79398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
79402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
79412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
79428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
79438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
79448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
79458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
79462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
79472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
79488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
79498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
79508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
79518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLfloat *)
79528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
79538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
79548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
79558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGenfv(
79568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
79578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
79588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLfloat *)params
79598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
79608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
79618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
79628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
79638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
79648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
79658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
79662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
79672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
79682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
79699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
79709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
79719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
79729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
79739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenfv__IILjava_nio_FloatBuffer_2
79749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
79758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
797624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
79778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGenfv");
79788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
79798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
79808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
798117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
79828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
79838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params = (GLfloat *) 0;
79848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
798517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
798617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
798717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
798817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
798917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
79908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGenfv(
79918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
79928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
79938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLfloat *)params
79948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
79958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
79962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
79978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
79989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
79999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
80009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGeniv ( GLint coord, GLint pname, GLint *params ) */
80019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
80029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGeniv__II_3II
80039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
80048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
800524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
80068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGeniv");
80078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
80088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
80098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
80102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
80112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
80128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
80138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
80148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
80158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
80168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
80178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
80182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
80192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
80208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
80218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
80228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
80238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
80242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
80252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
80268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
80278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
80288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
80298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
80308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
80318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
80328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
80338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGeniv(
80348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
80358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
80368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
80378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
80388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
80398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
80408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
80418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
80428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
80438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
80442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
80452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
80462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
80479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
80489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
80499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGeniv ( GLint coord, GLint pname, GLint *params ) */
80509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
80519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGeniv__IILjava_nio_IntBuffer_2
80529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
80538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
805424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
80558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGeniv");
80568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
80578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
80588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
805917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
80608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
80618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
80628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
806317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
806417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
806517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
806617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
806717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
80688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGeniv(
80698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
80708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
80718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
80728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
80738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
80742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
80758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
80769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
80779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
80789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenxv ( GLint coord, GLint pname, GLint *params ) */
80799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
80809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenxv__II_3II
80819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
80828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
808324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
80848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGenxv");
80858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
80868a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
80878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
80882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
80892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
80908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
80918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
80928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
80938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
80948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
80958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
80962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
80972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
80988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
80998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
81008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
81018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
81022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
81032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
81048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
81058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
81068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
81078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
81088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
81098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
81108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
81118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGenxv(
81128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
81138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
81148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
81158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
81168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
81178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
81188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
81198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
81208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
81218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
81222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
81232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
81242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
81259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
81269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
81279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenxv ( GLint coord, GLint pname, GLint *params ) */
81289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
81299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenxv__IILjava_nio_IntBuffer_2
81309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
81318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
813224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
81338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGenxv");
81348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
81358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
81368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
813717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
81388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
81398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
81408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
814117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
814217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
814317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
814417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
814517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
81468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGenxv(
81478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
81488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
81498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
81508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
81518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
81522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
81538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
81549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
81559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
81569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsFramebufferOES ( GLint framebuffer ) */
81579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
81589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsFramebufferOES__I
81599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint framebuffer) {
81608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
816124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
81628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glIsFramebufferOES");
81632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    return JNI_FALSE;
81648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
81658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLboolean _returnValue = JNI_FALSE;
81668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _returnValue = glIsFramebufferOES(
81678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)framebuffer
81688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
81698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    return _returnValue;
81709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
81719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
81729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsRenderbufferOES ( GLint renderbuffer ) */
81739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
81749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsRenderbufferOES__I
81759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint renderbuffer) {
81768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
817724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
81788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glIsRenderbufferOES");
81792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    return JNI_FALSE;
81808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
81818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLboolean _returnValue = JNI_FALSE;
81828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _returnValue = glIsRenderbufferOES(
81838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)renderbuffer
81848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
81858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    return _returnValue;
81869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
81879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
81889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glRenderbufferStorageOES ( GLint target, GLint internalformat, GLint width, GLint height ) */
81899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
81909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glRenderbufferStorageOES__IIII
81919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint width, jint height) {
81928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
819324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
81948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glRenderbufferStorageOES");
81958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
81968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
81978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glRenderbufferStorageOES(
81988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
81998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)internalformat,
82008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)width,
82018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)height
82028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
82039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
82049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
82059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenf ( GLint coord, GLint pname, GLfloat param ) */
82069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
82079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenf__IIF
82089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloat param) {
82098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
821024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
82118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenf");
82128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
82138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
82148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenf(
82158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
82168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
82178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLfloat)param
82188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
82199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
82209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
82219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
82229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
82239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenfv__II_3FI
82249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
82258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
822624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
82278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenfv");
82288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
82298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
82308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
82312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
82322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
82338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params_base = (GLfloat *) 0;
82348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
82358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params = (GLfloat *) 0;
82368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
82378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
82388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
82392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
82402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
82418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
82428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
82438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
82448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
82452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
82462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
82478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
82488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
82498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
82508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLfloat *)
82518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
82528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
82538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
82548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenfv(
82558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
82568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
82578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLfloat *)params
82588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
82598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
82608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
82618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
82628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
82638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
82648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
82652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
82662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
82672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
82689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
82699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
82709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
82719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
82729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenfv__IILjava_nio_FloatBuffer_2
82739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
82748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
827524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
82768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenfv");
82778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
82788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
82798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
828017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
82818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
82828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params = (GLfloat *) 0;
82838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
828417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
828517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
828617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
828717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
828817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
82898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenfv(
82908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
82918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
82928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLfloat *)params
82938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
82948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
82952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
82968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
82979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
82989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
82999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGeni ( GLint coord, GLint pname, GLint param ) */
83009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
83019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGeni__III
83029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
83038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
830424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
83058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGeni");
83068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
83078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
83088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGeni(
83098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
83108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
83118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)param
83128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
83139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
83149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
83159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGeniv ( GLint coord, GLint pname, GLint *params ) */
83169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
83179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGeniv__II_3II
83189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
83198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
832024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
83218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGeniv");
83228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
83238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
83248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
83252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
83262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
83278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
83288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
83298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
83308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
83318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
83328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
83332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
83342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
83358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
83368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
83378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
83388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
83392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
83402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
83418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
83428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
83438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
83448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
83458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
83468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
83478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
83488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGeniv(
83498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
83508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
83518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
83528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
83538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
83548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
83558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
83568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
83578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
83588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
83592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
83602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
83612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
83629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
83639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
83649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGeniv ( GLint coord, GLint pname, GLint *params ) */
83659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
83669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGeniv__IILjava_nio_IntBuffer_2
83679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
83688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
836924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
83708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGeniv");
83718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
83728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
83738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
837417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
83758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
83768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
83778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
837817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
837917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
838017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
838117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
838217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
83838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGeniv(
83848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
83858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
83868a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
83878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
83888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
83892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
83908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
83919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
83929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
83939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenx ( GLint coord, GLint pname, GLint param ) */
83949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
83959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenx__III
83969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
83978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
839824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
83998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenx");
84008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
84018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
84028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenx(
84038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
84048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
84058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)param
84068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
84079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
84089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
84099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenxv ( GLint coord, GLint pname, GLint *params ) */
84109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
84119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenxv__II_3II
84129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
84138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
841424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
84158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenxv");
84168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
84178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
84188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
84192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
84202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
84218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
84228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
84238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
84248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
84258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
84268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
84272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
84282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
84298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
84308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
84318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
84328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
84332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
84342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
84358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
84368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
84378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
84388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
84398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
84408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
84418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
84428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenxv(
84438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
84448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
84458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
84468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
84478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
84488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
84498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
84508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
84518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
84528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
84532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
84542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
84552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
84569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
84579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
84589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenxv ( GLint coord, GLint pname, GLint *params ) */
84599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
84609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenxv__IILjava_nio_IntBuffer_2
84619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
84628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
846324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
84648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenxv");
84658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
84668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
84678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
846817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
84698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
84708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
84718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
847217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
847317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
847417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
847517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
847617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
84778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenxv(
84788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
84798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
84808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
84818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
84828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
84832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, params, JNI_TRUE);
84848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
84859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
84869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
84879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic const char *classPathName = "com/google/android/gles_jni/GLImpl";
84889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
84899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic JNINativeMethod methods[] = {
84909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"_nativeClassInit", "()V", (void*)nativeClassInit },
84919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I },
84929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF },
84939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II },
84949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindTexture", "(II)V", (void *) android_glBindTexture__II },
84959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II },
84969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClear", "(I)V", (void *) android_glClear__I },
84979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF },
84989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII },
84999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F },
85009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I },
85019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearStencil", "(I)V", (void *) android_glClearStencil__I },
85029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I },
85039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF },
85049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII },
85059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ },
85069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I },
85079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 },
85089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
85099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII },
85109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII },
85119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCullFace", "(I)V", (void *) android_glCullFace__I },
85129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II },
85139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 },
85149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I },
85159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z },
85169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF },
85179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II },
85189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDisable", "(I)V", (void *) android_glDisable__I },
85199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I },
85209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III },
85219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 },
85229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glEnable", "(I)V", (void *) android_glEnable__I },
85239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I },
85249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFinish", "()V", (void *) android_glFinish__ },
85259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFlush", "()V", (void *) android_glFlush__ },
85269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogf", "(IF)V", (void *) android_glFogf__IF },
85279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI },
85289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 },
85299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogx", "(II)V", (void *) android_glFogx__II },
85309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II },
85319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 },
85329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFrontFace", "(I)V", (void *) android_glFrontFace__I },
85339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF },
85349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII },
85359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II },
85369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 },
85379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetError", "()I", (void *) android_glGetError__ },
85389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II },
85399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 },
85409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"_glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },
85419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glHint", "(II)V", (void *) android_glHint__II },
85429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF },
85439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI },
85449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 },
85459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelx", "(II)V", (void *) android_glLightModelx__II },
85469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II },
85479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 },
85489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightf", "(IIF)V", (void *) android_glLightf__IIF },
85499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI },
85509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 },
85519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightx", "(III)V", (void *) android_glLightx__III },
85529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II },
85539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 },
85549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLineWidth", "(F)V", (void *) android_glLineWidth__F },
85559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I },
85569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ },
85579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI },
85589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 },
85599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II },
85609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 },
85619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLogicOp", "(I)V", (void *) android_glLogicOp__I },
85629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF },
85639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI },
85649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 },
85659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialx", "(III)V", (void *) android_glMaterialx__III },
85669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II },
85679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 },
85689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I },
85699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI },
85709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 },
85719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II },
85729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 },
85739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF },
85749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII },
85759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF },
85769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormal3x", "(III)V", (void *) android_glNormal3x__III },
85779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I },
85789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF },
85799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII },
85809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II },
85819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointSize", "(F)V", (void *) android_glPointSize__F },
85829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointSizex", "(I)V", (void *) android_glPointSizex__I },
85839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF },
85849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II },
85859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPopMatrix", "()V", (void *) android_glPopMatrix__ },
85869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPushMatrix", "()V", (void *) android_glPushMatrix__ },
85879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 },
85889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF },
85899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII },
85909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ },
85919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ },
85929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glScalef", "(FFF)V", (void *) android_glScalef__FFF },
85939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glScalex", "(III)V", (void *) android_glScalex__III },
85949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glScissor", "(IIII)V", (void *) android_glScissor__IIII },
85959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glShadeModel", "(I)V", (void *) android_glShadeModel__I },
85969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III },
85979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glStencilMask", "(I)V", (void *) android_glStencilMask__I },
85989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glStencilOp", "(III)V", (void *) android_glStencilOp__III },
85999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I },
86009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF },
86019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI },
86029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 },
86039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III },
86049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II },
86059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 },
86069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 },
86079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF },
86089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III },
86099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
86109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF },
86119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTranslatex", "(III)V", (void *) android_glTranslatex__III },
86129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I },
86139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glViewport", "(IIII)V", (void *) android_glViewport__IIII },
86149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glQueryMatrixxOES", "([II[II)I", (void *) android_glQueryMatrixxOES___3II_3II },
86159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glQueryMatrixxOES", "(Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)I", (void *) android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 },
86169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II },
86179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I },
86189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 },
86199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanef", "(I[FI)V", (void *) android_glClipPlanef__I_3FI },
86209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanef__ILjava_nio_FloatBuffer_2 },
86219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanex", "(I[II)V", (void *) android_glClipPlanex__I_3II },
86229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanex__ILjava_nio_IntBuffer_2 },
86239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColor4ub", "(BBBB)V", (void *) android_glColor4ub__BBBB },
86249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColorPointer", "(IIII)V", (void *) android_glColorPointer__IIII },
86259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II },
86269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 },
86279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII },
86289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II },
86299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 },
86309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI },
86319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 },
86329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II },
86339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 },
86349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanef", "(I[FI)V", (void *) android_glGetClipPlanef__I_3FI },
86359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 },
86369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanex", "(I[II)V", (void *) android_glGetClipPlanex__I_3II },
86379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanex__ILjava_nio_IntBuffer_2 },
86389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFixedv", "(I[II)V", (void *) android_glGetFixedv__I_3II },
86399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFixedv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedv__ILjava_nio_IntBuffer_2 },
86409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI },
86419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 },
86429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightfv", "(II[FI)V", (void *) android_glGetLightfv__II_3FI },
86439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetLightfv__IILjava_nio_FloatBuffer_2 },
86449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightxv", "(II[II)V", (void *) android_glGetLightxv__II_3II },
86459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxv__IILjava_nio_IntBuffer_2 },
86469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialfv", "(II[FI)V", (void *) android_glGetMaterialfv__II_3FI },
86479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 },
86489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialxv", "(II[II)V", (void *) android_glGetMaterialxv__II_3II },
86499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxv__IILjava_nio_IntBuffer_2 },
86509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnviv", "(II[II)V", (void *) android_glGetTexEnviv__II_3II },
86519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnviv__IILjava_nio_IntBuffer_2 },
86529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnvxv", "(II[II)V", (void *) android_glGetTexEnvxv__II_3II },
86539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 },
86549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI },
86559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 },
86569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II },
86579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 },
86589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterxv", "(II[II)V", (void *) android_glGetTexParameterxv__II_3II },
86599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 },
86609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I },
86619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I },
86629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsTexture", "(I)Z", (void *) android_glIsTexture__I },
86639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormalPointer", "(III)V", (void *) android_glNormalPointer__III },
86649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterf", "(IF)V", (void *) android_glPointParameterf__IF },
86659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterfv", "(I[FI)V", (void *) android_glPointParameterfv__I_3FI },
86669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glPointParameterfv__ILjava_nio_FloatBuffer_2 },
86679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterx", "(II)V", (void *) android_glPointParameterx__II },
86689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterxv", "(I[II)V", (void *) android_glPointParameterxv__I_3II },
86699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxv__ILjava_nio_IntBuffer_2 },
8670be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glPointSizePointerOESBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I },
86719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexCoordPointer", "(IIII)V", (void *) android_glTexCoordPointer__IIII },
86729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvi", "(III)V", (void *) android_glTexEnvi__III },
86739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnviv", "(II[II)V", (void *) android_glTexEnviv__II_3II },
86749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnviv__IILjava_nio_IntBuffer_2 },
86759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI },
86769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 },
86779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III },
86789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II },
86799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 },
86809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterxv", "(II[II)V", (void *) android_glTexParameterxv__II_3II },
86819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxv__IILjava_nio_IntBuffer_2 },
86829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glVertexPointer", "(IIII)V", (void *) android_glVertexPointer__IIII },
86839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCurrentPaletteMatrixOES", "(I)V", (void *) android_glCurrentPaletteMatrixOES__I },
86849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexfOES", "(FFFFF)V", (void *) android_glDrawTexfOES__FFFFF },
86859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexfvOES", "([FI)V", (void *) android_glDrawTexfvOES___3FI },
86869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexfvOES", "(Ljava/nio/FloatBuffer;)V", (void *) android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 },
86879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexiOES", "(IIIII)V", (void *) android_glDrawTexiOES__IIIII },
86889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexivOES", "([II)V", (void *) android_glDrawTexivOES___3II },
86899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexivOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexivOES__Ljava_nio_IntBuffer_2 },
86909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexsOES", "(SSSSS)V", (void *) android_glDrawTexsOES__SSSSS },
86919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexsvOES", "([SI)V", (void *) android_glDrawTexsvOES___3SI },
86929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexsvOES", "(Ljava/nio/ShortBuffer;)V", (void *) android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 },
86939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexxOES", "(IIIII)V", (void *) android_glDrawTexxOES__IIIII },
86949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexxvOES", "([II)V", (void *) android_glDrawTexxvOES___3II },
86959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexxvOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 },
86969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadPaletteFromModelViewMatrixOES", "()V", (void *) android_glLoadPaletteFromModelViewMatrixOES__ },
8697be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glMatrixIndexPointerOESBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I },
86989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMatrixIndexPointerOES", "(IIII)V", (void *) android_glMatrixIndexPointerOES__IIII },
8699be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glWeightPointerOESBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I },
87009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glWeightPointerOES", "(IIII)V", (void *) android_glWeightPointerOES__IIII },
87019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindFramebufferOES", "(II)V", (void *) android_glBindFramebufferOES__II },
87029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindRenderbufferOES", "(II)V", (void *) android_glBindRenderbufferOES__II },
87039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendEquation", "(I)V", (void *) android_glBlendEquation__I },
87049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendEquationSeparate", "(II)V", (void *) android_glBlendEquationSeparate__II },
87059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendFuncSeparate", "(IIII)V", (void *) android_glBlendFuncSeparate__IIII },
87069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCheckFramebufferStatusOES", "(I)I", (void *) android_glCheckFramebufferStatusOES__I },
87079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteFramebuffersOES", "(I[II)V", (void *) android_glDeleteFramebuffersOES__I_3II },
87089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2 },
87099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteRenderbuffersOES", "(I[II)V", (void *) android_glDeleteRenderbuffersOES__I_3II },
87109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2 },
87119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFramebufferRenderbufferOES", "(IIII)V", (void *) android_glFramebufferRenderbufferOES__IIII },
87129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFramebufferTexture2DOES", "(IIIII)V", (void *) android_glFramebufferTexture2DOES__IIIII },
87139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenerateMipmapOES", "(I)V", (void *) android_glGenerateMipmapOES__I },
87149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenFramebuffersOES", "(I[II)V", (void *) android_glGenFramebuffersOES__I_3II },
87159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenFramebuffersOES__ILjava_nio_IntBuffer_2 },
87169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenRenderbuffersOES", "(I[II)V", (void *) android_glGenRenderbuffersOES__I_3II },
87179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2 },
87189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFramebufferAttachmentParameterivOES", "(III[II)V", (void *) android_glGetFramebufferAttachmentParameterivOES__III_3II },
87199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFramebufferAttachmentParameterivOES", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 },
87209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetRenderbufferParameterivOES", "(II[II)V", (void *) android_glGetRenderbufferParameterivOES__II_3II },
87219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetRenderbufferParameterivOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 },
87229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenfv", "(II[FI)V", (void *) android_glGetTexGenfv__II_3FI },
87239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexGenfv__IILjava_nio_FloatBuffer_2 },
87249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGeniv", "(II[II)V", (void *) android_glGetTexGeniv__II_3II },
87259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGeniv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGeniv__IILjava_nio_IntBuffer_2 },
87269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenxv", "(II[II)V", (void *) android_glGetTexGenxv__II_3II },
87279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGenxv__IILjava_nio_IntBuffer_2 },
87289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsFramebufferOES", "(I)Z", (void *) android_glIsFramebufferOES__I },
87299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsRenderbufferOES", "(I)Z", (void *) android_glIsRenderbufferOES__I },
87309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glRenderbufferStorageOES", "(IIII)V", (void *) android_glRenderbufferStorageOES__IIII },
87319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenf", "(IIF)V", (void *) android_glTexGenf__IIF },
87329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenfv", "(II[FI)V", (void *) android_glTexGenfv__II_3FI },
87339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexGenfv__IILjava_nio_FloatBuffer_2 },
87349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGeni", "(III)V", (void *) android_glTexGeni__III },
87359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGeniv", "(II[II)V", (void *) android_glTexGeniv__II_3II },
87369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGeniv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGeniv__IILjava_nio_IntBuffer_2 },
87379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenx", "(III)V", (void *) android_glTexGenx__III },
87389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenxv", "(II[II)V", (void *) android_glTexGenxv__II_3II },
87399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGenxv__IILjava_nio_IntBuffer_2 },
87409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
87419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
87429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectint register_com_google_android_gles_jni_GLImpl(JNIEnv *_env)
87439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
87449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int err;
87459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
87469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return err;
87479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
8748