com_google_android_gles_jni_GLImpl.cpp revision 24ce5fb2cc09d0a14406e7b935f8648c5720d27e
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 *
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectgetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
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    jint offset;
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void *data;
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    position = _env->GetIntField(buffer, positionID);
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    limit = _env->GetIntField(buffer, limitID);
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    *remaining = (limit - position) << elementSizeShift;
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    pointer = _env->CallStaticLongMethod(nioAccessClass,
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getBasePointerID, buffer);
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (pointer != 0L) {
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        *array = NULL;
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return (void *) (jint) pointer;
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
13624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getBaseArrayID, buffer);
13991a27ae2fec23b420244258636d2370117e86f5eJack Palevich    if (*array == NULL) {
14091a27ae2fec23b420244258636d2370117e86f5eJack Palevich        return (void*) NULL;
14191a27ae2fec23b420244258636d2370117e86f5eJack Palevich    }
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    offset = _env->CallStaticIntMethod(nioAccessClass,
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getBaseArrayOffsetID, buffer);
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
14524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return (void *) ((char *) data + offset);
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ReleasePrimitiveArrayCritical(array, data,
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project					   commit ? 0 : JNI_ABORT);
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
15691a27ae2fec23b420244258636d2370117e86f5eJack Palevichextern "C" {
15791a27ae2fec23b420244258636d2370117e86f5eJack Palevichextern char*  __progname;
15891a27ae2fec23b420244258636d2370117e86f5eJack Palevich}
15991a27ae2fec23b420244258636d2370117e86f5eJack Palevich
16091a27ae2fec23b420244258636d2370117e86f5eJack Palevichstatic bool
16191a27ae2fec23b420244258636d2370117e86f5eJack PalevichallowIndirectBuffers(JNIEnv *_env) {
16291a27ae2fec23b420244258636d2370117e86f5eJack Palevich    static jint sIndirectBufferCompatability;
16391a27ae2fec23b420244258636d2370117e86f5eJack Palevich    if (sIndirectBufferCompatability == 0) {
16491a27ae2fec23b420244258636d2370117e86f5eJack Palevich        jobject appName = _env->NewStringUTF(::__progname);
16591a27ae2fec23b420244258636d2370117e86f5eJack Palevich        sIndirectBufferCompatability = _env->CallStaticBooleanMethod(G11ImplClass, allowIndirectBuffersID, appName) ? 2 : 1;
16691a27ae2fec23b420244258636d2370117e86f5eJack Palevich    }
16791a27ae2fec23b420244258636d2370117e86f5eJack Palevich    return sIndirectBufferCompatability == 2;
16891a27ae2fec23b420244258636d2370117e86f5eJack Palevich}
16991a27ae2fec23b420244258636d2370117e86f5eJack Palevich
17016e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevichstatic void *
17116e7972f0d986eebf846ea8feb50f4435a9c6970Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) {
17291a27ae2fec23b420244258636d2370117e86f5eJack Palevich    if (!buffer) {
17391a27ae2fec23b420244258636d2370117e86f5eJack Palevich        return NULL;
17491a27ae2fec23b420244258636d2370117e86f5eJack Palevich    }
17591a27ae2fec23b420244258636d2370117e86f5eJack Palevich    void* buf = _env->GetDirectBufferAddress(buffer);
17616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    if (buf) {
17716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        jint position = _env->GetIntField(buffer, positionID);
17816e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
17991a27ae2fec23b420244258636d2370117e86f5eJack Palevich        buf = ((char*) buf) + (position << elementSizeShift);
18016e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    } else {
18191a27ae2fec23b420244258636d2370117e86f5eJack Palevich        if (allowIndirectBuffers(_env)) {
18291a27ae2fec23b420244258636d2370117e86f5eJack Palevich            jarray array = 0;
18391a27ae2fec23b420244258636d2370117e86f5eJack Palevich            jint remaining;
18491a27ae2fec23b420244258636d2370117e86f5eJack Palevich            buf = getPointer(_env, buffer, &array, &remaining);
18591a27ae2fec23b420244258636d2370117e86f5eJack Palevich            if (array) {
18691a27ae2fec23b420244258636d2370117e86f5eJack Palevich                releasePointer(_env, array, buf, 0);
18791a27ae2fec23b420244258636d2370117e86f5eJack Palevich            }
18891a27ae2fec23b420244258636d2370117e86f5eJack Palevich        } else {
18924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes            jniThrowException(_env, "java/lang/IllegalArgumentException",
19024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes                              "Must use a native order direct Buffer");
19191a27ae2fec23b420244258636d2370117e86f5eJack Palevich        }
19216e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    }
19391a27ae2fec23b420244258636d2370117e86f5eJack Palevich    return buf;
19416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich}
19516e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich
196be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevichstatic int
197be509c9c7de5929d014dfe6d45e71cc8454ede0fJack PalevichgetNumCompressedTextureFormats() {
198be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    int numCompressedTextureFormats = 0;
199be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats);
200be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    return numCompressedTextureFormats;
201be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich}
202be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich
2038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich// Check if the extension at the head of pExtensions is pExtension. Note that pExtensions is
2048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich// terminated by either 0 or space, while pExtension is terminated by 0.
2058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
2068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic bool
2078a4de4be9ed522c704a45a44a265669e10a8f2ebJack PalevichextensionEqual(const GLubyte* pExtensions, const GLubyte* pExtension) {
2088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    while (true) {
2098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        char a = *pExtensions++;
2108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        char b = *pExtension++;
2118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        bool aEnd = a == '\0' || a == ' ';
2128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        bool bEnd = b == '\0';
2138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        if ( aEnd || bEnd) {
2148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return aEnd == bEnd;
2158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        }
2168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        if ( a != b ) {
2178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return false;
2188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        }
2198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
2208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
2218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
2228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic const GLubyte*
2238a4de4be9ed522c704a45a44a265669e10a8f2ebJack PalevichnextExtension(const GLubyte* pExtensions) {
2248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    while (true) {
2258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        char a = *pExtensions++;
2268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        if ( a == '\0') {
2278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return pExtensions-1;
2288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        } else if ( a == ' ') {
2298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return pExtensions;
2308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        }
2318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
2328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
23324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
2348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic bool
2358a4de4be9ed522c704a45a44a265669e10a8f2ebJack PalevichcheckForExtension(const GLubyte* pExtensions, const GLubyte* pExtension) {
2368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    for (;*pExtensions != '\0'; pExtensions = nextExtension(pExtensions)) {
2378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        if (extensionEqual(pExtensions, pExtension)) {
2388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return true;
2398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        }
2408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
2418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    return false;
2428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
2438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
2448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic bool
2458a4de4be9ed522c704a45a44a265669e10a8f2ebJack PalevichsupportsExtension(JNIEnv *_env, jobject impl, jfieldID fieldId) {
2468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!_env->GetBooleanField(impl, haveCheckedExtensionsID)) {
2478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->SetBooleanField(impl, haveCheckedExtensionsID, true);
2488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        const GLubyte* sExtensions = glGetString(GL_EXTENSIONS);
2498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->SetBooleanField(impl, have_OES_blend_equation_separateID,
2508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            checkForExtension(sExtensions, (const GLubyte*) "GL_OES_blend_equation_separate"));
2518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->SetBooleanField(impl, have_OES_blend_subtractID,
2528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            checkForExtension(sExtensions, (const GLubyte*) "GL_OES_blend_subtract"));
2538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->SetBooleanField(impl, have_OES_framebuffer_objectID,
2548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            checkForExtension(sExtensions, (const GLubyte*) "GL_OES_framebuffer_object"));
2558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->SetBooleanField(impl, have_OES_texture_cube_mapID,
2568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            checkForExtension(sExtensions, (const GLubyte*) "GL_OES_texture_cube_map"));
2578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
2588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    return _env->GetBooleanField(impl, fieldId);
2598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
2608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// --------------------------------------------------------------------------
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glActiveTexture ( GLenum texture ) */
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glActiveTexture__I
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint texture) {
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glActiveTexture(
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)texture
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glAlphaFunc ( GLenum func, GLclampf ref ) */
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glAlphaFunc__IF
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func, jfloat ref) {
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glAlphaFunc(
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func,
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)ref
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glAlphaFuncx__II
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func, jint ref) {
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glAlphaFuncx(
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func,
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)ref
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindTexture ( GLenum target, GLuint texture ) */
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindTexture__II
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint texture) {
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBindTexture(
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)texture
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendFunc__II
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) {
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBlendFunc(
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)sfactor,
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)dfactor
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClear ( GLbitfield mask ) */
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClear__I
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mask) {
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClear(
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLbitfield)mask
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearColor__FFFF
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearColor(
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)red,
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)green,
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)blue,
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)alpha
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearColorx__IIII
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearColorx(
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)red,
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)green,
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)blue,
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)alpha
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearDepthf ( GLclampf depth ) */
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearDepthf__F
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat depth) {
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearDepthf(
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)depth
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearDepthx ( GLclampx depth ) */
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearDepthx__I
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint depth) {
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearDepthx(
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)depth
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearStencil ( GLint s ) */
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearStencil__I
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint s) {
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearStencil(
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)s
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClientActiveTexture ( GLenum texture ) */
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClientActiveTexture__I
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint texture) {
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClientActiveTexture(
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)texture
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */
3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColor4f__FFFF
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColor4f(
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)red,
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)green,
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)blue,
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)alpha
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColor4x__IIII
3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColor4x(
3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)red,
3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)green,
3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)blue,
4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)alpha
4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */
4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColorMask__ZZZZ
4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) {
4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColorMask(
4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)red,
4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)green,
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)blue,
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)alpha
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColorPointerBounds__IIILjava_nio_Buffer_2I
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 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;
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCompressedTexImage2D(
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)internalformat,
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)border,
4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)imageSize,
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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 ) */
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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) {
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCompressedTexSubImage2D(
4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)xoffset,
4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)yoffset,
4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)imageSize,
4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCopyTexImage2D__IIIIIIII
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) {
4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCopyTexImage2D(
4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)internalformat,
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)border
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */
5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCopyTexSubImage2D__IIIIIIII
5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) {
5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCopyTexSubImage2D(
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)xoffset,
5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)yoffset,
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCullFace ( GLenum mode ) */
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCullFace__I
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCullFace(
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteTextures__I_3II
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures_base = (GLuint *) 0;
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!textures_ref) {
53824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "textures == null");
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
54224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(textures_ref) - offset;
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
54724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures_base = (GLuint *)
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures = textures_base + offset;
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteTextures(
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (textures_base) {
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteTextures__ILjava_nio_IntBuffer_2
5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining);
5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
57624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteTextures(
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, textures, JNI_FALSE);
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthFunc ( GLenum func ) */
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthFunc__I
5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func) {
5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthFunc(
5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func
5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthMask ( GLboolean flag ) */
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthMask__Z
6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jboolean flag) {
6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthMask(
6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)flag
6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */
6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthRangef__FF
6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthRangef(
6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)zNear,
6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)zFar
6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthRangex__II
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint zNear, jint zFar) {
6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthRangex(
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)zNear,
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)zFar
6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDisable ( GLenum cap ) */
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDisable__I
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint cap) {
6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDisable(
6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)cap
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDisableClientState ( GLenum array ) */
6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDisableClientState__I
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint array) {
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDisableClientState(
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)array
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawArrays__III
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) {
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawArrays(
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode,
6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)first,
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)count
6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawElements__IIILjava_nio_Buffer_2
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) {
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *indices = (GLvoid *) 0;
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining);
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < count) {
66724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/ArrayIndexOutOfBoundsException", "remaining() < count");
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawElements(
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode,
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)count,
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)indices
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, indices, JNI_FALSE);
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glEnable ( GLenum cap ) */
6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glEnable__I
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint cap) {
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glEnable(
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)cap
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glEnableClientState ( GLenum array ) */
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glEnableClientState__I
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint array) {
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glEnableClientState(
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)array
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFinish ( void ) */
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFinish__
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFinish();
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFlush ( void ) */
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFlush__
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFlush();
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogf ( GLenum pname, GLfloat param ) */
7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogf__IF
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogf(
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogfv ( GLenum pname, const GLfloat *params ) */
7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogfv__I_3FI
7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
73424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
73824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
76824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogfv(
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogfv ( GLenum pname, const GLfloat *params ) */
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogfv__ILjava_nio_FloatBuffer_2
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
82224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogfv(
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogx ( GLenum pname, GLfixed param ) */
8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogx__II
8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogx(
8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogxv ( GLenum pname, const GLfixed *params ) */
8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogxv__I_3II
8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
85524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
85924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
88924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogxv(
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogxv ( GLenum pname, const GLfixed *params ) */
9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogxv__ILjava_nio_IntBuffer_2
9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
94324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogxv(
9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFrontFace ( GLenum mode ) */
9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFrontFace__I
9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFrontFace(
9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFrustumf__FFFFFF
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFrustumf(
9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)left,
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)right,
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)bottom,
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)top,
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zNear,
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zFar
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFrustumx__IIIIII
9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFrustumx(
9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)left,
9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)right,
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)bottom,
9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)top,
9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zNear,
9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zFar
9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenTextures ( GLsizei n, GLuint *textures ) */
9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenTextures__I_3II
9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures_base = (GLuint *) 0;
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!textures_ref) {
10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
100524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "textures == null");
10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
101024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(textures_ref) - offset;
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
101624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures_base = (GLuint *)
10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures = textures_base + offset;
10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenTextures(
10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (textures_base) {
10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenTextures ( GLsizei n, GLuint *textures ) */
10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenTextures__ILjava_nio_IntBuffer_2
10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining);
10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
104724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenTextures(
10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE);
10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLenum glGetError ( void ) */
10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetError__
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLenum _returnValue;
10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glGetError();
10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetIntegerv ( GLenum pname, GLint *params ) */
10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetIntegerv__I_3II
10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
108124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
108624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_BITS)
10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_BITS:
10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_BITS)
10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_FUNC)
10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_FUNC:
10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_FUNC)
10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_REF)
10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_REF:
11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_REF)
11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLEND_DST)
11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLEND_DST:
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLEND_DST)
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLUE_BITS)
11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLUE_BITS:
11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLUE_BITS)
11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_BUFFER_BINDING:
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_SIZE)
11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_SIZE:
11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_SIZE)
11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_STRIDE)
11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_STRIDE:
11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_STRIDE)
11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_TYPE)
11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_TYPE:
11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_TYPE)
11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CULL_FACE)
11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CULL_FACE:
11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CULL_FACE)
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_BITS)
11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_BITS:
11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_BITS)
11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_CLEAR_VALUE)
11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_CLEAR_VALUE:
11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_CLEAR_VALUE)
11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_FUNC)
11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_FUNC:
11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_FUNC)
11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_WRITEMASK)
11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_WRITEMASK:
11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_WRITEMASK)
11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
11369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
11379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
11389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
11399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
11459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FRONT_FACE)
11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FRONT_FACE:
11489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FRONT_FACE)
11499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_GREEN_BITS)
11509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_GREEN_BITS:
11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_GREEN_BITS)
11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
11569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1158be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1159be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_COLOR_CONTROL:
1160be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1161be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
1162be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_LOCAL_VIEWER:
1163be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_SMOOTH_HINT)
11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_SMOOTH_HINT:
11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_SMOOTH_HINT)
11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_WIDTH)
11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_WIDTH:
11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_WIDTH)
11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LOGIC_OP_MODE)
11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LOGIC_OP_MODE:
11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LOGIC_OP_MODE)
11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_MODE)
11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_MODE:
11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_MODE)
11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_CLIP_PLANES)
11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_CLIP_PLANES:
11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_CLIP_PLANES)
11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_INDICES)
11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_INDICES:
11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_INDICES)
11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_VERTICES)
11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_VERTICES:
11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_VERTICES)
12009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_LIGHTS)
12019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_LIGHTS:
12029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_LIGHTS)
12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
12049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_MODELVIEW_STACK_DEPTH:
12059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
12069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PALETTE_MATRICES_OES)
12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PALETTE_MATRICES_OES:
12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PROJECTION_STACK_DEPTH:
12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_SIZE)
12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_SIZE:
12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_SIZE)
12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_STACK_DEPTH:
12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_UNITS)
12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_UNITS:
12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_UNITS)
12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VERTEX_UNITS_OES)
12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VERTEX_UNITS_OES:
12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VERTEX_UNITS_OES)
12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_STACK_DEPTH)
12259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_STACK_DEPTH:
12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_STACK_DEPTH)
12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
12289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_BUFFER_BINDING:
12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_STRIDE)
12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_STRIDE:
12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_STRIDE)
12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_TYPE)
12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_TYPE:
12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_TYPE)
12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
12379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
12389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
12399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PACK_ALIGNMENT)
12409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PACK_ALIGNMENT:
12419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PACK_ALIGNMENT)
12429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
12439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PERSPECTIVE_CORRECTION_HINT:
12449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
12459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE)
12469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE:
12479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE)
12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
12539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
12559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_TYPE_OES:
12569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
12579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SMOOTH_HINT)
12589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SMOOTH_HINT:
12599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SMOOTH_HINT)
12609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_FACTOR)
12619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_FACTOR:
12629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_FACTOR)
12639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_UNITS)
12649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_UNITS:
12659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_UNITS)
12669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_STACK_DEPTH)
12679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_STACK_DEPTH:
12689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_STACK_DEPTH)
12699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_RED_BITS)
12709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_RED_BITS:
12719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_RED_BITS)
12729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHADE_MODEL)
12739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHADE_MODEL:
12749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHADE_MODEL)
12759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_BITS)
12769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_BITS:
12779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_BITS)
12789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_CLEAR_VALUE)
12799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_CLEAR_VALUE:
12809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_CLEAR_VALUE)
12819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FAIL)
12829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FAIL:
12839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FAIL)
12849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FUNC)
12859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FUNC:
12869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FUNC)
12879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
12889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_FAIL:
12899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
12909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_PASS)
12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_PASS:
12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_REF)
12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_REF:
12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_REF)
12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_VALUE_MASK)
12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_VALUE_MASK:
12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_VALUE_MASK)
12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_WRITEMASK)
13009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_WRITEMASK:
13019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_WRITEMASK)
13029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SUBPIXEL_BITS)
13039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SUBPIXEL_BITS:
13049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SUBPIXEL_BITS)
13059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_BINDING_2D)
13069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_BINDING_2D:
13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_BINDING_2D)
13089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
13099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
13109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
13119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
13129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_SIZE:
13139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
13149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
13159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_STRIDE:
13169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
13179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
13189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_TYPE:
13199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_STACK_DEPTH)
13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_STACK_DEPTH:
13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_STACK_DEPTH)
13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_UNPACK_ALIGNMENT)
13249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_UNPACK_ALIGNMENT:
13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_UNPACK_ALIGNMENT)
13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_BUFFER_BINDING:
13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
13299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_SIZE)
13309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_SIZE:
13319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_SIZE)
13329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_STRIDE)
13339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_STRIDE:
13349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_STRIDE)
13359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_TYPE)
13369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_TYPE:
13379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_TYPE)
13389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
13399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
13409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
13419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
13429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_SIZE_OES:
13439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
13449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
13459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_STRIDE_OES:
13469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
13479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
13489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_TYPE_OES:
13499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
13509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
13519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
13529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_POINT_SIZE_RANGE)
13539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_POINT_SIZE_RANGE:
13549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
13559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
13569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_LINE_WIDTH_RANGE:
13579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
13589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_RANGE)
13599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_RANGE:
13609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_RANGE)
13619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VIEWPORT_DIMS)
13629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VIEWPORT_DIMS:
13639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VIEWPORT_DIMS)
13649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
13659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_LINE_WIDTH_RANGE:
13669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
13679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
13689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_POINT_SIZE_RANGE:
13699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
13709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 2;
13719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
13729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_CLEAR_VALUE)
13739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_CLEAR_VALUE:
13749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_CLEAR_VALUE)
13759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_WRITEMASK)
13769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_WRITEMASK:
13779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_WRITEMASK)
1378be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_FOG_COLOR)
1379be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_FOG_COLOR:
1380be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_FOG_COLOR)
1381be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
1382be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_AMBIENT:
1383be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
13849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SCISSOR_BOX)
13859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SCISSOR_BOX:
13869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SCISSOR_BOX)
13879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VIEWPORT)
13889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VIEWPORT:
13899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VIEWPORT)
13909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
13919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
13929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX)
13939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX:
13949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX)
13959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
13969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
13979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
13989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX)
13999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX:
14009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX)
14019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
14029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
14039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
14049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX)
14059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX:
14069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX)
14079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
14089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
14099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
14109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 16;
14119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
14129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
14139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMPRESSED_TEXTURE_FORMATS:
14149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1415be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich            _needed = getNumCompressedTextureFormats();
14169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
14179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
14189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
14199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
14209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
14219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
14229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
142324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
14249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
14259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
14269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
14279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
14289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
14299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetIntegerv(
14319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
14329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
14339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
14349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
14369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
14379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
14389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
14399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
14409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
14419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetIntegerv ( GLenum pname, GLint *params ) */
14439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
14449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetIntegerv__ILjava_nio_IntBuffer_2
14459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
14469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
14479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
14489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
14499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
14509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
14519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
14529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
14539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
14549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_BITS)
14559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_BITS:
14569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_BITS)
14579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_FUNC)
14589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_FUNC:
14599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_FUNC)
14609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_REF)
14619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_REF:
14629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_REF)
14639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLEND_DST)
14649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLEND_DST:
14659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLEND_DST)
14669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLUE_BITS)
14679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLUE_BITS:
14689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLUE_BITS)
14699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
14709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_BUFFER_BINDING:
14719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
14729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_SIZE)
14739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_SIZE:
14749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_SIZE)
14759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_STRIDE)
14769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_STRIDE:
14779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_STRIDE)
14789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_TYPE)
14799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_TYPE:
14809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_TYPE)
14819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CULL_FACE)
14829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CULL_FACE:
14839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CULL_FACE)
14849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_BITS)
14859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_BITS:
14869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_BITS)
14879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_CLEAR_VALUE)
14889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_CLEAR_VALUE:
14899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_CLEAR_VALUE)
14909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_FUNC)
14919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_FUNC:
14929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_FUNC)
14939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_WRITEMASK)
14949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_WRITEMASK:
14959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_WRITEMASK)
14969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
14979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
14989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
14999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
15009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
15019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
15029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
15039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
15049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
15059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
15069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
15079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
15089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FRONT_FACE)
15099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FRONT_FACE:
15109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FRONT_FACE)
15119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_GREEN_BITS)
15129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_GREEN_BITS:
15139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_GREEN_BITS)
15149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
15159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
15169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
15179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
15189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
15199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1520be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1521be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_COLOR_CONTROL:
1522be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1523be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
1524be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_LOCAL_VIEWER:
1525be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
15269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
15279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
15289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
15299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_SMOOTH_HINT)
15309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_SMOOTH_HINT:
15319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_SMOOTH_HINT)
15329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_WIDTH)
15339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_WIDTH:
15349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_WIDTH)
15359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LOGIC_OP_MODE)
15369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LOGIC_OP_MODE:
15379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LOGIC_OP_MODE)
15389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
15399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
15409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
15419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
15429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
15439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
15449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
15459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
15469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
15479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
15489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
15499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
15509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_MODE)
15519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_MODE:
15529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_MODE)
15539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_CLIP_PLANES)
15549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_CLIP_PLANES:
15559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_CLIP_PLANES)
15569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_INDICES)
15579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_INDICES:
15589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_INDICES)
15599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_VERTICES)
15609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_VERTICES:
15619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_VERTICES)
15629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_LIGHTS)
15639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_LIGHTS:
15649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_LIGHTS)
15659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
15669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_MODELVIEW_STACK_DEPTH:
15679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
15689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PALETTE_MATRICES_OES)
15699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PALETTE_MATRICES_OES:
15709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
15719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
15729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PROJECTION_STACK_DEPTH:
15739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
15749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_SIZE)
15759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_SIZE:
15769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_SIZE)
15779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
15789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_STACK_DEPTH:
15799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
15809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_UNITS)
15819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_UNITS:
15829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_UNITS)
15839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VERTEX_UNITS_OES)
15849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VERTEX_UNITS_OES:
15859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VERTEX_UNITS_OES)
15869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_STACK_DEPTH)
15879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_STACK_DEPTH:
15889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_STACK_DEPTH)
15899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
15909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_BUFFER_BINDING:
15919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
15929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_STRIDE)
15939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_STRIDE:
15949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_STRIDE)
15959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_TYPE)
15969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_TYPE:
15979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_TYPE)
15989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
15999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
16009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
16019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PACK_ALIGNMENT)
16029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PACK_ALIGNMENT:
16039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PACK_ALIGNMENT)
16049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
16059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PERSPECTIVE_CORRECTION_HINT:
16069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
16079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE)
16089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE:
16099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE)
16109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
16119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
16129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
16139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
16149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
16159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
16169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
16179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_TYPE_OES:
16189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
16199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SMOOTH_HINT)
16209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SMOOTH_HINT:
16219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SMOOTH_HINT)
16229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_FACTOR)
16239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_FACTOR:
16249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_FACTOR)
16259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_UNITS)
16269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_UNITS:
16279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_UNITS)
16289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_STACK_DEPTH)
16299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_STACK_DEPTH:
16309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_STACK_DEPTH)
16319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_RED_BITS)
16329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_RED_BITS:
16339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_RED_BITS)
16349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHADE_MODEL)
16359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHADE_MODEL:
16369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHADE_MODEL)
16379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_BITS)
16389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_BITS:
16399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_BITS)
16409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_CLEAR_VALUE)
16419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_CLEAR_VALUE:
16429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_CLEAR_VALUE)
16439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FAIL)
16449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FAIL:
16459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FAIL)
16469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FUNC)
16479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FUNC:
16489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FUNC)
16499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
16509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_FAIL:
16519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
16529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_PASS)
16539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_PASS:
16549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
16559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_REF)
16569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_REF:
16579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_REF)
16589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_VALUE_MASK)
16599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_VALUE_MASK:
16609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_VALUE_MASK)
16619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_WRITEMASK)
16629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_WRITEMASK:
16639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_WRITEMASK)
16649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SUBPIXEL_BITS)
16659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SUBPIXEL_BITS:
16669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SUBPIXEL_BITS)
16679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_BINDING_2D)
16689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_BINDING_2D:
16699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_BINDING_2D)
16709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
16719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
16729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
16739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
16749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_SIZE:
16759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
16769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
16779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_STRIDE:
16789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
16799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
16809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_TYPE:
16819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
16829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_STACK_DEPTH)
16839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_STACK_DEPTH:
16849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_STACK_DEPTH)
16859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_UNPACK_ALIGNMENT)
16869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_UNPACK_ALIGNMENT:
16879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_UNPACK_ALIGNMENT)
16889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
16899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_BUFFER_BINDING:
16909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
16919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_SIZE)
16929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_SIZE:
16939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_SIZE)
16949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_STRIDE)
16959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_STRIDE:
16969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_STRIDE)
16979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_TYPE)
16989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_TYPE:
16999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_TYPE)
17009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
17019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
17029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
17039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
17049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_SIZE_OES:
17059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
17069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
17079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_STRIDE_OES:
17089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
17099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
17109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_TYPE_OES:
17119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
17129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
17139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_POINT_SIZE_RANGE)
17159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_POINT_SIZE_RANGE:
17169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
17179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
17189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_LINE_WIDTH_RANGE:
17199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
17209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_RANGE)
17219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_RANGE:
17229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_RANGE)
17239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VIEWPORT_DIMS)
17249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VIEWPORT_DIMS:
17259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VIEWPORT_DIMS)
17269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
17279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_LINE_WIDTH_RANGE:
17289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
17299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
17309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_POINT_SIZE_RANGE:
17319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
17329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 2;
17339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_CLEAR_VALUE)
17359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_CLEAR_VALUE:
17369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_CLEAR_VALUE)
17379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_WRITEMASK)
17389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_WRITEMASK:
17399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_WRITEMASK)
1740be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_FOG_COLOR)
1741be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_FOG_COLOR:
1742be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_FOG_COLOR)
1743be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
1744be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_AMBIENT:
1745be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
17469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SCISSOR_BOX)
17479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SCISSOR_BOX:
17489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SCISSOR_BOX)
17499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VIEWPORT)
17509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VIEWPORT:
17519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VIEWPORT)
17529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
17539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX)
17559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX:
17569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX)
17579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
17589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
17599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
17609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX)
17619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX:
17629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX)
17639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
17649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
17659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
17669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX)
17679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX:
17689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX)
17699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
17709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
17719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
17729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 16;
17739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
17759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMPRESSED_TEXTURE_FORMATS:
17769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1777be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich            _needed = getNumCompressedTextureFormats();
17789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
17809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
17819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
17849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
178524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
17869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
17879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetIntegerv(
17899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
17909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
17919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
17929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
17949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
17959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
17969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
17989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* const GLubyte * glGetString ( GLenum name ) */
180024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetString(JNIEnv *_env, jobject, jint name) {
180124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    const char* chars = (const char*) glGetString((GLenum) name);
180224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    return _env->NewStringUTF(chars);
18039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
18049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glHint ( GLenum target, GLenum mode ) */
18059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
18069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glHint__II
18079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint mode) {
18089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glHint(
18099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
18109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
18119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
18129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
18139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelf ( GLenum pname, GLfloat param ) */
18159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
18169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelf__IF
18179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
18189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelf(
18199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
18209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
18219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
18229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
18239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
18259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
18269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelfv__I_3FI
18279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
18289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
18299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
18309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
18319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
183324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
18349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
18359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
183724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
18389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
18399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
18419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
18429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
18439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
18449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
18459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
18469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
18479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
18499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
18509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
18519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
18529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
18549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
18559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
185824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
18599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
18609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
18629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
18639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
18649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelfv(
18669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
18679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
18689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
18699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
18719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
18729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
18739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
18749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
18769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
18789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
18799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelfv__ILjava_nio_FloatBuffer_2
18809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
18819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
18829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
18839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
18849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
18869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
18879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
18889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
18899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
18909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
18919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
18929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
18949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
18959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
18969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
18979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
18999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
19009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
190324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
19049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
19059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelfv(
19079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
19089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
19099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
19109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
19129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
19139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
19149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
19169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelx ( GLenum pname, GLfixed param ) */
19189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
19199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelx__II
19209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
19219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelx(
19229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
19239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
19249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
19259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
19269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
19289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
19299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelxv__I_3II
19309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
19319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
19329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
19339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
19349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
193624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
19379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
19389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
194024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
19419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
19429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
19449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
19459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
19469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
19479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
19489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
19499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
19509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
19529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
19539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
19549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
19559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
19579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
19589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
196124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
19629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
19639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
19659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
19669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
19679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelxv(
19699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
19709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
19719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
19729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
19749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
19759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
19769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
19779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
19799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
19819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
19829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelxv__ILjava_nio_IntBuffer_2
19839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
19849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
19859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
19869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
19879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
19899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
19909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
19919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
19929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
19939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
19949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
19959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
19979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
19989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
19999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
20009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
20029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
20039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
200624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
20079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
20089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelxv(
20109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
20119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
20129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
20139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
20159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
20169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
20179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
20199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */
20219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
20229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightf__IIF
20239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) {
20249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightf(
20259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
20269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
20279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
20289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
20299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
20309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
20329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
20339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightfv__II_3FI
20349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
20359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
20369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
20379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
20389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
204024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
20419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
20429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
204424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
20459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
20469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
20489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
20499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
20509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
20519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
20529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
20539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
20549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
20559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
20569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
20579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
20589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
20599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
20609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
20619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
20629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
20639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
20649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
20659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
20669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
20689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
20699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
20709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
20719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
20739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
20749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
20759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
20769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
20779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
20789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
20799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
20809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
20819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
20829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
20839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
20849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
20859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
20879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
20889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
209124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
20929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
20939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
20959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
20969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
20979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightfv(
20999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
21009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
21019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
21029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
21039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
21059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
21069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
21079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
21089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
21109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
21129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
21139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightfv__IILjava_nio_FloatBuffer_2
21149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
21159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
21169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
21179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
21189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
21209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
21219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
21229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
21239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
21249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
21259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
21269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
21279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
21289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
21299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
21309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
21319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
21329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
21339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
21349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
21359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
21369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
21379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
21389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
21409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
21419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
21429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
21439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
21459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
21469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
21479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
21489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
21499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
21509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
21519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
21529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
21539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
21549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
21559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
21569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
21579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
21599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
21609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
216324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
21649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
21659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightfv(
21679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
21689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
21699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
21709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
21719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
21739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
21749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
21759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
21779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */
21799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
21809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightx__III
21819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) {
21829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightx(
21839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
21849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
21859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
21869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
21879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
21889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
21909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
21919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightxv__II_3II
21929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
21939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
21949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
21959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
21969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
219824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
21999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
22009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
220224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
22039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
22049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
22069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
22079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
22089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
22099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
22109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
22119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
22129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
22139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
22149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
22159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
22169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
22179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
22189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
22199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
22209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
22219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
22229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
22239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
22249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
22269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
22279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
22289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
22299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
22319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
22329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
22339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
22349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
22359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
22369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
22379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
22389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
22399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
22409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
22419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
22429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
22439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
22459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
22469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
224924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
22509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
22519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
22539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
22549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
22559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightxv(
22579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
22589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
22599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
22609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
22619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
22639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
22649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
22659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
22669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
22689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
22709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
22719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightxv__IILjava_nio_IntBuffer_2
22729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
22739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
22749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
22759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
22769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
22789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
22799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
22809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
22819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
22829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
22839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
22849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
22859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
22869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
22879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
22889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
22899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
22909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
22919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
22929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
22939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
22949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
22959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
22969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
22989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
22999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
23009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
23019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
23029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
23039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
23049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
23059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
23069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
23079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
23089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
23099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
23109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
23119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
23129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
23139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
23149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
23159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
23169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
23179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
23189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
23199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
232124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
23229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
23239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightxv(
23259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
23269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
23279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
23289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
23299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
23319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
23329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
23339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLineWidth ( GLfloat width ) */
23379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLineWidth__F
23399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat width) {
23409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLineWidth(
23419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)width
23429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
23439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLineWidthx ( GLfixed width ) */
23469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLineWidthx__I
23489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint width) {
23499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLineWidthx(
23509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)width
23519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
23529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadIdentity ( void ) */
23559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadIdentity__
23579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
23589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadIdentity();
23599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixf ( const GLfloat *m ) */
23629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixf___3FI
23649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
23659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m_base = (GLfloat *) 0;
23669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
23679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
23689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
237024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "m == null");
23719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
23729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
237424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
23759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
23769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
23789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfloat *)
23799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
23809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
23819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixf(
23839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
23849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
23859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
23879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
23889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
23899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
23909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixf ( const GLfloat *m ) */
23949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixf__Ljava_nio_FloatBuffer_2
23969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
23979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
23989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
23999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
24009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining);
24029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixf(
24039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
24049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
24059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
24069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
24079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
24099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixx ( const GLfixed *m ) */
24119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
24129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixx___3II
24139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
24149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m_base = (GLfixed *) 0;
24159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
24169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
24179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
241924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "m == null");
24209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
24219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
242324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
24249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
24259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
24279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfixed *)
24289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
24299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
24309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixx(
24329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
24339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
24349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
24369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
24379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
24389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
24399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
24419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixx ( const GLfixed *m ) */
24439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
24449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixx__Ljava_nio_IntBuffer_2
24459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
24469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
24479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
24489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
24499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining);
24519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixx(
24529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
24539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
24549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
24559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
24569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
24589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLogicOp ( GLenum opcode ) */
24609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
24619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLogicOp__I
24629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint opcode) {
24639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLogicOp(
24649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)opcode
24659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
24669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
24679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */
24699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
24709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialf__IIF
24719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) {
24729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialf(
24739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
24749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
24759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
24769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
24779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
24789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
24809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
24819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialfv__II_3FI
24829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
24839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
24849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
24859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
24869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
248824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
24899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
24909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
249224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
24939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
24949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
24969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
24979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
24989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
24999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
25009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
25019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
25029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
25049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
25059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
25069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
25079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
25089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
25099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
25109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
25119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
25129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
25139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
25149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
25159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
25169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
25179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
25189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
25199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
25219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
25229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
252524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
25269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
25279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
25299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
25309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
25319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialfv(
25339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
25349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
25359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
25369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
25379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
25399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
25409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
25419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
25429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
25449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
25469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
25479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialfv__IILjava_nio_FloatBuffer_2
25489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
25499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
25509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
25519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
25529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
25549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
25559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
25569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
25579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
25589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
25599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
25609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
25629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
25639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
25649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
25659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
25669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
25679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
25689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
25699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
25709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
25719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
25729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
25739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
25749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
25759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
25769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
25779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
25799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
25809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
258324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
25849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
25859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialfv(
25879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
25889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
25899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
25909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
25919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
25939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
25949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
25959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
25979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */
25999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
26009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialx__III
26019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) {
26029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialx(
26039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
26049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
26059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
26069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
26079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
26089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
26109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
26119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialxv__II_3II
26129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
26139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
26149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
26159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
26169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
261824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
26199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
262224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
26239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
26269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
26279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
26289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
26299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
26309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
26319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
26329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
26339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
26349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
26359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
26369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
26379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
26389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
26399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
26409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
26419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
26429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
26439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
26449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
26459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
26469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
26479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
26489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
26499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
26509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
26519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
26529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
26539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
265524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
26569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
26599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
26609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
26619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialxv(
26639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
26649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
26659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
26669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
26679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
26699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
26709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
26719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
26729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
26749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
26769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
26779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialxv__IILjava_nio_IntBuffer_2
26789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
26799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
26809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
26819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
26829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
26849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
26859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
26869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
26879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
26889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
26899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
26909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
26919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
26929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
26939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
26949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
26959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
26969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
26979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
26989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
26999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
27009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
27019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
27029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
27039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
27049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
27059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
27069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
27079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
27089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
27099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
27109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
27119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
271324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
27149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
27159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialxv(
27179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
27189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
27199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
27209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
27239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
27249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
27259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMatrixMode ( GLenum mode ) */
27299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMatrixMode__I
27319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
27329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMatrixMode(
27339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
27349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixf ( const GLfloat *m ) */
27389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixf___3FI
27409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
27419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m_base = (GLfloat *) 0;
27429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
27439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
27449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
274624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "m == null");
27479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
27489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
275024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
27519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
27529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
27549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfloat *)
27559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
27569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
27579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixf(
27599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
27609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
27639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
27649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
27659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
27669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixf ( const GLfloat *m ) */
27709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixf__Ljava_nio_FloatBuffer_2
27729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
27739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
27749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
27759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
27769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining);
27789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixf(
27799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
27809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
27829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
27839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixx ( const GLfixed *m ) */
27879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixx___3II
27899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
27909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m_base = (GLfixed *) 0;
27919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
27929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
27939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
279524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "m == null");
27969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
27979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
279924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
28009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
28019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
28039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfixed *)
28049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
28059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
28069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixx(
28089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
28099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
28129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
28139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
28149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
28159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixx ( const GLfixed *m ) */
28199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixx__Ljava_nio_IntBuffer_2
28219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
28229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
28239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
28249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
28259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining);
28279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixx(
28289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
28299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
28319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
28329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */
28369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultiTexCoord4f__IFFFF
28389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) {
28399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultiTexCoord4f(
28409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
28419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)s,
28429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)t,
28439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)r,
28449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)q
28459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */
28499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultiTexCoord4x__IIIII
28519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) {
28529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultiTexCoord4x(
28539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
28549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)s,
28559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)t,
28569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)r,
28579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)q
28589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */
28629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormal3f__FFF
28649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) {
28659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormal3f(
28669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)nx,
28679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)ny,
28689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)nz
28699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */
28739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormal3x__III
28759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) {
28769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormal3x(
28779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)nx,
28789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)ny,
28799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)nz
28809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
28849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormalPointerBounds__IILjava_nio_Buffer_2I
28869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
28879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
28889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
28899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
28909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2891e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
289216e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
2893e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
2894e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
2895e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
2896e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
28979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormalPointerBounds(
28989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
28999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
29009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
29019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
29029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
29069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glOrthof__FFFFFF
29089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
29099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glOrthof(
29109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)left,
29119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)right,
29129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)bottom,
29139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)top,
29149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zNear,
29159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zFar
29169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
29209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glOrthox__IIIIII
29229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
29239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glOrthox(
29249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)left,
29259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)right,
29269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)bottom,
29279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)top,
29289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zNear,
29299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zFar
29309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPixelStorei ( GLenum pname, GLint param ) */
29349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPixelStorei__II
29369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
29379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPixelStorei(
29389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
29399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)param
29409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointSize ( GLfloat size ) */
29449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointSize__F
29469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat size) {
29479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointSize(
29489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)size
29499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointSizex ( GLfixed size ) */
29539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointSizex__I
29559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size) {
29569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointSizex(
29579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)size
29589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */
29629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPolygonOffset__FF
29649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) {
29659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPolygonOffset(
29669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)factor,
29679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)units
29689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */
29729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPolygonOffsetx__II
29749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint factor, jint units) {
29759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPolygonOffsetx(
29769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)factor,
29779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)units
29789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPopMatrix ( void ) */
29829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPopMatrix__
29849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
29859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPopMatrix();
29869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPushMatrix ( void ) */
29899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPushMatrix__
29919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
29929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPushMatrix();
29939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */
29969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glReadPixels__IIIIIILjava_nio_Buffer_2
29989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) {
29999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
30009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
30019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
30029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pixels = (GLvoid *) 0;
30039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
30059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glReadPixels(
30069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
30079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
30089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
30099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
30109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
30119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
30129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pixels
30139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
30159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, pixels, _exception ? JNI_FALSE : JNI_TRUE);
30169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */
30209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glRotatef__FFFF
30229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) {
30239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glRotatef(
30249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)angle,
30259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
30269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
30279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z
30289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */
30329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glRotatex__IIII
30349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) {
30359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glRotatex(
30369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)angle,
30379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
30389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
30399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z
30409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */
30449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glSampleCoverage__FZ
30469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) {
30479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glSampleCoverage(
30489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)value,
30499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)invert
30509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */
30549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glSampleCoveragex__IZ
30569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint value, jboolean invert) {
30579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glSampleCoveragex(
30589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)value,
30599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)invert
30609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */
30649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glScalef__FFF
30669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
30679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glScalef(
30689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
30699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
30709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z
30719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */
30759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glScalex__III
30779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
30789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glScalex(
30799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
30809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
30819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z
30829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */
30869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glScissor__IIII
30889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
30899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glScissor(
30909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
30919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
30929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
30939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height
30949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glShadeModel ( GLenum mode ) */
30989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glShadeModel__I
31009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
31019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glShadeModel(
31029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
31039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */
31079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glStencilFunc__III
31099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) {
31109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glStencilFunc(
31119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func,
31129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)ref,
31139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)mask
31149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glStencilMask ( GLuint mask ) */
31189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glStencilMask__I
31209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mask) {
31219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glStencilMask(
31229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)mask
31239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */
31279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glStencilOp__III
31299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) {
31309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glStencilOp(
31319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)fail,
31329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)zfail,
31339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)zpass
31349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
31389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I
31409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
31419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
31429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
31439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
31449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3145e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
314616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
3147e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3148e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3149e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3150e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
31519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexCoordPointerBounds(
31529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
31539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
31549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
31559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
31569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
31579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */
31619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvf__IIF
31639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
31649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvf(
31659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
31669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
31679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
31689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
31729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvfv__II_3FI
31749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
31759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
31769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
31779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
31789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
318024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
31819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
31829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
318424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
31859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
31869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
31889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
31899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
31909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
31919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
31929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
31939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
31949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
31959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
31969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
31979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
31989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
31999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
32009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
32029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
32039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
32049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
32059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
32079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
32089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
321124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
32129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
32139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
32159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
32169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
32179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvfv(
32199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
32209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
32219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
32229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
32259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
32269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
32279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
32289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
32329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvfv__IILjava_nio_FloatBuffer_2
32349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
32359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
32369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
32379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
32389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
32409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
32419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
32429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
32439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
32449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
32459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
32469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
32479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
32489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
32499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
32509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
32519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
32529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
32549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
32559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
32569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
32579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
32599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
32609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
326324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
32649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
32659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvfv(
32679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
32689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
32699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
32709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
32739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
32749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
32759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */
32799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvx__III
32819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
32829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvx(
32839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
32849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
32859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
32869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
32909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvxv__II_3II
32929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
32939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
32949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
32959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
32969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
329824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
32999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
33009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
330224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
33039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
33049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
33069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
33079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
33089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
33099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
33109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
33119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
33129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
33139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
33149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
33159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
33169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
33179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
33189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
33199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
33209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
33219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
33229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
33239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
33249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
33259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
33269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
33279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
332924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
33309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
33319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
33339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
33349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
33359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvxv(
33379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
33389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
33399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
33409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
33439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
33449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
33459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
33469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
33509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvxv__IILjava_nio_IntBuffer_2
33529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
33539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
33549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
33559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
33569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
33589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
33599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
33609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
33619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
33629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
33639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
33649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
33659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
33669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
33679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
33689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
33699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
33709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
33719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
33729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
33739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
33749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
33759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
33769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
33779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
33789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
33799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
338124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
33829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
33839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvxv(
33859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
33869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
33879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
33889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
33919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
33929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
33939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33969066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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 ) */
33979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2
33999066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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) {
34009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
34019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
34029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pixels = (GLvoid *) 0;
34039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (pixels_buf) {
34059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
34069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexImage2D(
34089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
34099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
34109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)internalformat,
34119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
34129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
34139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)border,
34149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
34159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
34169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pixels
34179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
34199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, pixels, JNI_FALSE);
34209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */
34249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterf__IIF
34269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
34279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterf(
34289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
34299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
34309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
34319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */
34359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterx__III
34379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
34389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterx(
34399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
34409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
34419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
34429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34459066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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 ) */
34469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
34489066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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) {
34499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
34509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
34519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pixels = (GLvoid *) 0;
34529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (pixels_buf) {
34549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
34559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexSubImage2D(
34579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
34589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
34599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)xoffset,
34609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)yoffset,
34619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
34629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
34639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
34649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
34659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pixels
34669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
34689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, pixels, JNI_FALSE);
34699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */
34739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTranslatef__FFF
34759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
34769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTranslatef(
34779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
34789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
34799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z
34809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */
34849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTranslatex__III
34869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
34879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTranslatex(
34889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
34899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
34909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z
34919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
34959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glVertexPointerBounds__IIILjava_nio_Buffer_2I
34979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
34989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
34999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
35009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
35019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3502e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
350316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
3504e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3505e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3506e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3507e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
35089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glVertexPointerBounds(
35099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
35109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
35119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
35129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
35139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
35149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
35159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
35169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */
35189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
35199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glViewport__IIII
35209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
35219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glViewport(
35229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
35239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
35249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
35259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height
35269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
35279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
35289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent ) */
35309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
35319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glQueryMatrixxOES___3II_3II
35329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray mantissa_ref, jint mantissaOffset, jintArray exponent_ref, jint exponentOffset) {
35339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
35349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLbitfield _returnValue = -1;
35359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *mantissa_base = (GLfixed *) 0;
35369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _mantissaRemaining;
35379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *mantissa = (GLfixed *) 0;
35389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *exponent_base = (GLint *) 0;
35399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exponentRemaining;
35409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *exponent = (GLint *) 0;
35419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!mantissa_ref) {
35439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
354424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "mantissa == null");
35459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (mantissaOffset < 0) {
35489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
354924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "mantissaOffset < 0");
35509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _mantissaRemaining = _env->GetArrayLength(mantissa_ref) - mantissaOffset;
35539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_mantissaRemaining < 16) {
35549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
355524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - mantissaOffset < 16");
35569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    mantissa_base = (GLfixed *)
35599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(mantissa_ref, (jboolean *)0);
35609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    mantissa = mantissa_base + mantissaOffset;
35619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!exponent_ref) {
35639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
356424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "exponent == null");
35659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (exponentOffset < 0) {
35689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
356924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "exponentOffset < 0");
35709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _exponentRemaining = _env->GetArrayLength(exponent_ref) - exponentOffset;
35739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_exponentRemaining < 16) {
35749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
357524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - exponentOffset < 16");
35769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    exponent_base = (GLint *)
35799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(exponent_ref, (jboolean *)0);
35809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    exponent = exponent_base + exponentOffset;
35819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glQueryMatrixxOES(
35839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)mantissa,
35849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)exponent
35859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
35869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
35889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (exponent_base) {
35899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(exponent_ref, exponent_base,
35909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
35919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (mantissa_base) {
35939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(mantissa_ref, mantissa_base,
35949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
35959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
35979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
35989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent ) */
36009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
36019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2
36029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject mantissa_buf, jobject exponent_buf) {
36039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
36049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _mantissaArray = (jarray) 0;
36059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _exponentArray = (jarray) 0;
36069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLbitfield _returnValue = -1;
36079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _mantissaRemaining;
36089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *mantissa = (GLfixed *) 0;
36099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exponentRemaining;
36109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *exponent = (GLint *) 0;
36119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    mantissa = (GLfixed *)getPointer(_env, mantissa_buf, &_mantissaArray, &_mantissaRemaining);
36139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_mantissaRemaining < 16) {
36149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
361524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 16");
36169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    exponent = (GLint *)getPointer(_env, exponent_buf, &_exponentArray, &_exponentRemaining);
36199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_exponentRemaining < 16) {
36209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
362124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 16");
36229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glQueryMatrixxOES(
36259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)mantissa,
36269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)exponent
36279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
36289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
36309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_mantissaArray) {
36319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _mantissaArray, exponent, _exception ? JNI_FALSE : JNI_TRUE);
36329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_exponentArray) {
36349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _exponentArray, mantissa, _exception ? JNI_FALSE : JNI_TRUE);
36359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
36379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
36389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindBuffer ( GLenum target, GLuint buffer ) */
36409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
36419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindBuffer__II
36429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint buffer) {
36439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBindBuffer(
36449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
36459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)buffer
36469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
36479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
36489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */
36509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
36519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBufferData__IILjava_nio_Buffer_2I
36529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) {
36539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
36549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
36559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
36569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (data_buf) {
36589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
3659c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich        if (_remaining < size) {
366024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes            jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < size");
3661c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich            goto exit;
3662c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich        }
36639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBufferData(
36659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
36669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizeiptr)size,
36679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data,
36689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)usage
36699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3670c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich
3671c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit:
36729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
36739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
36749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
36769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */
36789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
36799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBufferSubData__IIILjava_nio_Buffer_2
36809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) {
36819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
36829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
36839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
36849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
3686c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich    if (_remaining < size) {
368724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < size");
3688c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich        goto exit;
3689c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich    }
36909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBufferSubData(
36919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
36929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLintptr)offset,
36939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizeiptr)size,
36949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data
36959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3696c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich
3697c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit:
36989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
36999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
37009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
37029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
37049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
37059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanef__I_3FI
37069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) {
37079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *equation_base = (GLfloat *) 0;
37089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
37099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *equation = (GLfloat *) 0;
37109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!equation_ref) {
371224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "equation == null");
37139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
371624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
37179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(equation_ref) - offset;
37209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
372124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 4");
37229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation_base = (GLfloat *)
37259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
37269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation = equation_base + offset;
37279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanef(
37299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
37309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)equation
37319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
37329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
37349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (equation_base) {
37359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
37369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
37379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
37399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
37419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
37429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanef__ILjava_nio_FloatBuffer_2
37439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
37449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
37459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
37469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *equation = (GLfloat *) 0;
37479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining);
37499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
375024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 4");
37519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanef(
37549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
37559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)equation
37569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
37579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
37599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
37609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, equation, JNI_FALSE);
37619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
37639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
37659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
37669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanex__I_3II
37679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) {
37689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *equation_base = (GLfixed *) 0;
37699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
37709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *equation = (GLfixed *) 0;
37719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!equation_ref) {
377324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "equation == null");
37749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
377724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
37789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(equation_ref) - offset;
37819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
378224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 4");
37839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation_base = (GLfixed *)
37869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
37879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation = equation_base + offset;
37889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanex(
37909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
37919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)equation
37929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
37939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
37959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (equation_base) {
37969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
37979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
37989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
38029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanex__ILjava_nio_IntBuffer_2
38049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
38059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
38069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
38079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *equation = (GLfixed *) 0;
38089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining);
38109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
381124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 4");
38129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanex(
38159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
38169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)equation
38179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
38209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
38219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, equation, JNI_FALSE);
38229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) */
38269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColor4ub__BBBB
38289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jbyte red, jbyte green, jbyte blue, jbyte alpha) {
38299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColor4ub(
38309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)red,
38319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)green,
38329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)blue,
38339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)alpha
38349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
38389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColorPointer__IIII
38409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
38419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColorPointer(
38429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
38439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
38449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
38459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
38469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
38509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteBuffers__I_3II
38529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
38539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers_base = (GLuint *) 0;
38549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
38559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
38569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!buffers_ref) {
385824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "buffers == null");
38599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
386224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
38639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(buffers_ref) - offset;
38669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
386724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
38689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers_base = (GLuint *)
38719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
38729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers = buffers_base + offset;
38739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteBuffers(
38759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
38769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
38779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
38809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (buffers_base) {
38819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
38829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
38839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
38879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteBuffers__ILjava_nio_IntBuffer_2
38899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
38909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
38919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
38929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
38939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining);
38959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
389624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
38979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteBuffers(
39009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
39019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
39029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
39039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
39059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
39069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, buffers, JNI_FALSE);
39079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */
39119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawElements__IIII
39139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) {
39149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawElements(
39159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode,
39169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)count,
39179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
39189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
39199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
39209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
39239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenBuffers__I_3II
39259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
39269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
39279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers_base = (GLuint *) 0;
39289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
39299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
39309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!buffers_ref) {
39329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
393324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "buffers == null");
39349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
39379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
393824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
39399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(buffers_ref) - offset;
39429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
39439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
394424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
39459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers_base = (GLuint *)
39489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
39499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers = buffers_base + offset;
39509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenBuffers(
39529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
39539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
39549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
39559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
39579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (buffers_base) {
39589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
39599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
39609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
39649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenBuffers__ILjava_nio_IntBuffer_2
39669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
39679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
39689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
39699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
39709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
39719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining);
39739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
39749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
397524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
39769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenBuffers(
39799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
39809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
39819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
39829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
39849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
39859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE);
39869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
39909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBooleanv__I_3ZI
39929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) {
39939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
39949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean *params_base = (GLboolean *) 0;
39959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
39969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean *params = (GLboolean *) 0;
39979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
39999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
400024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
40019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
40029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
40049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
400524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
40069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
40079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
40099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLboolean *)
40109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
40119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
40129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetBooleanv(
40149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
40159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean *)params
40169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
40179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
40199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
40209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
40219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
40229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
40269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
40279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBooleanv__ILjava_nio_IntBuffer_2
40289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
40299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
40309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
40319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
40329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean *params = (GLboolean *) 0;
40339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining);
40359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetBooleanv(
40369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
40379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean *)params
40389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
40399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
40409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
40419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
40459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
40469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBufferParameteriv__II_3II
40479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
404824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    jniThrowException(_env, "java/lang/UnsupportedOperationException",
40499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetBufferParameteriv");
40509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
40539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
40549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBufferParameteriv__IILjava_nio_IntBuffer_2
40559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
405624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    jniThrowException(_env, "java/lang/UnsupportedOperationException",
40579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetBufferParameteriv");
40589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
40619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
40629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanef__I_3FI
40639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) {
40649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
40659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *eqn_base = (GLfloat *) 0;
40669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
40679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *eqn = (GLfloat *) 0;
40689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!eqn_ref) {
40709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
407124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "eqn == null");
40729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
40739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
40759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
407624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
40779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
40789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(eqn_ref) - offset;
40809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn_base = (GLfloat *)
40819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
40829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn = eqn_base + offset;
40839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanef(
40859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
40869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)eqn
40879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
40889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
40909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (eqn_base) {
40919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
40929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
40939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
40979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
40989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanef__ILjava_nio_FloatBuffer_2
40999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
41009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
41019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
41029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
41039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *eqn = (GLfloat *) 0;
41049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining);
41069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanef(
41079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
41089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)eqn
41099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
41109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
41119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE);
41129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
41149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
41169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
41179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanex__I_3II
41189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) {
41199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
41209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *eqn_base = (GLfixed *) 0;
41219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
41229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *eqn = (GLfixed *) 0;
41239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!eqn_ref) {
41259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
412624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "eqn == null");
41279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
41309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
413124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
41329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(eqn_ref) - offset;
41359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn_base = (GLfixed *)
41369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
41379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn = eqn_base + offset;
41389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanex(
41409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
41419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)eqn
41429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
41439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
41459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (eqn_base) {
41469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
41479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
41489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
41509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
41529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
41539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanex__ILjava_nio_IntBuffer_2
41549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
41559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
41569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
41579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
41589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *eqn = (GLfixed *) 0;
41599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining);
41619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanex(
41629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
41639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)eqn
41649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
41659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
41669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE);
41679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
41699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFixedv ( GLenum pname, GLfixed *params ) */
41719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
41729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFixedv__I_3II
41739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
41749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
41759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
41769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
41779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
41789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
41809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
418124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
41829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
41859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
418624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
41879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
41909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
41919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
41929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
41939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFixedv(
41959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
41969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
41979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
41989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
42009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
42019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
42029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
42039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
42059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFixedv ( GLenum pname, GLfixed *params ) */
42079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
42089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFixedv__ILjava_nio_IntBuffer_2
42099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
42109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
42119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
42129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
42139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
42149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
42169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFixedv(
42179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
42189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
42199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
42209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
42219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
42229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
42249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFloatv ( GLenum pname, GLfloat *params ) */
42269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
42279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFloatv__I_3FI
42289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
42299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
42309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
42319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
42329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
42339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
42359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
423624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
42379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
42389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
42409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
424124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
42429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
42439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
42459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
42469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
42479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
42489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFloatv(
42509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
42519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
42529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
42539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
42559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
42569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
42579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
42589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
42609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFloatv ( GLenum pname, GLfloat *params ) */
42629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
42639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFloatv__ILjava_nio_FloatBuffer_2
42649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
42659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
42669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
42679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
42689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
42699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
42719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFloatv(
42729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
42739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
42749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
42759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
42769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
42779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
42799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
42819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
42829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightfv__II_3FI
42839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
42849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
42859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
42869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
42879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
42889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
42909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
429124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
42929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
42939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
42959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
429624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
42979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
42989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
43009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
43019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
43029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
43039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
43049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
43059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
43069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
43079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
43089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
43099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
43109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
43119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
43129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
43139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
43149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
43159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
43169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
43179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
43189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
43199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
43209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
43219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
43229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
43239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
43249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
43259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
43269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
43279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
43289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
43299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
43309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
43319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
43329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
43339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
43349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
43359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
43369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
43379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
43389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
43399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
43409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
43419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
43439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
434424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
43459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
43469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
43489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
43499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
43509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightfv(
43529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
43539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
43549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
43559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
43569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
43589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
43599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
43609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
43619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
43639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
43659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
43669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightfv__IILjava_nio_FloatBuffer_2
43679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
43689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
43699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
43709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
43719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
43729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
43749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
43759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
43769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
43779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
43789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
43799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
43809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
43819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
43829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
43839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
43849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
43859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
43869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
43879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
43889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
43899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
43909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
43919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
43929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
43939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
43949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
43959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
43969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
43979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
43989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
43999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
44009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
44019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
44029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
44039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
44049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
44059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
44069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
44079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
44089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
44099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
44109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
44119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
44139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
44149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
44179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
441824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
44199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightfv(
44229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
44239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
44249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
44259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
44269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
44289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
44299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
44309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
44329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
44349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
44359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightxv__II_3II
44369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
44379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
44389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
44399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
44409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
44419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
44439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
444424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
44459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
44489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
444924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
44509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
44539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
44549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
44559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
44569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
44579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
44589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
44599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
44609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
44619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
44629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
44639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
44649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
44659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
44669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
44679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
44689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
44699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
44709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
44719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
44739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
44749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
44759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
44769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
44789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
44799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
44809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
44819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
44829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
44839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
44849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
44859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
44869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
44879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
44889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
44899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
44909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
44929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
44939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
44969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
449724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
44989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
45019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
45029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
45039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightxv(
45059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
45069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
45079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
45089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
45099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
45119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
45129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
45139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
45149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
45169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
45189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
45199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightxv__IILjava_nio_IntBuffer_2
45209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
45219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
45229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
45239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
45249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
45259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
45279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
45289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
45299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
45309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
45319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
45329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
45339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
45349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
45359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
45369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
45379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
45389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
45399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
45409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
45419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
45429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
45439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
45449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
45459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
45469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
45479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
45489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
45499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
45509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
45519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
45529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
45539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
45549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
45559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
45569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
45579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
45589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
45599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
45609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
45619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
45629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
45639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
45649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
45659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
45669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
45679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
45689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
45709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
457124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
45729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
45739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightxv(
45759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
45769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
45779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
45789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
45799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
45819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
45829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
45839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
45859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
45879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
45889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialfv__II_3FI
45899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
45909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
45919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
45929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
45939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
45949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
45969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
459724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
45989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
45999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
46019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
460224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
46039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
46049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
46069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
46079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
46089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
46099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
46109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
46119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
46129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
46149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
46159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
46169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
46179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
46189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
46199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
46209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
46219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
46229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
46239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
46249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
46259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
46269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
46279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
46289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
46299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
46319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
46329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
46359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
463624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
46379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
46389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
46409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
46419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
46429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialfv(
46449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
46459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
46469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
46479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
46489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
46509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
46519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
46529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
46539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
46559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
46579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
46589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialfv__IILjava_nio_FloatBuffer_2
46599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
46609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
46619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
46629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
46639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
46649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
46669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
46679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
46689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
46699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
46709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
46719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
46729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
46749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
46759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
46769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
46779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
46789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
46799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
46809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
46819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
46829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
46839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
46849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
46859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
46869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
46879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
46889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
46899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
46919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
46929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
46959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
469624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
46979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
46989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialfv(
47009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
47019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
47029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
47039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
47049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
47069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
47079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
47089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
47109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
47129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
47139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialxv__II_3II
47149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
47159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
47169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
47179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
47189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
47199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
47219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
472224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
47239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
47269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
472724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
47289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
47319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
47329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
47339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
47349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
47359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
47369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
47379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
47389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
47399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
47409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
47419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
47429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
47439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
47449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
47459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
47469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
47479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
47489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
47499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
47509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
47519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
47529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
47539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
47549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
47559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
47569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
47579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
47589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
47609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
476124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
47629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
47659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
47669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
47679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialxv(
47699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
47709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
47719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
47729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
47739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
47759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
47769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
47779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
47789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
47809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
47829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
47839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialxv__IILjava_nio_IntBuffer_2
47849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
47859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
47869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
47879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
47889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
47899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
47919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
47929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
47939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
47949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
47959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
47969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
47979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
47989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
47999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
48009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
48019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
48029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
48039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
48049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
48059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
48069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
48079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
48089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
48099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
48109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
48119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
48129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
48139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
48149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
48169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
48179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
48209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
482124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
48229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
48239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialxv(
48259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
48269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
48279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
48289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
48299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
48319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
48329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
48339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
48359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
48379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
48389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnviv__II_3II
48399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
48409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
48419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
48429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
48439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
48449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
48469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
484724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
48489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
48499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
48519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
485224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
48539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
48549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
48569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
48579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
48589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
48599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
48609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
48619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
48629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
48639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
48649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
48659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
48669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
48679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
48689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
48709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
48719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
48729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
48739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
48759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
48769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
48799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
488024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
48819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
48829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
48849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
48859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
48869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnviv(
48889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
48899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
48909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
48919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
48929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
48949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
48959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
48969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
48979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
48999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
49019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
49029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnviv__IILjava_nio_IntBuffer_2
49039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
49049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
49059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
49069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
49079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
49089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
49109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
49119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
49129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
49139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
49149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
49159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
49169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
49179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
49189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
49199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
49209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
49219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
49229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
49249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
49259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
49269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
49279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
49299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
49309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
49339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
493424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
49359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnviv(
49389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
49399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
49409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
49419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
49429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
49449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
49459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
49469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
49489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
49509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
49519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnvxv__II_3II
49529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
49539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
49549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
49559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
49569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
49579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
49599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
496024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
49619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
49649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
496524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
49669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
49699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
49709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
49719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
49729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
49739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
49749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
49759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
49769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
49779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
49789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
49799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
49809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
49819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
49839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
49849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
49859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
49869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
49889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
49899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
49929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
499324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
49949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
49979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
49989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
49999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnvxv(
50019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
50029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
50039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
50049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
50059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
50079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
50089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
50099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
50109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
50129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
50149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
50159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnvxv__IILjava_nio_IntBuffer_2
50169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
50179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
50189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
50199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
50209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
50219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
50239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
50249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
50259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
50269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
50279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
50289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
50299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
50309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
50319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
50329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
50339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
50349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
50359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
50369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
50379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
50389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
50399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
50409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
50419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
50429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
50439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
50449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
50469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
504724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
50489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnvxv(
50519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
50529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
50539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
50549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
50559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
50579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
50589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
50599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
50619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
50639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
50649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterfv__II_3FI
50659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
50669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
50679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
50689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
50699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
50709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
50729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
507324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
50749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
50779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
507824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
50799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
50829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
50839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
508424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
50859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
50889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
50899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
50909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterfv(
50929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
50939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
50949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
50959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
50969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
50989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
50999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
51009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
51019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
51059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
51069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterfv__IILjava_nio_FloatBuffer_2
51079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
51089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
51099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
51109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
51119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
51129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
51149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
51159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
511624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
51179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
51189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterfv(
51209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
51219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
51229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
51239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
51249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
51269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
51279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
51289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
51329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
51339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameteriv__II_3II
51349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
51359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
51369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
51379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
51389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
51399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
51419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
514224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
51439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
51449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
51469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
514724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
51489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
51499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
51519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
51529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
515324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
51549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
51559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
51579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
51589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
51599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameteriv(
51619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
51629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
51639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
51649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
51659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
51679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
51689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
51699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
51709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
51749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
51759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameteriv__IILjava_nio_IntBuffer_2
51769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
51779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
51789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
51799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
51809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
51819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
51839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
51849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
518524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
51869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
51879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameteriv(
51899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
51909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
51919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
51929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
51939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
51959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
51969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
51979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
52019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
52029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterxv__II_3II
52039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
52049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
52059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
52069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
52079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
52089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
52109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
521124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
52129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
52159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
521624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
52179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
52209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
52219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
522224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
52239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
52269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
52279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
52289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterxv(
52309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
52319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
52329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
52339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
52349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
52369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
52379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
52389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
52399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
52419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
52439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
52449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterxv__IILjava_nio_IntBuffer_2
52459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
52469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
52479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
52489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
52499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
52509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
52529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
52539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
525424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
52559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterxv(
52589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
52599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
52609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
52619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
52629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
52649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
52659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
52669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
52689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsBuffer ( GLuint buffer ) */
52709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
52719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsBuffer__I
52729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint buffer) {
52739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean _returnValue;
52749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glIsBuffer(
52759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)buffer
52769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
52779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
52789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
52799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsEnabled ( GLenum cap ) */
52819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
52829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsEnabled__I
52839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint cap) {
52849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean _returnValue;
52859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glIsEnabled(
52869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)cap
52879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
52889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
52899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
52909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsTexture ( GLuint texture ) */
52929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
52939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsTexture__I
52949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint texture) {
52959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean _returnValue;
52969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glIsTexture(
52979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)texture
52989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
52999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
53009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormalPointer ( GLenum type, GLsizei stride, GLint offset ) */
53039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormalPointer__III
53059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint type, jint stride, jint offset) {
53069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormalPointer(
53079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
53089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
53099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
53109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterf ( GLenum pname, GLfloat param ) */
53149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterf__IF
53169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
53179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterf(
53189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
53199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
53209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
53249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterfv__I_3FI
53269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
53279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
53289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
53299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
53309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
533224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
53339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
53349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
533624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
53379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
53389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
53409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
534124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
53429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
53439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
53459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
53469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
53479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterfv(
53499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
53509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
53519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
53549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
53559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
53569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
53579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
53619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterfv__ILjava_nio_FloatBuffer_2
53639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
53649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
53659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
53669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
53679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
53699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
537024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
53719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
53729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterfv(
53749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
53759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
53769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
53799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
53809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
53819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterx ( GLenum pname, GLfixed param ) */
53859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterx__II
53879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
53889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterx(
53899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
53909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
53919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
53959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterxv__I_3II
53979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
53989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
53999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
54009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
54019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
540324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
54049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
54059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
540724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
54089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
54099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
54119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
541224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
54139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
54149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
54169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
54179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
54189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterxv(
54209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
54219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
54229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
54239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
54259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
54269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
54279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
54289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
54309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
54329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
54339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterxv__ILjava_nio_IntBuffer_2
54349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
54359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
54369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
54379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
54389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
54409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
544124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
54429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
54439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterxv(
54459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
54469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
54479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
54489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
54509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
54519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
54529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
54549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
54569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5457be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I
5458be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich  (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
54599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
54609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
54619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
54629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5463be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (pointer_buf) {
5464be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
5465be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        if ( ! pointer ) {
5466be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich            return;
5467be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        }
5468be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
5469be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glPointSizePointerOESBounds(
54709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
54719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
5472be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLvoid *)pointer,
5473be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)remaining
54749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
54759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
54769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
54789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
54799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexCoordPointer__IIII
54809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
54819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexCoordPointer(
54829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
54839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
54849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
54859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
54869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
54879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
54889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvi ( GLenum target, GLenum pname, GLint param ) */
54909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
54919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvi__III
54929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
54939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvi(
54949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
54959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
54969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)param
54979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
54989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
54999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
55019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
55029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnviv__II_3II
55039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
55049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
55059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
55069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
55079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
550924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
55109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
551324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
55149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
55179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
55189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
55199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
55209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
55219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
55229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
55239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
55249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
55259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
55269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
55279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
55289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
55299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
55319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
55329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
55339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
55349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
55369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
55379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
554024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
55419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
55449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
55459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
55469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnviv(
55489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
55499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
55509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
55519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
55529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
55549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
55559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
55569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
55579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
55599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
55619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
55629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnviv__IILjava_nio_IntBuffer_2
55639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
55649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
55659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
55669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
55679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
55699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
55709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
55719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
55729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
55739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
55749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
55759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
55769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
55779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
55789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
55799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
55809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
55819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
55839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
55849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
55859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
55869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
55889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
55899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
55909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
559224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
55939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnviv(
55969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
55979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
55989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
55999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
56009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
56029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
56039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
56049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
56089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
56099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterfv__II_3FI
56109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
56119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
56129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
56139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
56149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
561624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
56179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
562024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
56219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
56249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
562524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
56269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
56299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
56309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
56319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterfv(
56339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
56349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
56359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
56369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
56379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
56399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
56409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
56419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
56429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
56469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
56479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterfv__IILjava_nio_FloatBuffer_2
56489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
56499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
56509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
56519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
56529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
56549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
565524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
56569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterfv(
56599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
56609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
56619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
56629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
56639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
56659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
56669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
56679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */
56719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
56729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameteri__III
56739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
56749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameteri(
56759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
56769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
56779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)param
56789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
56799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
56829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
56839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameteriv__II_3II
56849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
56859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
56869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
56879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
56889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
569024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
56919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
569424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
56959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
56989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
569924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
57009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
57039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
57049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
57059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameteriv(
57079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
57089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
57099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
57109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
57119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
57139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
57149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
57159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
57169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
57209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
57219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameteriv__IILjava_nio_IntBuffer_2
57229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
57239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
57249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
57259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
57269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
57289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
572924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
57309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameteriv(
57339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
57349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
57359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
57369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
57379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
57399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
57409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
57419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
57459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
57469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterxv__II_3II
57479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
57489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
57499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
57509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
57519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
575324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
57549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
575724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
57589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
57619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
576224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
57639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
57669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
57679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
57689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterxv(
57709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
57719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
57729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
57739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
57749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
57769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
57779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
57789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
57799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
57839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
57849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterxv__IILjava_nio_IntBuffer_2
57859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
57869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
57879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
57889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
57899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
57919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
579224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
57939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterxv(
57969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
57979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
57989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
57999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
58029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
58039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
58049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
58089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glVertexPointer__IIII
58109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
58119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glVertexPointer(
58129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
58139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
58149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
58159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
58169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCurrentPaletteMatrixOES ( GLuint matrixpaletteindex ) */
58209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCurrentPaletteMatrixOES__I
58229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint matrixpaletteindex) {
5823be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glCurrentPaletteMatrixOES(
5824be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLuint)matrixpaletteindex
5825be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
58269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexfOES ( GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height ) */
58299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexfOES__FFFFF
58319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z, jfloat width, jfloat height) {
58329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexfOES(
58339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
58349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
58359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z,
58369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)width,
58379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)height
58389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexfvOES ( const GLfloat *coords ) */
58429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexfvOES___3FI
58449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloatArray coords_ref, jint offset) {
58459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *coords_base = (GLfloat *) 0;
58469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
58479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *coords = (GLfloat *) 0;
58489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
585024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "coords == null");
58519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
585424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
58559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
58589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
585924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 5");
58609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLfloat *)
58639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
58649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
58659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexfvOES(
58679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)coords
58689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
58719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
58729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
58739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
58749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexfvOES ( const GLfloat *coords ) */
58789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexfvOES__Ljava_nio_FloatBuffer_2
58809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
58819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
58829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
58839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *coords = (GLfloat *) 0;
58849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = (GLfloat *)getPointer(_env, coords_buf, &_array, &_remaining);
58869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
588724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 5");
58889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexfvOES(
58919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)coords
58929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
58959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
58969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
58979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexiOES ( GLint x, GLint y, GLint z, GLint width, GLint height ) */
59019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexiOES__IIIII
59039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
59049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexiOES(
59059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
59069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
59079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)z,
59089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)width,
59099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)height
59109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
59119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
59129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexivOES ( const GLint *coords ) */
59149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexivOES___3II
59169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
59179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *coords_base = (GLint *) 0;
59189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
59199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *coords = (GLint *) 0;
59209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
592224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "coords == null");
59239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
592624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
59279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
59309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
593124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 5");
59329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLint *)
59359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
59369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
59379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexivOES(
59399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)coords
59409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
59419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
59439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
59449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
59459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
59469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
59489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexivOES ( const GLint *coords ) */
59509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexivOES__Ljava_nio_IntBuffer_2
59529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
59539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
59549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
59559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *coords = (GLint *) 0;
59569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = (GLint *)getPointer(_env, coords_buf, &_array, &_remaining);
59589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
595924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 5");
59609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexivOES(
59639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)coords
59649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
59659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
59679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
59689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
59699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
59719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexsOES ( GLshort x, GLshort y, GLshort z, GLshort width, GLshort height ) */
59739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexsOES__SSSSS
59759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jshort x, jshort y, jshort z, jshort width, jshort height) {
59769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexsOES(
59779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)x,
59789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)y,
59799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)z,
59809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)width,
59819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)height
59829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
59839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
59849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexsvOES ( const GLshort *coords ) */
59869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexsvOES___3SI
59889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jshortArray coords_ref, jint offset) {
59899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLshort *coords_base = (GLshort *) 0;
59909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
59919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLshort *coords = (GLshort *) 0;
59929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
599424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "coords == null");
59959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
599824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
59999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
60009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
60029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
600324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 5");
60049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
60059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLshort *)
60079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
60089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
60099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexsvOES(
60119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort *)coords
60129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
60139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
60159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
60169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
60179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
60189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexsvOES ( const GLshort *coords ) */
60229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexsvOES__Ljava_nio_ShortBuffer_2
60249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
60259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
60269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
60279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLshort *coords = (GLshort *) 0;
60289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = (GLshort *)getPointer(_env, coords_buf, &_array, &_remaining);
60309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
603124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 5");
60329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
60339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexsvOES(
60359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort *)coords
60369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
60379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
60399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
60409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
60419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexxOES ( GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height ) */
60459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexxOES__IIIII
60479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
60489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexxOES(
60499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
60509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
60519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z,
60529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)width,
60539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)height
60549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
60559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexxvOES ( const GLfixed *coords ) */
60589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexxvOES___3II
60609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
60619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *coords_base = (GLfixed *) 0;
60629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
60639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *coords = (GLfixed *) 0;
60649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
606624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "coords == null");
60679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
60689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
607024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
60719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
60729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
60749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
607524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 5");
60769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
60779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLfixed *)
60799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
60809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
60819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexxvOES(
60839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)coords
60849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
60859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
60879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
60889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
60899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
60909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
60919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexxvOES ( const GLfixed *coords ) */
60949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexxvOES__Ljava_nio_IntBuffer_2
60969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
60979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
60989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
60999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *coords = (GLfixed *) 0;
61009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = (GLfixed *)getPointer(_env, coords_buf, &_array, &_remaining);
61029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
610324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 5");
61049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
61059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
61069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexxvOES(
61079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)coords
61089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
61099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
61119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
61129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
61139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
61149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadPaletteFromModelViewMatrixOES ( void ) */
61179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadPaletteFromModelViewMatrixOES__
61199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
6120be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glLoadPaletteFromModelViewMatrixOES();
61219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
61249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6125be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I
6126be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
6127be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jarray _array = (jarray) 0;
6128be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jint _remaining;
6129be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
6130be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich
6131be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (pointer_buf) {
6132be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
6133be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        if ( ! pointer ) {
6134be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich            return;
6135be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        }
6136be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
6137be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glMatrixIndexPointerOESBounds(
6138be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLint)size,
6139be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLenum)type,
6140be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)stride,
6141be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLvoid *)pointer,
6142be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)remaining
6143be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
61449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
61479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMatrixIndexPointerOES__IIII
61499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
6150be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glMatrixIndexPointerOES(
6151be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLint)size,
6152be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLenum)type,
6153be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)stride,
6154be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (const GLvoid *)offset
6155be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
61569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
61599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6160be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I
6161be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
6162be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jarray _array = (jarray) 0;
6163be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    jint _remaining;
6164be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
6165be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich
6166be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (pointer_buf) {
6167be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
6168be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        if ( ! pointer ) {
6169be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich            return;
6170be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        }
6171be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
6172be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glWeightPointerOESBounds(
6173be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLint)size,
6174be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLenum)type,
6175be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)stride,
6176be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLvoid *)pointer,
6177be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)remaining
6178be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
61799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
61829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glWeightPointerOES__IIII
61849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
6185be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glWeightPointerOES(
6186be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLint)size,
6187be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLenum)type,
6188be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)stride,
6189be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (const GLvoid *)offset
6190be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    );
61919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindFramebufferOES ( GLint target, GLint framebuffer ) */
61949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindFramebufferOES__II
61969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint framebuffer) {
61978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
619824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
61998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glBindFramebufferOES");
62008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
62018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
62028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glBindFramebufferOES(
62038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
62048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)framebuffer
62058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
62069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindRenderbufferOES ( GLint target, GLint renderbuffer ) */
62099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindRenderbufferOES__II
62119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint renderbuffer) {
62128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
621324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
62148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glBindRenderbufferOES");
62158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
62168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
62178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glBindRenderbufferOES(
62188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
62198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)renderbuffer
62208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
62219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendEquation ( GLint mode ) */
62249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendEquation__I
62269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
62278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_blend_subtractID)) {
622824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
62298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glBlendEquation");
62308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
62318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
62328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glBlendEquation(
62338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)mode
62348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
62359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendEquationSeparate ( GLint modeRGB, GLint modeAlpha ) */
62389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendEquationSeparate__II
62409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint modeRGB, jint modeAlpha) {
62418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_blend_equation_separateID)) {
624224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
62438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glBlendEquationSeparate");
62448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
62458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
62468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glBlendEquationSeparate(
62478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)modeRGB,
62488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)modeAlpha
62498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
62509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendFuncSeparate ( GLint srcRGB, GLint dstRGB, GLint srcAlpha, GLint dstAlpha ) */
62539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendFuncSeparate__IIII
62559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) {
62568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_blend_equation_separateID)) {
625724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
62588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glBlendFuncSeparate");
62598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
62608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
62618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glBlendFuncSeparate(
62628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)srcRGB,
62638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)dstRGB,
62648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)srcAlpha,
62658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)dstAlpha
62668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
62679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLint glCheckFramebufferStatusOES ( GLint target ) */
62709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
62719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCheckFramebufferStatusOES__I
62729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target) {
62738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
627424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
62758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glCheckFramebufferStatusOES");
62768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return 0;
62778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
62788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint _returnValue = 0;
62798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _returnValue = glCheckFramebufferStatusOES(
62808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target
62818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
62828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    return _returnValue;
62839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glDeleteFramebuffersOES ( GLint n, GLuint *framebuffers ) */
62869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteFramebuffersOES__I_3II
62889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
62898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
629024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
62918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glDeleteFramebuffersOES");
62928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
62938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
62948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
62958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers_base = (GLuint *) 0;
62968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
62978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers = (GLuint *) 0;
62988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
62998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!framebuffers_ref) {
63008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
630124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "framebuffers == null");
63028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
63038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
63058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
630624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
63078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
63088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
63108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
63118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
631224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
63138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
63148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    framebuffers_base = (GLuint *)
63168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0);
63178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    framebuffers = framebuffers_base + offset;
63188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
63198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glDeleteFramebuffersOES(
63208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
63218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)framebuffers
63228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
63238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
63248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
63258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (framebuffers_base) {
63268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base,
63278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
63288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glDeleteFramebuffersOES ( GLint n, GLuint *framebuffers ) */
63329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2
63349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
63358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
633624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
63378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glDeleteFramebuffersOES");
63388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
63398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
63418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
63428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
63438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers = (GLuint *) 0;
63448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
63458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining);
63468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
63478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
634824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
63498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
63508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glDeleteFramebuffersOES(
63528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
63538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)framebuffers
63548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
63558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
63568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
63578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
63588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, framebuffers, _exception ? JNI_FALSE : JNI_TRUE);
63598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glDeleteRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
63639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteRenderbuffersOES__I_3II
63659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
63668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
636724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
63688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glDeleteRenderbuffersOES");
63698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
63708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
63728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers_base = (GLuint *) 0;
63738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
63748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers = (GLuint *) 0;
63758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
63768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!renderbuffers_ref) {
63778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
637824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "renderbuffers == null");
63798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
63808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
63828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
638324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
63848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
63858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63868a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
63878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
63888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
638924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
63908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
63918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
63928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    renderbuffers_base = (GLuint *)
63938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0);
63948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    renderbuffers = renderbuffers_base + offset;
63958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
63968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glDeleteRenderbuffersOES(
63978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
63988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)renderbuffers
63998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
64008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
64018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
64028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (renderbuffers_base) {
64038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base,
64048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
64058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
64069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
64079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glDeleteRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
64099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
64109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2
64119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
64128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
641324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
64148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glDeleteRenderbuffersOES");
64158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
64168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
64178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
64188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
64198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
64208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers = (GLuint *) 0;
64218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
64228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining);
64238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
64248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
642524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
64268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
64278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
64288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glDeleteRenderbuffersOES(
64298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
64308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)renderbuffers
64318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
64328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
64338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
64348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
64358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, renderbuffers, _exception ? JNI_FALSE : JNI_TRUE);
64368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
64379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
64389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFramebufferRenderbufferOES ( GLint target, GLint attachment, GLint renderbuffertarget, GLint renderbuffer ) */
64409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
64419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFramebufferRenderbufferOES__IIII
64429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer) {
64438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
644424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
64458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glFramebufferRenderbufferOES");
64468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
64478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
64488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glFramebufferRenderbufferOES(
64498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
64508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)attachment,
64518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)renderbuffertarget,
64528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)renderbuffer
64538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
64549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
64559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFramebufferTexture2DOES ( GLint target, GLint attachment, GLint textarget, GLint texture, GLint level ) */
64579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
64589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFramebufferTexture2DOES__IIIII
64599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint textarget, jint texture, jint level) {
64608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
646124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
64628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glFramebufferTexture2DOES");
64638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
64648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
64658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glFramebufferTexture2DOES(
64668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
64678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)attachment,
64688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)textarget,
64698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)texture,
64708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)level
64718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
64729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
64739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenerateMipmapOES ( GLint target ) */
64759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
64769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenerateMipmapOES__I
64779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target) {
64788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
647924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
64808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGenerateMipmapOES");
64818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
64828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
64838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGenerateMipmapOES(
64848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target
64858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
64869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
64879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
64888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGenFramebuffersOES ( GLint n, GLuint *framebuffers ) */
64899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
64909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenFramebuffersOES__I_3II
64919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
64928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
649324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
64948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGenFramebuffersOES");
64958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
64968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
64978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
64988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers_base = (GLuint *) 0;
64998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
65008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers = (GLuint *) 0;
65018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
65028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!framebuffers_ref) {
65038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
650424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "framebuffers == null");
65058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
65068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
65088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
650924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
65108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
65118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
65138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
65148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
651524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
65168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
65178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    framebuffers_base = (GLuint *)
65198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0);
65208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    framebuffers = framebuffers_base + offset;
65218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
65228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGenFramebuffersOES(
65238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
65248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)framebuffers
65258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
65268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
65278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
65288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (framebuffers_base) {
65298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base,
65308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
65318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
65339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
65348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGenFramebuffersOES ( GLint n, GLuint *framebuffers ) */
65359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
65369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenFramebuffersOES__ILjava_nio_IntBuffer_2
65379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
65388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
653924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
65408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGenFramebuffersOES");
65418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
65428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
65448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
65458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
65468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *framebuffers = (GLuint *) 0;
65478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
65488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining);
65498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
65508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
655124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
65528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
65538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGenFramebuffersOES(
65558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
65568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)framebuffers
65578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
65588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
65598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
65608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
65618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, framebuffers, _exception ? JNI_FALSE : JNI_TRUE);
65628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
65649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
65658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGenRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
65669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
65679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenRenderbuffersOES__I_3II
65689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
65698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
657024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
65718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGenRenderbuffersOES");
65728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
65738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
65758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers_base = (GLuint *) 0;
65768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
65778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers = (GLuint *) 0;
65788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
65798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!renderbuffers_ref) {
65808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
658124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "renderbuffers == null");
65828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
65838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
65858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
658624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
65878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
65888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
65908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
65918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
659224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
65938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
65948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
65958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    renderbuffers_base = (GLuint *)
65968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0);
65978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    renderbuffers = renderbuffers_base + offset;
65988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
65998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGenRenderbuffersOES(
66008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
66018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)renderbuffers
66028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
66038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
66048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
66058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (renderbuffers_base) {
66068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base,
66078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
66088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
66099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
66109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGenRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
66129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
66139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2
66149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
66158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
661624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
66178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGenRenderbuffersOES");
66188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
66198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
66208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
66218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
66228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
66238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLuint *renderbuffers = (GLuint *) 0;
66248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
66258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining);
66268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_remaining < n) {
66278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
662824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
66298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
66308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
66318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGenRenderbuffersOES(
66328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)n,
66338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLuint *)renderbuffers
66348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
66358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
66368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
66378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
66388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, renderbuffers, _exception ? JNI_FALSE : JNI_TRUE);
66398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
66409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
66419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFramebufferAttachmentParameterivOES ( GLint target, GLint attachment, GLint pname, GLint *params ) */
66439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
66449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFramebufferAttachmentParameterivOES__III_3II
66459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jintArray params_ref, jint offset) {
66468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
664724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
66488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetFramebufferAttachmentParameterivOES");
66498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
66508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
66518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
66528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
66538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
66548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
66559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
66578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
665824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
66598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
66608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
66618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
66628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
666324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
66648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
66658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
66668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
66678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
66688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
66698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
66709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetFramebufferAttachmentParameterivOES(
66728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
66738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)attachment,
66748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
66758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
66768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
66778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
66788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
66798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
66808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
66818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
66828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
66838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
66848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
66858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGetFramebufferAttachmentParameterivOES ( GLint target, GLint attachment, GLint pname, GLint *params ) */
66868a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichstatic void
66878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichandroid_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2
66888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) {
66898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
669024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
66918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetFramebufferAttachmentParameterivOES");
66928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
66938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
66948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
66958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
66968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
66978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
66988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
66998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
67008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetFramebufferAttachmentParameterivOES(
67018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
67028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)attachment,
67038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
67048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
67058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
67068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
67078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
67088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
67098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich}
67108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
67118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich/* void glGetRenderbufferParameterivOES ( GLint target, GLint pname, GLint *params ) */
67129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
67139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetRenderbufferParameterivOES__II_3II
67149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
67158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
671624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
67178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetRenderbufferParameterivOES");
67188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
67198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
67208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
67218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
67228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
67238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
67248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
67258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
67268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
672724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
67288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
67298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
67308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
67318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
673224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
67338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
67348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
67358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
67368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
67378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
67388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
67398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
67408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetRenderbufferParameterivOES(
67418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
67428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
67438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
67448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
67458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
67468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
67478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
67488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
67498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
67508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
67519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
67529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
67539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetRenderbufferParameterivOES ( GLint target, GLint pname, GLint *params ) */
67549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
67559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2
67569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
67578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
675824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
67598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetRenderbufferParameterivOES");
67608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
67618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
67628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
67638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
67648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
67658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
67668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
67678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
67688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetRenderbufferParameterivOES(
67698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
67708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
67718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
67728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
67738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
67748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
67758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
67769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
67779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
67789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
67799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
67809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenfv__II_3FI
67819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
67828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
678324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
67848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGenfv");
67858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
67868a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
67878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
67888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params_base = (GLfloat *) 0;
67898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
67908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params = (GLfloat *) 0;
67918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
67928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
67938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
679424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
67958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
67968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
67978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
67988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
679924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
68008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
68018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
68028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
68038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLfloat *)
68048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
68058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
68068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
68078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGenfv(
68088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
68098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
68108a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLfloat *)params
68118a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
68128a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
68138a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
68148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
68158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
68168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
68178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
68189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
68199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
68219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
68229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenfv__IILjava_nio_FloatBuffer_2
68239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
68248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
682524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
68268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGenfv");
68278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
68288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
68298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
68308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
68318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
68328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params = (GLfloat *) 0;
68338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
68348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
68358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGenfv(
68368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
68378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
68388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLfloat *)params
68398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
68408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
68418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
68428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
68439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
68449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGeniv ( GLint coord, GLint pname, GLint *params ) */
68469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
68479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGeniv__II_3II
68489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
68498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
685024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
68518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGeniv");
68528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
68538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
68548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
68558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
68568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
68578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
68588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
68598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
68608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
686124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
68628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
68638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
68648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
68658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
686624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
68678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
68688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
68698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
68708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
68718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
68728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
68738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
68748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGeniv(
68758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
68768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
68778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
68788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
68798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
68808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
68818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
68828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
68838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
68848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
68859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
68869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGeniv ( GLint coord, GLint pname, GLint *params ) */
68889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
68899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGeniv__IILjava_nio_IntBuffer_2
68909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
68918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
689224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
68938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGeniv");
68948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
68958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
68968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
68978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
68988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
68998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
69008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
69018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
69028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGeniv(
69038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
69048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
69058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
69068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
69078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
69088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
69098a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
69109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
69119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenxv ( GLint coord, GLint pname, GLint *params ) */
69139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
69149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenxv__II_3II
69159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
69168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
691724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
69188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGenxv");
69198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
69208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
69218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
69228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
69238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
69248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
69258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
69268a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
69278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
692824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
69298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
69308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
69318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
69328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
693324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
69348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
69358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
69368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
69378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
69388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
69398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
69408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
69418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGenxv(
69428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
69438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
69448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
69458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
69468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
69478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
69488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
69498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
69508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
69518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
69529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
69539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenxv ( GLint coord, GLint pname, GLint *params ) */
69559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
69569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenxv__IILjava_nio_IntBuffer_2
69579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
69588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
695924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
69608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glGetTexGenxv");
69618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
69628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
69638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
69648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
69658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
69668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
69678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
69688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
69698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glGetTexGenxv(
69708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
69718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
69728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
69738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
69748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
69758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
69768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
69779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
69789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsFramebufferOES ( GLint framebuffer ) */
69809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
69819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsFramebufferOES__I
69829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint framebuffer) {
69838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
698424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
69858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glIsFramebufferOES");
69868a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return JNI_FALSE;
69878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
69888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLboolean _returnValue = JNI_FALSE;
69898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _returnValue = glIsFramebufferOES(
69908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)framebuffer
69918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
69928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    return _returnValue;
69939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
69949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsRenderbufferOES ( GLint renderbuffer ) */
69969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
69979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsRenderbufferOES__I
69989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint renderbuffer) {
69998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
700024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
70018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glIsRenderbufferOES");
70028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return JNI_FALSE;
70038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
70048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLboolean _returnValue = JNI_FALSE;
70058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _returnValue = glIsRenderbufferOES(
70068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)renderbuffer
70078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
70088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    return _returnValue;
70099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
70109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glRenderbufferStorageOES ( GLint target, GLint internalformat, GLint width, GLint height ) */
70129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
70139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glRenderbufferStorageOES__IIII
70149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint width, jint height) {
70158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
701624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
70178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glRenderbufferStorageOES");
70188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
70198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
70208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glRenderbufferStorageOES(
70218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)target,
70228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)internalformat,
70238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)width,
70248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)height
70258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
70269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
70279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenf ( GLint coord, GLint pname, GLfloat param ) */
70299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
70309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenf__IIF
70319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloat param) {
70328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
703324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
70348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenf");
70358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
70368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
70378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenf(
70388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
70398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
70408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLfloat)param
70418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
70429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
70439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
70459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
70469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenfv__II_3FI
70479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
70488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
704924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
70508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenfv");
70518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
70528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
70538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
70548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params_base = (GLfloat *) 0;
70558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
70568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params = (GLfloat *) 0;
70578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
70588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
70598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
706024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
70618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
70628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
70638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
70648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
706524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
70668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
70678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
70688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
70698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLfloat *)
70708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
70718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
70728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
70738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenfv(
70748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
70758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
70768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLfloat *)params
70778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
70788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
70798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
70808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
70818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
70828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
70838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
70849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
70859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
70869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
70879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
70889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenfv__IILjava_nio_FloatBuffer_2
70899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
70908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
709124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
70928a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenfv");
70938a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
70948a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
70958a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
70968a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
70978a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
70988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLfloat *params = (GLfloat *) 0;
70998a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
71008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
71018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenfv(
71028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
71038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
71048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLfloat *)params
71058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
71068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
71078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
71088a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
71099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
71109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGeni ( GLint coord, GLint pname, GLint param ) */
71129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
71139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGeni__III
71149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
71158a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
711624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
71178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGeni");
71188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
71198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
71208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGeni(
71218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
71228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
71238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)param
71248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
71259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
71269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGeniv ( GLint coord, GLint pname, GLint *params ) */
71289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
71299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGeniv__II_3II
71309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
71318a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
713224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
71338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGeniv");
71348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
71358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
71368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
71378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
71388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
71398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
71408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
71418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
71428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
714324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
71448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
71458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
71468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
71478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
714824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
71498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
71508a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
71518a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
71528a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
71538a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
71548a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
71558a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
71568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGeniv(
71578a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
71588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
71598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
71608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
71618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
71628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
71638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
71648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
71658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
71668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
71679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
71689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGeniv ( GLint coord, GLint pname, GLint *params ) */
71709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
71719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGeniv__IILjava_nio_IntBuffer_2
71729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
71738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
717424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
71758a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGeniv");
71768a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
71778a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
71788a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
71798a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
71808a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
71818a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
71828a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
71838a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
71848a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGeniv(
71858a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
71868a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
71878a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
71888a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
71898a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
71908a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
71918a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
71929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
71939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
71949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenx ( GLint coord, GLint pname, GLint param ) */
71959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
71969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenx__III
71979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
71988a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
719924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
72008a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenx");
72018a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
72028a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72038a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenx(
72048a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
72058a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
72068a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)param
72078a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
72089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
72099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenxv ( GLint coord, GLint pname, GLint *params ) */
72119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
72129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenxv__II_3II
72139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
72148a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
721524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
72168a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenxv");
72178a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
72188a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72198a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
72208a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params_base = (GLint *) 0;
72218a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
72228a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
72238a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
72248a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (!params_ref) {
72258a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
722624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
72278a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
72288a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72298a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (offset < 0) {
72308a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _exception = 1;
723124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
72328a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        goto exit;
72338a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72348a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
72358a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params_base = (GLint *)
72368a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
72378a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = params_base + offset;
72388a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
72398a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenxv(
72408a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
72418a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
72428a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
72438a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
72448a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
72458a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevichexit:
72468a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (params_base) {
72478a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
72488a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            _exception ? JNI_ABORT: 0);
72498a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
72519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenxv ( GLint coord, GLint pname, GLint *params ) */
72539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
72549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenxv__IILjava_nio_IntBuffer_2
72559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
72568a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
725724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/UnsupportedOperationException",
72588a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            "glTexGenxv");
72598a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich            return;
72608a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72618a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _exception = 0;
72628a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jarray _array = (jarray) 0;
72638a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    jint _remaining;
72648a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    GLint *params = (GLint *) 0;
72658a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich
72668a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
72678a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    glTexGenxv(
72688a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)coord,
72698a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint)pname,
72708a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        (GLint *)params
72718a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    );
72728a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    if (_array) {
72738a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
72748a4de4be9ed522c704a45a44a265669e10a8f2ebJack Palevich    }
72759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
72769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic const char *classPathName = "com/google/android/gles_jni/GLImpl";
72789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic JNINativeMethod methods[] = {
72809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"_nativeClassInit", "()V", (void*)nativeClassInit },
72819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I },
72829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF },
72839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II },
72849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindTexture", "(II)V", (void *) android_glBindTexture__II },
72859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II },
72869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClear", "(I)V", (void *) android_glClear__I },
72879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF },
72889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII },
72899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F },
72909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I },
72919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearStencil", "(I)V", (void *) android_glClearStencil__I },
72929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I },
72939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF },
72949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII },
72959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ },
72969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I },
72979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 },
72989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
72999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII },
73009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII },
73019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCullFace", "(I)V", (void *) android_glCullFace__I },
73029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II },
73039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 },
73049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I },
73059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z },
73069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF },
73079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II },
73089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDisable", "(I)V", (void *) android_glDisable__I },
73099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I },
73109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III },
73119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 },
73129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glEnable", "(I)V", (void *) android_glEnable__I },
73139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I },
73149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFinish", "()V", (void *) android_glFinish__ },
73159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFlush", "()V", (void *) android_glFlush__ },
73169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogf", "(IF)V", (void *) android_glFogf__IF },
73179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI },
73189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 },
73199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogx", "(II)V", (void *) android_glFogx__II },
73209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II },
73219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 },
73229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFrontFace", "(I)V", (void *) android_glFrontFace__I },
73239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF },
73249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII },
73259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II },
73269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 },
73279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetError", "()I", (void *) android_glGetError__ },
73289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II },
73299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 },
73309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"_glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },
73319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glHint", "(II)V", (void *) android_glHint__II },
73329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF },
73339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI },
73349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 },
73359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelx", "(II)V", (void *) android_glLightModelx__II },
73369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II },
73379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 },
73389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightf", "(IIF)V", (void *) android_glLightf__IIF },
73399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI },
73409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 },
73419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightx", "(III)V", (void *) android_glLightx__III },
73429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II },
73439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 },
73449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLineWidth", "(F)V", (void *) android_glLineWidth__F },
73459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I },
73469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ },
73479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI },
73489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 },
73499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II },
73509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 },
73519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLogicOp", "(I)V", (void *) android_glLogicOp__I },
73529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF },
73539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI },
73549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 },
73559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialx", "(III)V", (void *) android_glMaterialx__III },
73569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II },
73579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 },
73589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I },
73599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI },
73609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 },
73619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II },
73629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 },
73639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF },
73649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII },
73659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF },
73669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormal3x", "(III)V", (void *) android_glNormal3x__III },
73679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I },
73689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF },
73699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII },
73709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II },
73719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointSize", "(F)V", (void *) android_glPointSize__F },
73729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointSizex", "(I)V", (void *) android_glPointSizex__I },
73739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF },
73749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II },
73759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPopMatrix", "()V", (void *) android_glPopMatrix__ },
73769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPushMatrix", "()V", (void *) android_glPushMatrix__ },
73779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 },
73789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF },
73799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII },
73809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ },
73819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ },
73829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glScalef", "(FFF)V", (void *) android_glScalef__FFF },
73839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glScalex", "(III)V", (void *) android_glScalex__III },
73849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glScissor", "(IIII)V", (void *) android_glScissor__IIII },
73859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glShadeModel", "(I)V", (void *) android_glShadeModel__I },
73869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III },
73879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glStencilMask", "(I)V", (void *) android_glStencilMask__I },
73889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glStencilOp", "(III)V", (void *) android_glStencilOp__III },
73899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I },
73909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF },
73919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI },
73929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 },
73939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III },
73949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II },
73959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 },
73969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 },
73979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF },
73989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III },
73999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
74009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF },
74019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTranslatex", "(III)V", (void *) android_glTranslatex__III },
74029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I },
74039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glViewport", "(IIII)V", (void *) android_glViewport__IIII },
74049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glQueryMatrixxOES", "([II[II)I", (void *) android_glQueryMatrixxOES___3II_3II },
74059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glQueryMatrixxOES", "(Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)I", (void *) android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 },
74069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II },
74079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I },
74089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 },
74099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanef", "(I[FI)V", (void *) android_glClipPlanef__I_3FI },
74109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanef__ILjava_nio_FloatBuffer_2 },
74119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanex", "(I[II)V", (void *) android_glClipPlanex__I_3II },
74129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanex__ILjava_nio_IntBuffer_2 },
74139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColor4ub", "(BBBB)V", (void *) android_glColor4ub__BBBB },
74149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColorPointer", "(IIII)V", (void *) android_glColorPointer__IIII },
74159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II },
74169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 },
74179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII },
74189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II },
74199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 },
74209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI },
74219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 },
74229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II },
74239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 },
74249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanef", "(I[FI)V", (void *) android_glGetClipPlanef__I_3FI },
74259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 },
74269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanex", "(I[II)V", (void *) android_glGetClipPlanex__I_3II },
74279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanex__ILjava_nio_IntBuffer_2 },
74289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFixedv", "(I[II)V", (void *) android_glGetFixedv__I_3II },
74299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFixedv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedv__ILjava_nio_IntBuffer_2 },
74309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI },
74319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 },
74329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightfv", "(II[FI)V", (void *) android_glGetLightfv__II_3FI },
74339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetLightfv__IILjava_nio_FloatBuffer_2 },
74349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightxv", "(II[II)V", (void *) android_glGetLightxv__II_3II },
74359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxv__IILjava_nio_IntBuffer_2 },
74369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialfv", "(II[FI)V", (void *) android_glGetMaterialfv__II_3FI },
74379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 },
74389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialxv", "(II[II)V", (void *) android_glGetMaterialxv__II_3II },
74399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxv__IILjava_nio_IntBuffer_2 },
74409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnviv", "(II[II)V", (void *) android_glGetTexEnviv__II_3II },
74419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnviv__IILjava_nio_IntBuffer_2 },
74429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnvxv", "(II[II)V", (void *) android_glGetTexEnvxv__II_3II },
74439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 },
74449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI },
74459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 },
74469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II },
74479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 },
74489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterxv", "(II[II)V", (void *) android_glGetTexParameterxv__II_3II },
74499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 },
74509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I },
74519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I },
74529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsTexture", "(I)Z", (void *) android_glIsTexture__I },
74539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormalPointer", "(III)V", (void *) android_glNormalPointer__III },
74549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterf", "(IF)V", (void *) android_glPointParameterf__IF },
74559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterfv", "(I[FI)V", (void *) android_glPointParameterfv__I_3FI },
74569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glPointParameterfv__ILjava_nio_FloatBuffer_2 },
74579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterx", "(II)V", (void *) android_glPointParameterx__II },
74589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterxv", "(I[II)V", (void *) android_glPointParameterxv__I_3II },
74599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxv__ILjava_nio_IntBuffer_2 },
7460be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glPointSizePointerOESBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I },
74619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexCoordPointer", "(IIII)V", (void *) android_glTexCoordPointer__IIII },
74629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvi", "(III)V", (void *) android_glTexEnvi__III },
74639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnviv", "(II[II)V", (void *) android_glTexEnviv__II_3II },
74649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnviv__IILjava_nio_IntBuffer_2 },
74659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI },
74669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 },
74679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III },
74689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II },
74699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 },
74709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterxv", "(II[II)V", (void *) android_glTexParameterxv__II_3II },
74719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxv__IILjava_nio_IntBuffer_2 },
74729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glVertexPointer", "(IIII)V", (void *) android_glVertexPointer__IIII },
74739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCurrentPaletteMatrixOES", "(I)V", (void *) android_glCurrentPaletteMatrixOES__I },
74749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexfOES", "(FFFFF)V", (void *) android_glDrawTexfOES__FFFFF },
74759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexfvOES", "([FI)V", (void *) android_glDrawTexfvOES___3FI },
74769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexfvOES", "(Ljava/nio/FloatBuffer;)V", (void *) android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 },
74779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexiOES", "(IIIII)V", (void *) android_glDrawTexiOES__IIIII },
74789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexivOES", "([II)V", (void *) android_glDrawTexivOES___3II },
74799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexivOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexivOES__Ljava_nio_IntBuffer_2 },
74809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexsOES", "(SSSSS)V", (void *) android_glDrawTexsOES__SSSSS },
74819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexsvOES", "([SI)V", (void *) android_glDrawTexsvOES___3SI },
74829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexsvOES", "(Ljava/nio/ShortBuffer;)V", (void *) android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 },
74839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexxOES", "(IIIII)V", (void *) android_glDrawTexxOES__IIIII },
74849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexxvOES", "([II)V", (void *) android_glDrawTexxvOES___3II },
74859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexxvOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 },
74869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadPaletteFromModelViewMatrixOES", "()V", (void *) android_glLoadPaletteFromModelViewMatrixOES__ },
7487be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glMatrixIndexPointerOESBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I },
74889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMatrixIndexPointerOES", "(IIII)V", (void *) android_glMatrixIndexPointerOES__IIII },
7489be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glWeightPointerOESBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I },
74909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glWeightPointerOES", "(IIII)V", (void *) android_glWeightPointerOES__IIII },
74919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindFramebufferOES", "(II)V", (void *) android_glBindFramebufferOES__II },
74929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindRenderbufferOES", "(II)V", (void *) android_glBindRenderbufferOES__II },
74939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendEquation", "(I)V", (void *) android_glBlendEquation__I },
74949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendEquationSeparate", "(II)V", (void *) android_glBlendEquationSeparate__II },
74959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendFuncSeparate", "(IIII)V", (void *) android_glBlendFuncSeparate__IIII },
74969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCheckFramebufferStatusOES", "(I)I", (void *) android_glCheckFramebufferStatusOES__I },
74979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteFramebuffersOES", "(I[II)V", (void *) android_glDeleteFramebuffersOES__I_3II },
74989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2 },
74999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteRenderbuffersOES", "(I[II)V", (void *) android_glDeleteRenderbuffersOES__I_3II },
75009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2 },
75019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFramebufferRenderbufferOES", "(IIII)V", (void *) android_glFramebufferRenderbufferOES__IIII },
75029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFramebufferTexture2DOES", "(IIIII)V", (void *) android_glFramebufferTexture2DOES__IIIII },
75039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenerateMipmapOES", "(I)V", (void *) android_glGenerateMipmapOES__I },
75049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenFramebuffersOES", "(I[II)V", (void *) android_glGenFramebuffersOES__I_3II },
75059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenFramebuffersOES__ILjava_nio_IntBuffer_2 },
75069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenRenderbuffersOES", "(I[II)V", (void *) android_glGenRenderbuffersOES__I_3II },
75079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2 },
75089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFramebufferAttachmentParameterivOES", "(III[II)V", (void *) android_glGetFramebufferAttachmentParameterivOES__III_3II },
75099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFramebufferAttachmentParameterivOES", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 },
75109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetRenderbufferParameterivOES", "(II[II)V", (void *) android_glGetRenderbufferParameterivOES__II_3II },
75119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetRenderbufferParameterivOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 },
75129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenfv", "(II[FI)V", (void *) android_glGetTexGenfv__II_3FI },
75139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexGenfv__IILjava_nio_FloatBuffer_2 },
75149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGeniv", "(II[II)V", (void *) android_glGetTexGeniv__II_3II },
75159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGeniv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGeniv__IILjava_nio_IntBuffer_2 },
75169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenxv", "(II[II)V", (void *) android_glGetTexGenxv__II_3II },
75179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGenxv__IILjava_nio_IntBuffer_2 },
75189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsFramebufferOES", "(I)Z", (void *) android_glIsFramebufferOES__I },
75199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsRenderbufferOES", "(I)Z", (void *) android_glIsRenderbufferOES__I },
75209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glRenderbufferStorageOES", "(IIII)V", (void *) android_glRenderbufferStorageOES__IIII },
75219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenf", "(IIF)V", (void *) android_glTexGenf__IIF },
75229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenfv", "(II[FI)V", (void *) android_glTexGenfv__II_3FI },
75239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexGenfv__IILjava_nio_FloatBuffer_2 },
75249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGeni", "(III)V", (void *) android_glTexGeni__III },
75259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGeniv", "(II[II)V", (void *) android_glTexGeniv__II_3II },
75269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGeniv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGeniv__IILjava_nio_IntBuffer_2 },
75279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenx", "(III)V", (void *) android_glTexGenx__III },
75289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenxv", "(II[II)V", (void *) android_glTexGenxv__II_3II },
75299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGenxv__IILjava_nio_IntBuffer_2 },
75309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
75319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
75329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectint register_com_google_android_gles_jni_GLImpl(JNIEnv *_env)
75339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
75349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int err;
75359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
75369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return err;
75379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7538