com_google_android_gles_jni_GLImpl.cpp revision 8331f72078051cdf5a26230ee819f7ef7f9fcc24
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**
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** you may not use this file except in compliance with the License.
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** You may obtain a copy of the License at
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**     http://www.apache.org/licenses/LICENSE-2.0
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Unless required by applicable law or agreed to in writing, software
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS,
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** 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
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <android_runtime/AndroidRuntime.h>
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <utils/misc.h>
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <assert.h>
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <GLES/gl.h>
25be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#include <GLES/glext.h>
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
278331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian/* special calls implemented in Android's GLES wrapper used to more
288331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian * efficiently bound-check passed arrays */
298331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopianextern "C" {
308331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride,
318331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        const GLvoid *ptr, GLsizei count);
328331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride,
338331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        const GLvoid *pointer, GLsizei count);
348331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type,
358331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
368331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type,
378331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
388331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian}
398331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic int initialized = 0;
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jclass nioAccessClass;
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jclass bufferClass;
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jclass OOMEClass;
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jclass UOEClass;
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jclass IAEClass;
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jclass AIOOBEClass;
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jmethodID getBasePointerID;
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jmethodID getBaseArrayID;
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jmethodID getBaseArrayOffsetID;
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jfieldID positionID;
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jfieldID limitID;
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jfieldID elementSizeShiftID;
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* Cache method IDs each time the class is loaded. */
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectnativeClassInitBuffer(JNIEnv *_env)
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "getBasePointer", "(Ljava/nio/Buffer;)J");
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    positionID = _env->GetFieldID(bufferClass, "position", "I");
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    limitID = _env->GetFieldID(bufferClass, "limit", "I");
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    elementSizeShiftID =
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectnativeClassInit(JNIEnv *_env, jclass glImplClass)
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    nativeClassInitBuffer(_env);
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jclass IAEClassLocal =
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->FindClass("java/lang/IllegalArgumentException");
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jclass OOMEClassLocal =
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         _env->FindClass("java/lang/OutOfMemoryError");
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jclass UOEClassLocal =
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         _env->FindClass("java/lang/UnsupportedOperationException");
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jclass AIOOBEClassLocal =
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         _env->FindClass("java/lang/ArrayIndexOutOfBoundsException");
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal);
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void *
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectgetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint position;
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint limit;
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint elementSizeShift;
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jlong pointer;
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint offset;
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void *data;
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    position = _env->GetIntField(buffer, positionID);
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    limit = _env->GetIntField(buffer, limitID);
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    *remaining = (limit - position) << elementSizeShift;
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    pointer = _env->CallStaticLongMethod(nioAccessClass,
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getBasePointerID, buffer);
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (pointer != 0L) {
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        *array = NULL;
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return (void *) (jint) pointer;
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getBaseArrayID, buffer);
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    offset = _env->CallStaticIntMethod(nioAccessClass,
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getBaseArrayOffsetID, buffer);
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return (void *) ((char *) data + offset);
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ReleasePrimitiveArrayCritical(array, data,
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project					   commit ? 0 : JNI_ABORT);
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
136be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevichstatic int
137be509c9c7de5929d014dfe6d45e71cc8454ede0fJack PalevichgetNumCompressedTextureFormats() {
138be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    int numCompressedTextureFormats = 0;
139be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats);
140be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    return numCompressedTextureFormats;
141be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich}
142be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// --------------------------------------------------------------------------
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glActiveTexture ( GLenum texture ) */
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glActiveTexture__I
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint texture) {
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glActiveTexture(
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)texture
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glAlphaFunc ( GLenum func, GLclampf ref ) */
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glAlphaFunc__IF
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func, jfloat ref) {
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glAlphaFunc(
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func,
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)ref
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glAlphaFuncx__II
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func, jint ref) {
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glAlphaFuncx(
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func,
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)ref
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindTexture ( GLenum target, GLuint texture ) */
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindTexture__II
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint texture) {
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBindTexture(
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)texture
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendFunc__II
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) {
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBlendFunc(
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)sfactor,
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)dfactor
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClear ( GLbitfield mask ) */
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClear__I
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mask) {
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClear(
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLbitfield)mask
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearColor__FFFF
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearColor(
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)red,
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)green,
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)blue,
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)alpha
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearColorx__IIII
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearColorx(
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)red,
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)green,
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)blue,
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)alpha
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearDepthf ( GLclampf depth ) */
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearDepthf__F
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat depth) {
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearDepthf(
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)depth
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearDepthx ( GLclampx depth ) */
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearDepthx__I
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint depth) {
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearDepthx(
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)depth
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClearStencil ( GLint s ) */
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClearStencil__I
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint s) {
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClearStencil(
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)s
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClientActiveTexture ( GLenum texture ) */
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClientActiveTexture__I
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint texture) {
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClientActiveTexture(
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)texture
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColor4f__FFFF
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColor4f(
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)red,
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)green,
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)blue,
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)alpha
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColor4x__IIII
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColor4x(
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)red,
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)green,
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)blue,
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)alpha
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColorMask__ZZZZ
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) {
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColorMask(
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)red,
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)green,
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)blue,
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)alpha
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColorPointerBounds__IIILjava_nio_Buffer_2I
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
307e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
308e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
309e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
310e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            _env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
311e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
312e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
313e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColorPointerBounds(
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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) {
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCompressedTexImage2D(
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)internalformat,
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)border,
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)imageSize,
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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 ) */
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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) {
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCompressedTexSubImage2D(
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)xoffset,
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)yoffset,
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)imageSize,
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCopyTexImage2D__IIIIIIII
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) {
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCopyTexImage2D(
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)internalformat,
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)border
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCopyTexSubImage2D__IIIIIIII
3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) {
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCopyTexSubImage2D(
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)xoffset,
3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)yoffset,
3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height
4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCullFace ( GLenum mode ) */
4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCullFace__I
4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glCullFace(
4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteTextures__I_3II
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures_base = (GLuint *) 0;
4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!textures_ref) {
4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "textures == null");
4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(textures_ref) - offset;
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < n");
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures_base = (GLuint *)
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures = textures_base + offset;
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteTextures(
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (textures_base) {
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteTextures__ILjava_nio_IntBuffer_2
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining);
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < n");
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteTextures(
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, textures, JNI_FALSE);
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthFunc ( GLenum func ) */
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthFunc__I
4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func) {
4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthFunc(
4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func
4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthMask ( GLboolean flag ) */
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthMask__Z
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jboolean flag) {
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthMask(
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)flag
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */
4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthRangef__FF
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthRangef(
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)zNear,
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)zFar
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDepthRangex__II
5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint zNear, jint zFar) {
5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDepthRangex(
5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)zNear,
5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)zFar
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDisable ( GLenum cap ) */
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDisable__I
5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint cap) {
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDisable(
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)cap
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDisableClientState ( GLenum array ) */
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDisableClientState__I
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint array) {
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDisableClientState(
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)array
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawArrays__III
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) {
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawArrays(
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode,
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)first,
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)count
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawElements__IIILjava_nio_Buffer_2
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) {
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *indices = (GLvoid *) 0;
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining);
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < count) {
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(AIOOBEClass, "remaining() < count");
5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawElements(
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode,
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)count,
5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)indices
5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, indices, JNI_FALSE);
5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glEnable ( GLenum cap ) */
5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glEnable__I
5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint cap) {
5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glEnable(
5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)cap
5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glEnableClientState ( GLenum array ) */
5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glEnableClientState__I
5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint array) {
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glEnableClientState(
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)array
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFinish ( void ) */
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFinish__
5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFinish();
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFlush ( void ) */
5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFlush__
5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFlush();
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogf ( GLenum pname, GLfloat param ) */
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogf__IF
6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogf(
6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogfv ( GLenum pname, const GLfloat *params ) */
6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogfv__I_3FI
6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogfv(
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogfv ( GLenum pname, const GLfloat *params ) */
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogfv__ILjava_nio_FloatBuffer_2
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogfv(
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogx ( GLenum pname, GLfixed param ) */
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogx__II
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogx(
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogxv ( GLenum pname, const GLfixed *params ) */
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogxv__I_3II
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogxv(
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFogxv ( GLenum pname, const GLfixed *params ) */
7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFogxv__ILjava_nio_IntBuffer_2
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_COLOR)
8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_COLOR:
8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_COLOR)
8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFogxv(
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFrontFace ( GLenum mode ) */
8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFrontFace__I
8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFrontFace(
8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFrustumf__FFFFFF
8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFrustumf(
8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)left,
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)right,
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)bottom,
8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)top,
8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zNear,
8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zFar
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFrustumx__IIIIII
8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glFrustumx(
8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)left,
8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)right,
8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)bottom,
8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)top,
8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zNear,
8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zFar
8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenTextures ( GLsizei n, GLuint *textures ) */
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenTextures__I_3II
8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures_base = (GLuint *) 0;
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!textures_ref) {
8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "textures == null");
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(textures_ref) - offset;
8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < n");
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures_base = (GLuint *)
9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures = textures_base + offset;
9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenTextures(
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (textures_base) {
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenTextures ( GLsizei n, GLuint *textures ) */
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenTextures__ILjava_nio_IntBuffer_2
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *textures = (GLuint *) 0;
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining);
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < n");
9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenTextures(
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)textures
9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE);
9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLenum glGetError ( void ) */
9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetError__
9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLenum _returnValue;
9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glGetError();
9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetIntegerv ( GLenum pname, GLint *params ) */
9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetIntegerv__I_3II
9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_BITS)
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_BITS:
9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_BITS)
9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_FUNC)
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_FUNC:
9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_FUNC)
9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_REF)
9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_REF:
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_REF)
9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLEND_DST)
9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLEND_DST:
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLEND_DST)
9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLUE_BITS)
9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLUE_BITS:
9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLUE_BITS)
9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_BUFFER_BINDING:
9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_SIZE)
9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_SIZE:
9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_SIZE)
9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_STRIDE)
9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_STRIDE:
9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_STRIDE)
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_TYPE)
10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_TYPE:
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_TYPE)
10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CULL_FACE)
10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CULL_FACE:
10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CULL_FACE)
10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_BITS)
10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_BITS:
10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_BITS)
10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_CLEAR_VALUE)
10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_CLEAR_VALUE:
10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_CLEAR_VALUE)
10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_FUNC)
10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_FUNC:
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_FUNC)
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_WRITEMASK)
10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_WRITEMASK:
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_WRITEMASK)
10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FRONT_FACE)
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FRONT_FACE:
10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FRONT_FACE)
10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_GREEN_BITS)
10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_GREEN_BITS:
10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_GREEN_BITS)
10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1042be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1043be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_COLOR_CONTROL:
1044be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1045be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
1046be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_LOCAL_VIEWER:
1047be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_SMOOTH_HINT)
10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_SMOOTH_HINT:
10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_SMOOTH_HINT)
10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_WIDTH)
10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_WIDTH:
10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_WIDTH)
10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LOGIC_OP_MODE)
10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LOGIC_OP_MODE:
10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LOGIC_OP_MODE)
10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_MODE)
10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_MODE:
10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_MODE)
10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_CLIP_PLANES)
10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_CLIP_PLANES:
10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_CLIP_PLANES)
10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_INDICES)
10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_INDICES:
10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_INDICES)
10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_VERTICES)
10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_VERTICES:
10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_VERTICES)
10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_LIGHTS)
10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_LIGHTS:
10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_LIGHTS)
10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_MODELVIEW_STACK_DEPTH:
10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PALETTE_MATRICES_OES)
10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PALETTE_MATRICES_OES:
10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PROJECTION_STACK_DEPTH:
10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_SIZE)
10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_SIZE:
10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_SIZE)
10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_STACK_DEPTH:
11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_UNITS)
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_UNITS:
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_UNITS)
11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VERTEX_UNITS_OES)
11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VERTEX_UNITS_OES:
11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VERTEX_UNITS_OES)
11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_STACK_DEPTH)
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_STACK_DEPTH:
11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_STACK_DEPTH)
11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_BUFFER_BINDING:
11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_STRIDE)
11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_STRIDE:
11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_STRIDE)
11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_TYPE)
11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_TYPE:
11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_TYPE)
11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PACK_ALIGNMENT)
11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PACK_ALIGNMENT:
11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PACK_ALIGNMENT)
11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PERSPECTIVE_CORRECTION_HINT:
11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE)
11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE:
11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE)
11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
11369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
11379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
11389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
11399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_TYPE_OES:
11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SMOOTH_HINT)
11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SMOOTH_HINT:
11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SMOOTH_HINT)
11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_FACTOR)
11459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_FACTOR:
11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_FACTOR)
11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_UNITS)
11489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_UNITS:
11499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_UNITS)
11509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_STACK_DEPTH)
11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_STACK_DEPTH:
11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_STACK_DEPTH)
11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_RED_BITS)
11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_RED_BITS:
11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_RED_BITS)
11569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHADE_MODEL)
11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHADE_MODEL:
11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHADE_MODEL)
11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_BITS)
11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_BITS:
11619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_BITS)
11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_CLEAR_VALUE)
11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_CLEAR_VALUE:
11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_CLEAR_VALUE)
11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FAIL)
11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FAIL:
11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FAIL)
11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FUNC)
11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FUNC:
11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FUNC)
11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_FAIL:
11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_PASS)
11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_PASS:
11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_REF)
11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_REF:
11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_REF)
11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_VALUE_MASK)
11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_VALUE_MASK:
11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_VALUE_MASK)
11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_WRITEMASK)
11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_WRITEMASK:
11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_WRITEMASK)
11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SUBPIXEL_BITS)
11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SUBPIXEL_BITS:
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SUBPIXEL_BITS)
11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_BINDING_2D)
11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_BINDING_2D:
11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_BINDING_2D)
11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_SIZE:
11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_STRIDE:
12009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
12019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
12029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_TYPE:
12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
12049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_STACK_DEPTH)
12059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_STACK_DEPTH:
12069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_STACK_DEPTH)
12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_UNPACK_ALIGNMENT)
12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_UNPACK_ALIGNMENT:
12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_UNPACK_ALIGNMENT)
12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_BUFFER_BINDING:
12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_SIZE)
12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_SIZE:
12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_SIZE)
12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_STRIDE)
12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_STRIDE:
12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_STRIDE)
12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_TYPE)
12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_TYPE:
12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_TYPE)
12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
12259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_SIZE_OES:
12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
12289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_STRIDE_OES:
12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_TYPE_OES:
12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_POINT_SIZE_RANGE)
12379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_POINT_SIZE_RANGE:
12389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
12399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
12409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_LINE_WIDTH_RANGE:
12419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
12429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_RANGE)
12439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_RANGE:
12449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_RANGE)
12459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VIEWPORT_DIMS)
12469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VIEWPORT_DIMS:
12479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VIEWPORT_DIMS)
12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_LINE_WIDTH_RANGE:
12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_POINT_SIZE_RANGE:
12539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 2;
12559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
12569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_CLEAR_VALUE)
12579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_CLEAR_VALUE:
12589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_CLEAR_VALUE)
12599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_WRITEMASK)
12609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_WRITEMASK:
12619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_WRITEMASK)
1262be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_FOG_COLOR)
1263be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_FOG_COLOR:
1264be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_FOG_COLOR)
1265be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
1266be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_AMBIENT:
1267be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
12689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SCISSOR_BOX)
12699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SCISSOR_BOX:
12709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SCISSOR_BOX)
12719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VIEWPORT)
12729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VIEWPORT:
12739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VIEWPORT)
12749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
12759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
12769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX)
12779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX:
12789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX)
12799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
12809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
12819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
12829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX)
12839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX:
12849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX)
12859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
12869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
12879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
12889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX)
12899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX:
12909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX)
12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 16;
12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMPRESSED_TEXTURE_FORMATS:
12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1299be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich            _needed = getNumCompressedTextureFormats();
13009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
13019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
13029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
13039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
13049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
13059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
13069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
13089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
13099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
13109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
13119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
13129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
13139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetIntegerv(
13159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
13169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
13179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
13189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
13249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetIntegerv ( GLenum pname, GLint *params ) */
13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetIntegerv__ILjava_nio_IntBuffer_2
13299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
13309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
13319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
13329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
13339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
13349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
13369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
13379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
13389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_BITS)
13399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_BITS:
13409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_BITS)
13419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_FUNC)
13429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_FUNC:
13439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_FUNC)
13449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALPHA_TEST_REF)
13459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALPHA_TEST_REF:
13469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALPHA_TEST_REF)
13479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLEND_DST)
13489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLEND_DST:
13499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLEND_DST)
13509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_BLUE_BITS)
13519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_BLUE_BITS:
13529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_BLUE_BITS)
13539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
13549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_BUFFER_BINDING:
13559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
13569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_SIZE)
13579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_SIZE:
13589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_SIZE)
13599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_STRIDE)
13609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_STRIDE:
13619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_STRIDE)
13629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_ARRAY_TYPE)
13639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_ARRAY_TYPE:
13649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_ARRAY_TYPE)
13659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CULL_FACE)
13669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CULL_FACE:
13679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CULL_FACE)
13689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_BITS)
13699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_BITS:
13709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_BITS)
13719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_CLEAR_VALUE)
13729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_CLEAR_VALUE:
13739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_CLEAR_VALUE)
13749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_FUNC)
13759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_FUNC:
13769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_FUNC)
13779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_WRITEMASK)
13789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_WRITEMASK:
13799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_WRITEMASK)
13809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_DENSITY)
13819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_DENSITY:
13829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_DENSITY)
13839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_END)
13849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_END:
13859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_END)
13869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_MODE)
13879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_MODE:
13889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_MODE)
13899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FOG_START)
13909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FOG_START:
13919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FOG_START)
13929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_FRONT_FACE)
13939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_FRONT_FACE:
13949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_FRONT_FACE)
13959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_GREEN_BITS)
13969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_GREEN_BITS:
13979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_GREEN_BITS)
13989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
13999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
14009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
14019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
14029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
14039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1404be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1405be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_COLOR_CONTROL:
1406be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1407be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
1408be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_LOCAL_VIEWER:
1409be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
14109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
14119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
14129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
14139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_SMOOTH_HINT)
14149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_SMOOTH_HINT:
14159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_SMOOTH_HINT)
14169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINE_WIDTH)
14179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINE_WIDTH:
14189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINE_WIDTH)
14199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LOGIC_OP_MODE)
14209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LOGIC_OP_MODE:
14219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LOGIC_OP_MODE)
14229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
14239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
14249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
14259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
14269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
14279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
14289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
14299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
14309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
14319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
14329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
14339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
14349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MATRIX_MODE)
14359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MATRIX_MODE:
14369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MATRIX_MODE)
14379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_CLIP_PLANES)
14389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_CLIP_PLANES:
14399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_CLIP_PLANES)
14409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_INDICES)
14419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_INDICES:
14429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_INDICES)
14439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_ELEMENTS_VERTICES)
14449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_ELEMENTS_VERTICES:
14459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_ELEMENTS_VERTICES)
14469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_LIGHTS)
14479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_LIGHTS:
14489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_LIGHTS)
14499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
14509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_MODELVIEW_STACK_DEPTH:
14519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
14529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PALETTE_MATRICES_OES)
14539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PALETTE_MATRICES_OES:
14549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
14559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
14569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_PROJECTION_STACK_DEPTH:
14579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
14589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_SIZE)
14599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_SIZE:
14609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_SIZE)
14619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
14629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_STACK_DEPTH:
14639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
14649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_TEXTURE_UNITS)
14659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_TEXTURE_UNITS:
14669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_TEXTURE_UNITS)
14679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VERTEX_UNITS_OES)
14689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VERTEX_UNITS_OES:
14699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VERTEX_UNITS_OES)
14709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_STACK_DEPTH)
14719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_STACK_DEPTH:
14729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_STACK_DEPTH)
14739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
14749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_BUFFER_BINDING:
14759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
14769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_STRIDE)
14779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_STRIDE:
14789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_STRIDE)
14799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NORMAL_ARRAY_TYPE)
14809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NORMAL_ARRAY_TYPE:
14819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NORMAL_ARRAY_TYPE)
14829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
14839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
14849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
14859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PACK_ALIGNMENT)
14869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PACK_ALIGNMENT:
14879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PACK_ALIGNMENT)
14889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
14899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PERSPECTIVE_CORRECTION_HINT:
14909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
14919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE)
14929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE:
14939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE)
14949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
14959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
14969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
14979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
14989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
14999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
15009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
15019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SIZE_ARRAY_TYPE_OES:
15029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
15039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POINT_SMOOTH_HINT)
15049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POINT_SMOOTH_HINT:
15059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POINT_SMOOTH_HINT)
15069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_FACTOR)
15079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_FACTOR:
15089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_FACTOR)
15099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_POLYGON_OFFSET_UNITS)
15109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_POLYGON_OFFSET_UNITS:
15119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_POLYGON_OFFSET_UNITS)
15129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_STACK_DEPTH)
15139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_STACK_DEPTH:
15149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_STACK_DEPTH)
15159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_RED_BITS)
15169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_RED_BITS:
15179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_RED_BITS)
15189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHADE_MODEL)
15199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHADE_MODEL:
15209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHADE_MODEL)
15219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_BITS)
15229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_BITS:
15239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_BITS)
15249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_CLEAR_VALUE)
15259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_CLEAR_VALUE:
15269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_CLEAR_VALUE)
15279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FAIL)
15289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FAIL:
15299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FAIL)
15309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_FUNC)
15319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_FUNC:
15329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_FUNC)
15339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
15349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_FAIL:
15359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
15369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_PASS_DEPTH_PASS)
15379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_PASS_DEPTH_PASS:
15389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
15399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_REF)
15409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_REF:
15419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_REF)
15429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_VALUE_MASK)
15439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_VALUE_MASK:
15449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_VALUE_MASK)
15459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_STENCIL_WRITEMASK)
15469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_STENCIL_WRITEMASK:
15479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_STENCIL_WRITEMASK)
15489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SUBPIXEL_BITS)
15499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SUBPIXEL_BITS:
15509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SUBPIXEL_BITS)
15519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_BINDING_2D)
15529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_BINDING_2D:
15539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_BINDING_2D)
15549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
15559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
15569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
15579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
15589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_SIZE:
15599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
15609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
15619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_STRIDE:
15629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
15639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
15649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_COORD_ARRAY_TYPE:
15659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
15669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_STACK_DEPTH)
15679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_STACK_DEPTH:
15689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_STACK_DEPTH)
15699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_UNPACK_ALIGNMENT)
15709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_UNPACK_ALIGNMENT:
15719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_UNPACK_ALIGNMENT)
15729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
15739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_BUFFER_BINDING:
15749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
15759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_SIZE)
15769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_SIZE:
15779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_SIZE)
15789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_STRIDE)
15799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_STRIDE:
15809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_STRIDE)
15819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VERTEX_ARRAY_TYPE)
15829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VERTEX_ARRAY_TYPE:
15839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VERTEX_ARRAY_TYPE)
15849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
15859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
15869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
15879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
15889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_SIZE_OES:
15899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
15909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
15919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_STRIDE_OES:
15929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
15939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
15949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_WEIGHT_ARRAY_TYPE_OES:
15959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
15969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
15979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
15989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_POINT_SIZE_RANGE)
15999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_POINT_SIZE_RANGE:
16009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
16019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
16029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_ALIASED_LINE_WIDTH_RANGE:
16039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
16049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DEPTH_RANGE)
16059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DEPTH_RANGE:
16069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DEPTH_RANGE)
16079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MAX_VIEWPORT_DIMS)
16089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MAX_VIEWPORT_DIMS:
16099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MAX_VIEWPORT_DIMS)
16109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
16119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_LINE_WIDTH_RANGE:
16129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
16139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
16149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SMOOTH_POINT_SIZE_RANGE:
16159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
16169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 2;
16179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
16189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_CLEAR_VALUE)
16199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_CLEAR_VALUE:
16209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_CLEAR_VALUE)
16219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COLOR_WRITEMASK)
16229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COLOR_WRITEMASK:
16239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COLOR_WRITEMASK)
1624be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_FOG_COLOR)
1625be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_FOG_COLOR:
1626be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_FOG_COLOR)
1627be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
1628be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_AMBIENT:
1629be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
16309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SCISSOR_BOX)
16319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SCISSOR_BOX:
16329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SCISSOR_BOX)
16339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_VIEWPORT)
16349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_VIEWPORT:
16359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_VIEWPORT)
16369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
16379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
16389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX)
16399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX:
16409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX)
16419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
16429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
16439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
16449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX)
16459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX:
16469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX)
16479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
16489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
16499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
16509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX)
16519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX:
16529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX)
16539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
16549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
16559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
16569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 16;
16579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
16589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
16599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMPRESSED_TEXTURE_FORMATS:
16609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1661be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich            _needed = getNumCompressedTextureFormats();
16629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
16639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
16649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
16659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
16669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
16679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
16689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
16699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
16709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
16719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
16729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetIntegerv(
16739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
16749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
16759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
16769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
16779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
16789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
16799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
16809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
16819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
16829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
16839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <string.h>
16849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
16859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* const GLubyte * glGetString ( GLenum name ) */
168627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic
16879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectjstring
16889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetString
16899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint name) {
16909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    const char * chars = (const char *)glGetString((GLenum)name);
16919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jstring output = _env->NewStringUTF(chars);
16929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return output;
16939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
16949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glHint ( GLenum target, GLenum mode ) */
16959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
16969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glHint__II
16979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint mode) {
16989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glHint(
16999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
17009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
17019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
17029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
17039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelf ( GLenum pname, GLfloat param ) */
17059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
17069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelf__IF
17079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
17089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelf(
17099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
17109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
17119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
17129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
17139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
17159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
17169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelfv__I_3FI
17179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
17189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
17199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
17209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
17219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
17239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
17249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
17259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
17279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
17289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
17299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
17319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
17329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
17339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
17349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
17359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
17369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
17379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
17399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
17409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
17419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
17429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
17449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
17459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
17489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
17499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
17509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
17529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
17539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
17549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelfv(
17569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
17579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
17589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
17599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
17619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
17629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
17639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
17649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
17669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
17689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
17699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelfv__ILjava_nio_FloatBuffer_2
17709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
17719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
17729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
17739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
17749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
17769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
17779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
17789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
17799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
17809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
17819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
17829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
17849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
17859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
17869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
17879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
17899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
17909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
17919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
17939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
17949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
17959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelfv(
17979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
17989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
17999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
18009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
18029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
18039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
18049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
18069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelx ( GLenum pname, GLfixed param ) */
18089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
18099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelx__II
18109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
18119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelx(
18129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
18139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
18149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
18159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
18169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
18189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
18199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelxv__I_3II
18209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
18219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
18229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
18239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
18249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
18269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
18279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
18289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
18309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
18319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
18329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
18349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
18359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
18369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
18379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
18389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
18399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
18409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
18429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
18439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
18449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
18459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
18479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
18489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
18519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
18529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
18539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
18559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
18569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
18579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelxv(
18599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
18609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
18619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
18629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
18649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
18659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
18669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
18679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
18699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
18719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
18729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightModelxv__ILjava_nio_IntBuffer_2
18739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
18749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
18759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
18769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
18779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
18789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
18799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
18809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
18819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_TWO_SIDE)
18829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_TWO_SIDE:
18839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
18849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
18859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LIGHT_MODEL_AMBIENT)
18879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LIGHT_MODEL_AMBIENT:
18889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LIGHT_MODEL_AMBIENT)
18899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
18909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
18929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
18939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
18949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
18969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
18979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
18989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightModelxv(
19009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
19019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
19029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
19039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
19059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
19069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
19079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
19099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */
19119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
19129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightf__IIF
19139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) {
19149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightf(
19159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
19169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
19179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
19189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
19199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
19209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
19229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
19239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightfv__II_3FI
19249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
19259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
19269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
19279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
19289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
19309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
19319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
19329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
19349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
19359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
19369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
19389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
19399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
19409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
19419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
19429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
19439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
19449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
19459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
19469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
19479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
19489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
19499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
19509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
19519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
19529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
19539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
19549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
19559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
19569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
19589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
19599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
19609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
19619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
19639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
19649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
19659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
19669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
19679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
19689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
19699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
19709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
19719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
19729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
19739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
19749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
19759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
19779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
19789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
19799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
19819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
19829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
19839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
19859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
19869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
19879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightfv(
19899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
19909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
19919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
19929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
19939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
19959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
19969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
19979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
19989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
20009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
20029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
20039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightfv__IILjava_nio_FloatBuffer_2
20049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
20059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
20069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
20079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
20089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
20109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
20119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
20129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
20139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
20149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
20159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
20169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
20179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
20189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
20199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
20209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
20219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
20229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
20239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
20249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
20259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
20269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
20279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
20289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
20309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
20319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
20329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
20339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
20359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
20369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
20379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
20389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
20399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
20409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
20419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
20429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
20439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
20449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
20459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
20469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
20479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
20499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
20509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
20519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
20539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
20549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
20559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightfv(
20579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
20589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
20599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
20609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
20619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
20639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
20649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
20659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
20679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */
20699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
20709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightx__III
20719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) {
20729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightx(
20739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
20749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
20759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
20769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
20779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
20789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
20809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
20819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightxv__II_3II
20829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
20839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
20849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
20859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
20869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
20879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
20889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
20899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
20909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
20929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
20939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
20949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
20969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
20979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
20989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
20999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
21009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
21019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
21029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
21039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
21049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
21059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
21069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
21079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
21089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
21099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
21109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
21119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
21129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
21139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
21149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
21169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
21179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
21189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
21199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
21219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
21229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
21239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
21249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
21259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
21269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
21279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
21289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
21299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
21309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
21319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
21329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
21339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
21359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
21369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
21399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
21409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
21419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
21439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
21449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
21459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightxv(
21479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
21489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
21499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
21509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
21519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
21539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
21549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
21559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
21569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
21589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
21609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
21619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLightxv__IILjava_nio_IntBuffer_2
21629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
21639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
21649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
21659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
21669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
21689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
21699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
21709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
21719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
21729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
21739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
21749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
21759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
21769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
21779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
21789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
21799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
21809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
21819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
21829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
21839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
21849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
21859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
21869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
21889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
21899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
21909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
21919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
21929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
21939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
21949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
21959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
21969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
21979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
21989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
21999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
22009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
22019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
22029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
22039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
22049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
22059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
22079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
22089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
22099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
22119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
22129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
22139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLightxv(
22159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
22169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
22179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
22189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
22199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
22219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
22229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
22239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
22259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLineWidth ( GLfloat width ) */
22279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
22289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLineWidth__F
22299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat width) {
22309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLineWidth(
22319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)width
22329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
22339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
22349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLineWidthx ( GLfixed width ) */
22369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
22379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLineWidthx__I
22389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint width) {
22399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLineWidthx(
22409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)width
22419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
22429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
22439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadIdentity ( void ) */
22459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
22469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadIdentity__
22479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
22489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadIdentity();
22499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
22509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixf ( const GLfloat *m ) */
22529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
22539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixf___3FI
22549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
22559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m_base = (GLfloat *) 0;
22569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
22579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
22589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
22609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "m == null");
22619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
22629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
22649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
22659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
22669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
22689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfloat *)
22699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
22709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
22719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixf(
22739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
22749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
22759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
22779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
22789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
22799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
22809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
22829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixf ( const GLfloat *m ) */
22849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
22859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixf__Ljava_nio_FloatBuffer_2
22869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
22879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
22889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
22899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
22909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
22919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining);
22929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixf(
22939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
22949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
22959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
22969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
22979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
22999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixx ( const GLfixed *m ) */
23019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixx___3II
23039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
23049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m_base = (GLfixed *) 0;
23059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
23069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
23079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
23099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "m == null");
23109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
23119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
23139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
23149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
23159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
23179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfixed *)
23189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
23199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
23209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixx(
23229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
23239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
23249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
23269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
23279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
23289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
23299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadMatrixx ( const GLfixed *m ) */
23339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadMatrixx__Ljava_nio_IntBuffer_2
23359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
23369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
23379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
23389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
23399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining);
23419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLoadMatrixx(
23429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
23439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
23449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
23459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
23469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLogicOp ( GLenum opcode ) */
23509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLogicOp__I
23529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint opcode) {
23539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glLogicOp(
23549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)opcode
23559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
23569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */
23599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialf__IIF
23619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) {
23629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialf(
23639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
23649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
23659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
23669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
23679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
23709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
23719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialfv__II_3FI
23729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
23739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
23749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
23759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
23769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
23789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
23799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
23809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
23829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
23839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
23849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
23869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
23879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
23889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
23899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
23909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
23919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
23929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
23939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
23949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
23959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
23969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
23979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
23989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
23999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
24009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
24019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
24029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
24039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
24049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
24059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
24069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
24079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
24089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
24099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
24109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
24119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
24129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
24139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
24159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
24169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
24179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
24199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
24209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
24219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialfv(
24239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
24249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
24259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
24269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
24279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
24299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
24309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
24319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
24329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
24349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
24369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
24379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialfv__IILjava_nio_FloatBuffer_2
24389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
24399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
24409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
24419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
24429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
24449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
24459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
24469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
24479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
24489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
24499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
24509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
24519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
24529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
24539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
24549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
24559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
24569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
24579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
24589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
24599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
24609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
24619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
24629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
24639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
24649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
24659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
24669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
24679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
24689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
24699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
24709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
24719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
24739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
24749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
24759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialfv(
24779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
24789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
24799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
24809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
24819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
24839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
24849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
24859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
24879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */
24899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
24909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialx__III
24919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) {
24929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialx(
24939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
24949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
24959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
24969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
24979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
24989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
25009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
25019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialxv__II_3II
25029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
25039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
25049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
25059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
25069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
25089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
25099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
25109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
25129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
25139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
25149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
25169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
25179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
25189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
25199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
25209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
25219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
25229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
25249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
25259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
25269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
25279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
25289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
25299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
25309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
25319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
25329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
25339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
25349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
25359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
25369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
25379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
25389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
25399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
25419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
25429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
25459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
25469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
25479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
25499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
25509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
25519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialxv(
25539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
25549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
25559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
25569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
25579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
25599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
25609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
25619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
25629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
25649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
25669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
25679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMaterialxv__IILjava_nio_IntBuffer_2
25689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
25699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
25709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
25719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
25729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
25739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
25749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
25759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
25769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
25779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
25789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
25799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
25809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
25829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
25839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
25849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
25859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
25869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
25879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
25889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
25899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
25909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
25919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
25929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
25939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
25949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
25959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
25969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
25979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
25989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
25999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
26009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
26019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
26039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
26049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMaterialxv(
26079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
26089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
26099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
26109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
26119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
26139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
26149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
26159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
26179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMatrixMode ( GLenum mode ) */
26199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
26209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMatrixMode__I
26219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
26229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMatrixMode(
26239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
26249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
26259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
26269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixf ( const GLfloat *m ) */
26289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
26299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixf___3FI
26309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
26319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m_base = (GLfloat *) 0;
26329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
26339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
26349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
26369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "m == null");
26379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
26409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
26419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
26449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfloat *)
26459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
26469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
26479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixf(
26499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
26509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
26519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
26539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
26549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
26559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
26569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
26589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixf ( const GLfloat *m ) */
26609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
26619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixf__Ljava_nio_FloatBuffer_2
26629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
26639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
26649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
26659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *m = (GLfloat *) 0;
26669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining);
26689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixf(
26699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)m
26709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
26719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
26729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
26739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
26759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixx ( const GLfixed *m ) */
26779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
26789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixx___3II
26799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
26809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m_base = (GLfixed *) 0;
26819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
26829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
26839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!m_ref) {
26859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "m == null");
26869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
26899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
26909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
26919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(m_ref) - offset;
26939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m_base = (GLfixed *)
26949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
26959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = m_base + offset;
26969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixx(
26989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
26999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
27029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (m_base) {
27039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
27049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
27059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultMatrixx ( const GLfixed *m ) */
27099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultMatrixx__Ljava_nio_IntBuffer_2
27119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject m_buf) {
27129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
27139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
27149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *m = (GLfixed *) 0;
27159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining);
27179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultMatrixx(
27189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)m
27199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
27219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, m, JNI_FALSE);
27229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */
27269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultiTexCoord4f__IFFFF
27289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) {
27299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultiTexCoord4f(
27309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
27319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)s,
27329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)t,
27339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)r,
27349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)q
27359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */
27399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMultiTexCoord4x__IIIII
27419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) {
27429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glMultiTexCoord4x(
27439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
27449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)s,
27459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)t,
27469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)r,
27479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)q
27489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */
27529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormal3f__FFF
27549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) {
27559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormal3f(
27569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)nx,
27579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)ny,
27589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)nz
27599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */
27639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormal3x__III
27659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) {
27669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormal3x(
27679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)nx,
27689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)ny,
27699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)nz
27709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
27749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormalPointerBounds__IILjava_nio_Buffer_2I
27769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
27779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
27789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
27799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
27809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2781e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
2782e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
2783e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
2784e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            _env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
2785e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
2786e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
2787e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
27889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormalPointerBounds(
27899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
27909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
27919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
27929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
27939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
27949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
27959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
27979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
27989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glOrthof__FFFFFF
27999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
28009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glOrthof(
28019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)left,
28029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)right,
28039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)bottom,
28049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)top,
28059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zNear,
28069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)zFar
28079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
28119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glOrthox__IIIIII
28139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
28149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glOrthox(
28159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)left,
28169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)right,
28179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)bottom,
28189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)top,
28199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zNear,
28209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)zFar
28219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPixelStorei ( GLenum pname, GLint param ) */
28259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPixelStorei__II
28279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
28289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPixelStorei(
28299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
28309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)param
28319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointSize ( GLfloat size ) */
28359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointSize__F
28379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat size) {
28389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointSize(
28399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)size
28409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointSizex ( GLfixed size ) */
28449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointSizex__I
28469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size) {
28479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointSizex(
28489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)size
28499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */
28539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPolygonOffset__FF
28559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) {
28569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPolygonOffset(
28579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)factor,
28589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)units
28599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */
28639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPolygonOffsetx__II
28659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint factor, jint units) {
28669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPolygonOffsetx(
28679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)factor,
28689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)units
28699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
28709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPopMatrix ( void ) */
28739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPopMatrix__
28759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
28769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPopMatrix();
28779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPushMatrix ( void ) */
28809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPushMatrix__
28829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
28839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPushMatrix();
28849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
28859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */
28879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
28889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glReadPixels__IIIIIILjava_nio_Buffer_2
28899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) {
28909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
28919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
28929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
28939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pixels = (GLvoid *) 0;
28949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
28959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
28969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glReadPixels(
28979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
28989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
28999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
29009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
29019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
29029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
29039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pixels
29049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
29069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, pixels, _exception ? JNI_FALSE : JNI_TRUE);
29079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */
29119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glRotatef__FFFF
29139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) {
29149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glRotatef(
29159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)angle,
29169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
29179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
29189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z
29199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */
29239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glRotatex__IIII
29259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) {
29269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glRotatex(
29279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)angle,
29289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
29299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
29309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z
29319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */
29359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glSampleCoverage__FZ
29379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) {
29389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glSampleCoverage(
29399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampf)value,
29409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)invert
29419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */
29459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glSampleCoveragex__IZ
29479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint value, jboolean invert) {
29489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glSampleCoveragex(
29499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLclampx)value,
29509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean)invert
29519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */
29559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glScalef__FFF
29579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
29589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glScalef(
29599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
29609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
29619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z
29629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */
29669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glScalex__III
29689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
29699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glScalex(
29709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
29719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
29729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z
29739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */
29779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glScissor__IIII
29799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
29809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glScissor(
29819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
29829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
29839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
29849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height
29859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glShadeModel ( GLenum mode ) */
29899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glShadeModel__I
29919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
29929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glShadeModel(
29939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode
29949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
29959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
29969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
29979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */
29989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
29999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glStencilFunc__III
30009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) {
30019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glStencilFunc(
30029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)func,
30039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)ref,
30049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)mask
30059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glStencilMask ( GLuint mask ) */
30099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glStencilMask__I
30119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mask) {
30129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glStencilMask(
30139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)mask
30149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */
30189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glStencilOp__III
30209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) {
30219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glStencilOp(
30229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)fail,
30239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)zfail,
30249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)zpass
30259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
30299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I
30319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
30329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
30339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
30349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
30359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3036e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
3037e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
3038e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3039e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            _env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
3040e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3041e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3042e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
30439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexCoordPointerBounds(
30449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
30459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
30469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
30479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
30489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
30499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */
30539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvf__IIF
30559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
30569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvf(
30579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
30589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
30599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
30609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
30619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
30629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
30649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
30659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvfv__II_3FI
30669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
30679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
30689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
30699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
30709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
30719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
30729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
30739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
30749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
30769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
30779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
30789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
30809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
30819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
30829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
30839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
30849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
30859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
30869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
30879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
30889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
30899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
30909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
30919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
30929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
30939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
30949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
30959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
30969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
30979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
30989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
30999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
31009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
31019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
31039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
31049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
31059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
31079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
31089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
31099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvfv(
31119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
31129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
31139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
31149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
31179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
31189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
31199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
31209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
31249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvfv__IILjava_nio_FloatBuffer_2
31269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
31279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
31289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
31299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
31309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
31329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
31339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
31349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
31359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
31369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
31379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
31389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
31399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
31409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
31419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
31429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
31439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
31449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
31459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
31469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
31479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
31489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
31499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
31509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
31519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
31529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
31539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
31559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
31569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
31579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvfv(
31599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
31609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
31619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
31629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
31659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
31669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
31679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */
31719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvx__III
31739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
31749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvx(
31759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
31769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
31779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
31789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
31799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
31809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
31829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
31839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvxv__II_3II
31849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
31859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
31869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
31879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
31889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
31899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
31909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
31919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
31929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
31949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
31959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
31969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
31989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
31999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
32009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
32019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
32029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
32039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
32049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
32059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
32069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
32079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
32089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
32099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
32109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
32129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
32139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
32149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
32159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
32179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
32189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
32219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
32229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
32239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
32259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
32269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
32279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvxv(
32299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
32309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
32319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
32329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
32359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
32369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
32379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
32389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
32429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvxv__IILjava_nio_IntBuffer_2
32449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
32459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
32469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
32479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
32489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
32509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
32519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
32529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
32539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
32549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
32559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
32569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
32579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
32589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
32599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
32609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
32619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
32629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
32649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
32659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
32669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
32679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
32699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
32709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
32719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
32739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
32749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
32759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvxv(
32779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
32789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
32799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
32809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
32819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
32839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
32849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
32859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
32879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32889066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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 ) */
32899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
32909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2
32919066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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) {
32929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
32939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
32949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pixels = (GLvoid *) 0;
32959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (pixels_buf) {
32979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
32989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexImage2D(
33009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
33019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
33029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)internalformat,
33039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
33049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
33059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)border,
33069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
33079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
33089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pixels
33099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
33119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, pixels, JNI_FALSE);
33129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */
33169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterf__IIF
33189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
33199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterf(
33209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
33219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
33229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
33239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */
33279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterx__III
33299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
33309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterx(
33319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
33329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
33339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
33349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33379066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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 ) */
33389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
33409066cfe9886ac131c34d59ed0e2d287b0e3c0087The 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) {
33419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
33429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
33439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pixels = (GLvoid *) 0;
33449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (pixels_buf) {
33469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
33479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexSubImage2D(
33499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
33509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)level,
33519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)xoffset,
33529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)yoffset,
33539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
33549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height,
33559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)format,
33569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
33579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pixels
33589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
33609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, pixels, JNI_FALSE);
33619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */
33659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTranslatef__FFF
33679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
33689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTranslatef(
33699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
33709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
33719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z
33729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */
33769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTranslatex__III
33789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
33799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTranslatex(
33809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
33819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
33829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z
33839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
33849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
33879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
33889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glVertexPointerBounds__IIILjava_nio_Buffer_2I
33899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
33909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
33919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
33929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
33939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3394e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
3395e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
3396e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3397e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            _env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
3398e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3399e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3400e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
34019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glVertexPointerBounds(
34029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
34039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
34049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
34059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer,
34069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)remaining
34079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */
34119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
34129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glViewport__IIII
34139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
34149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glViewport(
34159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
34169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
34179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)width,
34189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)height
34199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent ) */
34239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
34249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glQueryMatrixxOES___3II_3II
34259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray mantissa_ref, jint mantissaOffset, jintArray exponent_ref, jint exponentOffset) {
34269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
34279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLbitfield _returnValue = -1;
34289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *mantissa_base = (GLfixed *) 0;
34299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _mantissaRemaining;
34309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *mantissa = (GLfixed *) 0;
34319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *exponent_base = (GLint *) 0;
34329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exponentRemaining;
34339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *exponent = (GLint *) 0;
34349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!mantissa_ref) {
34369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
34379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "mantissa == null");
34389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
34399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (mantissaOffset < 0) {
34419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
34429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "mantissaOffset < 0");
34439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
34449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _mantissaRemaining = _env->GetArrayLength(mantissa_ref) - mantissaOffset;
34469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_mantissaRemaining < 16) {
34479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
34489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - mantissaOffset < 16");
34499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
34509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    mantissa_base = (GLfixed *)
34529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(mantissa_ref, (jboolean *)0);
34539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    mantissa = mantissa_base + mantissaOffset;
34549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!exponent_ref) {
34569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
34579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "exponent == null");
34589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
34599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (exponentOffset < 0) {
34619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
34629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "exponentOffset < 0");
34639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
34649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _exponentRemaining = _env->GetArrayLength(exponent_ref) - exponentOffset;
34669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_exponentRemaining < 16) {
34679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
34689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - exponentOffset < 16");
34699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
34709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    exponent_base = (GLint *)
34729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(exponent_ref, (jboolean *)0);
34739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    exponent = exponent_base + exponentOffset;
34749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glQueryMatrixxOES(
34769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)mantissa,
34779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)exponent
34789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
34799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
34819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (exponent_base) {
34829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(exponent_ref, exponent_base,
34839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
34849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (mantissa_base) {
34869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(mantissa_ref, mantissa_base,
34879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
34889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
34909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
34919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent ) */
34939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
34949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2
34959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject mantissa_buf, jobject exponent_buf) {
34969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
34979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _mantissaArray = (jarray) 0;
34989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _exponentArray = (jarray) 0;
34999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLbitfield _returnValue = -1;
35009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _mantissaRemaining;
35019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *mantissa = (GLfixed *) 0;
35029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exponentRemaining;
35039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *exponent = (GLint *) 0;
35049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    mantissa = (GLfixed *)getPointer(_env, mantissa_buf, &_mantissaArray, &_mantissaRemaining);
35069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_mantissaRemaining < 16) {
35079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
35089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 16");
35099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    exponent = (GLint *)getPointer(_env, exponent_buf, &_exponentArray, &_exponentRemaining);
35129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_exponentRemaining < 16) {
35139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
35149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 16");
35159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glQueryMatrixxOES(
35189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)mantissa,
35199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)exponent
35209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
35219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
35239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_mantissaArray) {
35249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _mantissaArray, exponent, _exception ? JNI_FALSE : JNI_TRUE);
35259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_exponentArray) {
35279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _exponentArray, mantissa, _exception ? JNI_FALSE : JNI_TRUE);
35289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
35309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
35319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindBuffer ( GLenum target, GLuint buffer ) */
35339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
35349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindBuffer__II
35359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint buffer) {
35369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBindBuffer(
35379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
35389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)buffer
35399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
35409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
35419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */
35439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
35449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBufferData__IILjava_nio_Buffer_2I
35459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) {
35469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
35479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
35489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
35499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (data_buf) {
35519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
35529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBufferData(
35549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
35559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizeiptr)size,
35569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data,
35579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)usage
35589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
35599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
35609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
35619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
35639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */
35659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
35669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBufferSubData__IIILjava_nio_Buffer_2
35679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) {
35689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
35699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
35709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *data = (GLvoid *) 0;
35719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
35739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glBufferSubData(
35749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
35759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLintptr)offset,
35769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizeiptr)size,
35779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)data
35789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
35799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
35809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, data, JNI_FALSE);
35819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
35839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
35859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
35869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanef__I_3FI
35879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) {
35889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *equation_base = (GLfloat *) 0;
35899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
35909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *equation = (GLfloat *) 0;
35919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!equation_ref) {
35939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "equation == null");
35949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
35979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
35989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
35999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(equation_ref) - offset;
36019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
36029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 4");
36039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation_base = (GLfloat *)
36069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
36079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation = equation_base + offset;
36089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanef(
36109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
36119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)equation
36129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
36139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
36159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (equation_base) {
36169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
36179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
36189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
36209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
36229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
36239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanef__ILjava_nio_FloatBuffer_2
36249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
36259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
36269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
36279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *equation = (GLfloat *) 0;
36289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining);
36309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
36319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 4");
36329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanef(
36359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
36369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)equation
36379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
36389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
36409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
36419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, equation, JNI_FALSE);
36429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
36449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
36469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
36479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanex__I_3II
36489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) {
36499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *equation_base = (GLfixed *) 0;
36509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
36519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *equation = (GLfixed *) 0;
36529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!equation_ref) {
36549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "equation == null");
36559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
36589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
36599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(equation_ref) - offset;
36629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
36639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 4");
36649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation_base = (GLfixed *)
36679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
36689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation = equation_base + offset;
36699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanex(
36719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
36729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)equation
36739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
36749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
36769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (equation_base) {
36779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
36789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
36799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
36819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
36839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
36849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glClipPlanex__ILjava_nio_IntBuffer_2
36859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
36869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
36879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
36889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *equation = (GLfixed *) 0;
36899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining);
36919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 4) {
36929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 4");
36939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
36949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glClipPlanex(
36969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)plane,
36979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)equation
36989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
36999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
37019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
37029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, equation, JNI_FALSE);
37039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
37059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) */
37079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
37089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColor4ub__BBBB
37099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jbyte red, jbyte green, jbyte blue, jbyte alpha) {
37109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColor4ub(
37119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)red,
37129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)green,
37139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)blue,
37149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLubyte)alpha
37159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
37169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
37179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
37199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
37209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glColorPointer__IIII
37219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
37229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glColorPointer(
37239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
37249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
37259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
37269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
37279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
37289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
37299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
37319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
37329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteBuffers__I_3II
37339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
37349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers_base = (GLuint *) 0;
37359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
37369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
37379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!buffers_ref) {
37399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "buffers == null");
37409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
37439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
37449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(buffers_ref) - offset;
37479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
37489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < n");
37499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers_base = (GLuint *)
37529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
37539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers = buffers_base + offset;
37549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteBuffers(
37569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
37579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
37589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
37599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
37619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (buffers_base) {
37629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
37639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
37649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
37669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
37689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
37699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteBuffers__ILjava_nio_IntBuffer_2
37709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
37719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
37729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
37739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
37749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining);
37769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
37779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < n");
37789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
37799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDeleteBuffers(
37819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
37829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
37839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
37849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
37869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
37879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, buffers, JNI_FALSE);
37889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
37909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */
37929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
37939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawElements__IIII
37949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) {
37959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawElements(
37969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)mode,
37979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)count,
37989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
37999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
38009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
38049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenBuffers__I_3II
38069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
38079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
38089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers_base = (GLuint *) 0;
38099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
38109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
38119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!buffers_ref) {
38139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
38149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "buffers == null");
38159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
38189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
38199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
38209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(buffers_ref) - offset;
38239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
38249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
38259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < n");
38269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers_base = (GLuint *)
38299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
38309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers = buffers_base + offset;
38319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenBuffers(
38339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
38349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
38359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
38389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (buffers_base) {
38399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
38409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
38419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
38459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenBuffers__ILjava_nio_IntBuffer_2
38479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
38489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
38499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
38509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
38519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLuint *buffers = (GLuint *) 0;
38529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining);
38549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < n) {
38559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
38569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < n");
38579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGenBuffers(
38609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)n,
38619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint *)buffers
38629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
38659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
38669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE);
38679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
38699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
38719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
38729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBooleanv__I_3ZI
38739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) {
38749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
38759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean *params_base = (GLboolean *) 0;
38769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
38779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean *params = (GLboolean *) 0;
38789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
38809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
38819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
38829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
38859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
38869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
38879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
38889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
38909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLboolean *)
38919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
38929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
38939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetBooleanv(
38959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
38969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean *)params
38979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
38989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
39009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
39019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
39029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
39039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
39079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBooleanv__ILjava_nio_IntBuffer_2
39099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
39109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
39119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
39129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
39139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean *params = (GLboolean *) 0;
39149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining);
39169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetBooleanv(
39179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
39189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLboolean *)params
39199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
39209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
39219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
39229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
39269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBufferParameteriv__II_3II
39289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
39299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
39309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetBufferParameteriv");
39319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
39349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetBufferParameteriv__IILjava_nio_IntBuffer_2
39369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
39379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
39389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetBufferParameteriv");
39399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
39429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanef__I_3FI
39449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) {
39459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
39469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *eqn_base = (GLfloat *) 0;
39479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
39489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *eqn = (GLfloat *) 0;
39499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!eqn_ref) {
39519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
39529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "eqn == null");
39539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
39569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
39579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
39589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
39599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(eqn_ref) - offset;
39619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn_base = (GLfloat *)
39629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
39639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn = eqn_base + offset;
39649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanef(
39669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
39679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)eqn
39689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
39699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
39719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (eqn_base) {
39729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
39739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
39749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
39789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanef__ILjava_nio_FloatBuffer_2
39809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
39819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
39829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
39839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
39849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *eqn = (GLfloat *) 0;
39859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining);
39879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanef(
39889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
39899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)eqn
39909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
39919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
39929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE);
39939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
39959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
39979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
39989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanex__I_3II
39999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) {
40009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
40019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *eqn_base = (GLfixed *) 0;
40029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
40039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *eqn = (GLfixed *) 0;
40049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!eqn_ref) {
40069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
40079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "eqn == null");
40089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
40099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
40119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
40129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
40139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
40149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(eqn_ref) - offset;
40169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn_base = (GLfixed *)
40179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
40189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn = eqn_base + offset;
40199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanex(
40219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
40229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)eqn
40239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
40249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
40269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (eqn_base) {
40279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
40289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
40299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
40339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
40349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetClipPlanex__ILjava_nio_IntBuffer_2
40359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
40369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
40379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
40389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
40399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *eqn = (GLfixed *) 0;
40409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining);
40429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetClipPlanex(
40439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
40449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)eqn
40459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
40469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
40479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE);
40489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFixedv ( GLenum pname, GLfixed *params ) */
40529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
40539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFixedv__I_3II
40549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
40559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
40569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
40579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
40589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
40599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
40619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
40629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
40639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
40649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
40669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
40679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
40689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
40699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
40719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
40729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
40739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
40749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFixedv(
40769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
40779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
40789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
40799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
40819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
40829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
40839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
40849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
40869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFixedv ( GLenum pname, GLfixed *params ) */
40889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
40899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFixedv__ILjava_nio_IntBuffer_2
40909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
40919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
40929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
40939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
40949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
40959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
40969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
40979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFixedv(
40989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
40999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
41009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
41019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
41029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
41039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
41059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFloatv ( GLenum pname, GLfloat *params ) */
41079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
41089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFloatv__I_3FI
41099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
41109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
41119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
41129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
41139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
41149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
41169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
41179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
41189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
41219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
41229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
41239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
41269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
41279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
41289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
41299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFloatv(
41319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
41329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
41339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
41349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
41369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
41379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
41389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
41399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
41419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFloatv ( GLenum pname, GLfloat *params ) */
41439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
41449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFloatv__ILjava_nio_FloatBuffer_2
41459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
41469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
41479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
41489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
41499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
41509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
41529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetFloatv(
41539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
41549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
41559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
41569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
41579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
41589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
41609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
41629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
41639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightfv__II_3FI
41649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
41659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
41669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
41679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
41689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
41699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
41709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
41719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
41729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
41739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
41769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
41779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
41789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
41799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
41819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
41829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
41839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
41849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
41859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
41869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
41879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
41889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
41899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
41909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
41919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
41929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
41939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
41949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
41959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
41969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
41979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
41989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
41999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
42009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
42019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
42029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
42039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
42049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
42059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
42069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
42079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
42089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
42099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
42109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
42119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
42129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
42139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
42149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
42159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
42169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
42179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
42189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
42199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
42209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
42219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
42229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
42249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
42259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
42269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
42279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
42299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
42309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
42319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightfv(
42339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
42349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
42359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
42369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
42379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
42399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
42409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
42419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
42429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
42449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
42469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
42479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightfv__IILjava_nio_FloatBuffer_2
42489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
42499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
42509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
42519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
42529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
42539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
42559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
42569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
42579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
42589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
42599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
42609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
42619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
42629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
42639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
42649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
42659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
42669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
42679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
42689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
42699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
42709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
42719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
42729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
42739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
42749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
42759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
42769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
42779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
42789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
42799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
42809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
42819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
42829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
42839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
42849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
42859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
42869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
42879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
42889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
42899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
42909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
42919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
42929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
42939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
42949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
42959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
42969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
42979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
42989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
42999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
43009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
43019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightfv(
43039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
43049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
43059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
43069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
43079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
43099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
43109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
43119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
43139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
43159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
43169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightxv__II_3II
43179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
43189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
43199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
43209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
43219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
43229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
43249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
43259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
43269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
43279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
43299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
43309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
43319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
43329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
43349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
43359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
43369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
43379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
43389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
43399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
43409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
43419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
43429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
43439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
43449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
43459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
43469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
43479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
43489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
43499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
43509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
43519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
43529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
43539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
43549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
43559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
43569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
43579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
43589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
43599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
43609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
43619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
43629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
43639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
43649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
43659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
43669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
43679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
43689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
43699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
43709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
43719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
43729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
43739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
43749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
43759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
43779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
43789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
43799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
43809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
43829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
43839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
43849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightxv(
43869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
43879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
43889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
43899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
43909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
43929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
43939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
43949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
43959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
43969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
43979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
43989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
43999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
44009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetLightxv__IILjava_nio_IntBuffer_2
44019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
44029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
44039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
44049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
44059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
44069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
44089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
44099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
44109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_EXPONENT)
44119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_EXPONENT:
44129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_EXPONENT)
44139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_CUTOFF)
44149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_CUTOFF:
44159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_CUTOFF)
44169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_CONSTANT_ATTENUATION)
44179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_CONSTANT_ATTENUATION:
44189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_CONSTANT_ATTENUATION)
44199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_LINEAR_ATTENUATION)
44209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_LINEAR_ATTENUATION:
44219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_LINEAR_ATTENUATION)
44229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_QUADRATIC_ATTENUATION)
44239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_QUADRATIC_ATTENUATION:
44249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_QUADRATIC_ATTENUATION)
44259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
44269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPOT_DIRECTION)
44289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPOT_DIRECTION:
44299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPOT_DIRECTION)
44309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 3;
44319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
44339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
44349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
44359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
44369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
44379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
44389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
44399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
44409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
44419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
44429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
44439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
44449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
44459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
44479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
44489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
44519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
44529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
44539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetLightxv(
44569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)light,
44579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
44589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
44599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
44609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
44629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
44639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
44649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
44669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
44689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
44699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialfv__II_3FI
44709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
44719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
44729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
44739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
44749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
44759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
44779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
44789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
44799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
44829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
44839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
44849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
44859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
44869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
44879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
44889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
44899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
44909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
44919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
44929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
44939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
44949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
44959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
44969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
44979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
44989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
44999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
45009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
45019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
45029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
45039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
45049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
45059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
45069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
45079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
45089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
45099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
45109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
45119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
45129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
45139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
45149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
45169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
45179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
45189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
45199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
45219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
45229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
45239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialfv(
45259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
45269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
45279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
45289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
45299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
45319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
45329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
45339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
45349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
45369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
45389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
45399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialfv__IILjava_nio_FloatBuffer_2
45409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
45419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
45429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
45439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
45449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
45459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
45479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
45489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
45499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
45509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
45519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
45529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
45539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
45549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
45559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
45569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
45579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
45589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
45599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
45609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
45619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
45629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
45639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
45649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
45659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
45669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
45679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
45689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
45699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
45709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
45719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
45729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
45739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
45749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
45769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
45779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
45789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
45799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialfv(
45819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
45829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
45839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
45849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
45859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
45879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
45889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
45899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
45909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
45919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
45929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
45939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
45949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialxv__II_3II
45959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
45969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
45979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
45989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
45999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
46009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
46029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
46039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
46049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
46059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
46079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
46089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
46099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
46109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
46129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
46139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
46149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
46159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
46169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
46179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
46189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
46209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
46219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
46229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
46239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
46249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
46259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
46269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
46279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
46289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
46299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
46309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
46319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
46329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
46339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
46349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
46359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
46379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
46389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
46419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
46429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
46439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
46449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
46469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
46479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
46489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialxv(
46509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
46519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
46529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
46539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
46549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
46569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
46579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
46589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
46599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
46609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
46619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
46639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
46649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetMaterialxv__IILjava_nio_IntBuffer_2
46659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
46669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
46679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
46689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
46699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
46709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
46729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
46739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
46749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SHININESS)
46759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SHININESS:
46769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SHININESS)
46779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
46789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT)
46809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT:
46819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT)
46829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_DIFFUSE)
46839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_DIFFUSE:
46849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_DIFFUSE)
46859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_SPECULAR)
46869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_SPECULAR:
46879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_SPECULAR)
46889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_EMISSION)
46899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_EMISSION:
46909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_EMISSION)
46919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_AMBIENT_AND_DIFFUSE)
46929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_AMBIENT_AND_DIFFUSE:
46939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_AMBIENT_AND_DIFFUSE)
46949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
46959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
46979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
46989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
46999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
47019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
47029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
47039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetMaterialxv(
47069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)face,
47079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
47089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
47099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
47109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
47129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
47139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
47149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
47169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
47189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
47199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnviv__II_3II
47209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
47219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
47229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
47239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
47249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
47259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
47279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
47289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
47299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
47329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
47339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
47349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
47379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
47389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
47399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
47409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
47419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
47429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
47439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
47449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
47459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
47469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
47479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
47489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
47499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
47509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
47519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
47529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
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;
47619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
47629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
47639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
47649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
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    glGetTexEnviv(
47699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
47709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
47719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)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 glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
47829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
47839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnviv__IILjava_nio_IntBuffer_2
47849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, 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    GLint *params = (GLint *) 0;
47899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
47909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLint *)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_TEXTURE_ENV_MODE)
47949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
47959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
47969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
47979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
47989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
47999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
48009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
48019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
48029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
48039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
48059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
48069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
48079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
48089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
48109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
48119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
48149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
48159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
48169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
48179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnviv(
48199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
48209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
48219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
48229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
48239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
48259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
48269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
48279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
48299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
48319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
48329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnvxv__II_3II
48339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
48349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
48359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
48369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
48379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
48389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
48409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
48419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
48429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
48439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
48459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
48469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
48479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
48489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
48509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
48519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
48529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
48539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
48549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
48559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
48569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
48579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
48589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
48599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
48609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
48619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
48629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
48649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
48659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
48669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
48679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
48699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
48709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
48719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
48739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
48749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
48759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
48769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
48789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
48799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
48809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnvxv(
48829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
48839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
48849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
48859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
48869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
48889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
48899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
48909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
48919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
48929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
48939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
48959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
48969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexEnvxv__IILjava_nio_IntBuffer_2
48979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
48989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
48999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
49009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
49019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
49029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
49049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
49059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
49069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
49079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
49089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
49099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
49109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
49119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
49129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
49139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
49149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
49159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
49169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
49189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
49199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
49209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
49219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
49239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
49249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
49259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
49279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
49289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
49299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexEnvxv(
49329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)env,
49339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
49349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
49359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
49369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
49389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
49399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
49409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
49429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
49449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
49459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterfv__II_3FI
49469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
49479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
49489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
49499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
49509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
49519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
49539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
49549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
49559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
49589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
49599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
49609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
49639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
49649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
49659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 1");
49669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
49699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
49709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
49719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterfv(
49739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
49749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
49759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
49769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
49779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
49799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
49809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
49819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
49829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
49839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
49849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
49869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
49879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterfv__IILjava_nio_FloatBuffer_2
49889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
49899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
49909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
49919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
49929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
49939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
49959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
49969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
49979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 1");
49989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
49999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterfv(
50019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
50029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
50039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
50049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
50059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
50079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
50089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
50099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
50119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
50139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
50149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameteriv__II_3II
50159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
50169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
50179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
50189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
50199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
50209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
50229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
50239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
50249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
50279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
50289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
50299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
50329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
50339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
50349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 1");
50359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
50389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
50399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
50409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameteriv(
50429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
50439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
50449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
50459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
50469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
50489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
50499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
50509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
50519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
50539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
50559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
50569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameteriv__IILjava_nio_IntBuffer_2
50579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
50589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
50599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
50609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
50619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
50629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
50649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
50659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
50669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 1");
50679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameteriv(
50709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
50719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
50729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
50739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
50749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
50769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
50779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
50789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
50809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
50829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
50839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterxv__II_3II
50849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
50859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
50869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
50879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
50889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
50899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
50919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
50929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
50939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
50969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
50979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
50989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
50999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
51019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
51029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
51039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 1");
51049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
51059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
51079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
51089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
51099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterxv(
51119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
51129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
51139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
51149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
51159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
51179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
51189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
51199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _exception ? JNI_ABORT: 0);
51209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
51249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
51259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexParameterxv__IILjava_nio_IntBuffer_2
51269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
51279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _exception = 0;
51289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
51299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
51309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
51319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
51339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
51349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _exception = 1;
51359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 1");
51369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
51379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glGetTexParameterxv(
51399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
51409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
51419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
51429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
51439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
51459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
51469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
51479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
51489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsBuffer ( GLuint buffer ) */
51519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
51529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsBuffer__I
51539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint buffer) {
51549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean _returnValue;
51559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glIsBuffer(
51569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)buffer
51579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
51589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
51599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsEnabled ( GLenum cap ) */
51629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
51639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsEnabled__I
51649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint cap) {
51659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean _returnValue;
51669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glIsEnabled(
51679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)cap
51689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
51699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
51709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsTexture ( GLuint texture ) */
51739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
51749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsTexture__I
51759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint texture) {
51769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLboolean _returnValue;
51779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _returnValue = glIsTexture(
51789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLuint)texture
51799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
51809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return _returnValue;
51819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glNormalPointer ( GLenum type, GLsizei stride, GLint offset ) */
51849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
51859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glNormalPointer__III
51869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint type, jint stride, jint offset) {
51879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glNormalPointer(
51889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
51899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
51909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
51919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
51929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
51939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterf ( GLenum pname, GLfloat param ) */
51959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
51969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterf__IF
51979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
51989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterf(
51999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
52009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)param
52019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
52029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
52039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
52059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
52069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterfv__I_3FI
52079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
52089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
52099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
52109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
52119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
52139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
52149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
52179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
52189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
52219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
52229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 1");
52239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
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    glPointParameterfv(
52309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
52319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
52329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
52339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
52359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
52369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
52379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
52389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
52409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
52429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
52439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterfv__ILjava_nio_FloatBuffer_2
52449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
52459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
52469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
52479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
52489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
52509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
52519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 1");
52529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterfv(
52559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
52569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
52579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
52589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
52609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
52619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
52629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
52649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterx ( GLenum pname, GLfixed param ) */
52669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
52679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterx__II
52689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jint param) {
52699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterx(
52709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
52719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)param
52729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
52739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
52749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
52769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
52779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterxv__I_3II
52789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
52799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
52809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
52819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
52829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
52849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
52859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
52889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
52899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
52929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
52939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 1");
52949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
52959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
52969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
52979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
52989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
52999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterxv(
53019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
53029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
53039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
53069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
53079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
53089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
53099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
53139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointParameterxv__ILjava_nio_IntBuffer_2
53159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
53169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
53179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
53189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
53199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
53219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
53229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 1");
53239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
53249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointParameterxv(
53269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
53279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
53289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
53319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
53329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
53339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
53379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glPointSizePointerOES__IILjava_nio_Buffer_2
53399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf) {
53409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
53419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
53429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLvoid *pointer = (GLvoid *) 0;
53439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    pointer = (GLvoid *)getPointer(_env, pointer_buf, &_array, &_remaining);
53459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glPointSizePointerOES(
53469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
53479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
53489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLvoid *)pointer
53499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
53519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, pointer, JNI_FALSE);
53529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
53569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexCoordPointer__IIII
53589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
53599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexCoordPointer(
53609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
53619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
53629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
53639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
53649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnvi ( GLenum target, GLenum pname, GLint param ) */
53689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnvi__III
53709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
53719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnvi(
53729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
53739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
53749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)param
53759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
53769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
53779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
53799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
53809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnviv__II_3II
53819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
53829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
53839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
53849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
53859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
53879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
53889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
53899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
53919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
53929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
53939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
53949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
53959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
53969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
53979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
53989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
53999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
54009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
54019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
54029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
54039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
54049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
54059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
54069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
54079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
54089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
54099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
54109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
54119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
54129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
54139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
54149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
54159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
54169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
54189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < needed");
54199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
54209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
54229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
54239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
54249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnviv(
54269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
54279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
54289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
54299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
54309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
54329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
54339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
54349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
54359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
54379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
54399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
54409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexEnviv__IILjava_nio_IntBuffer_2
54419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
54429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
54439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
54449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
54459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
54479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int _needed;
54489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    switch (pname) {
54499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_MODE)
54509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_MODE:
54519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_MODE)
54529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_RGB)
54539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_RGB:
54549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_RGB)
54559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_COMBINE_ALPHA)
54569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_COMBINE_ALPHA:
54579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_COMBINE_ALPHA)
54589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 1;
54599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
54609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if defined(GL_TEXTURE_ENV_COLOR)
54619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GL_TEXTURE_ENV_COLOR:
54629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif // defined(GL_TEXTURE_ENV_COLOR)
54639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 4;
54649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
54659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        default:
54669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            _needed = 0;
54679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            break;
54689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < _needed) {
54709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < needed");
54719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
54729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexEnviv(
54749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
54759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
54769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
54779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
54789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
54809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
54819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
54829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
54849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
54869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
54879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterfv__II_3FI
54889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
54899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params_base = (GLfloat *) 0;
54909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
54919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
54929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
54949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
54959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
54969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
54979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
54989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
54999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
55029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
55039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 1");
55049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfloat *)
55079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
55089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
55099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterfv(
55119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
55129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
55139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
55149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
55159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
55179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
55189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
55199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
55209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
55229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
55249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
55259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterfv__IILjava_nio_FloatBuffer_2
55269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
55279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
55289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
55299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *params = (GLfloat *) 0;
55309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
55329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
55339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 1");
55349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterfv(
55379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
55389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
55399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)params
55409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
55419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
55439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
55449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
55459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
55479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */
55499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
55509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameteri__III
55519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
55529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameteri(
55539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
55549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
55559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)param
55569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
55579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
55589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
55609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
55619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameteriv__II_3II
55629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
55639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params_base = (GLint *) 0;
55649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
55659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
55669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
55689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
55699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
55729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
55739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
55769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
55779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 1");
55789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
55799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLint *)
55819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
55829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
55839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameteriv(
55859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
55869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
55879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
55889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
55899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
55919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
55929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
55939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
55949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
55959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
55969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
55989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
55999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameteriv__IILjava_nio_IntBuffer_2
56009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
56019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
56029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
56039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *params = (GLint *) 0;
56049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
56069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
56079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 1");
56089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameteriv(
56119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
56129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
56139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)params
56149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
56159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
56179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
56189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
56199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
56239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
56249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterxv__II_3II
56259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
56269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params_base = (GLfixed *) 0;
56279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
56289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
56299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!params_ref) {
56319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "params == null");
56329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
56359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
56369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(params_ref) - offset;
56399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
56409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 1");
56419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params_base = (GLfixed *)
56449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
56459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = params_base + offset;
56469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterxv(
56489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
56499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
56509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
56519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
56529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
56549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (params_base) {
56559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
56569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
56579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
56619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
56629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexParameterxv__IILjava_nio_IntBuffer_2
56639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
56649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
56659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
56669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *params = (GLfixed *) 0;
56679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
56699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 1) {
56709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 1");
56719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
56729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glTexParameterxv(
56749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)target,
56759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)pname,
56769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)params
56779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
56789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
56809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
56819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, params, JNI_FALSE);
56829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
56839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
56869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
56879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glVertexPointer__IIII
56889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
56899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glVertexPointer(
56909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)size,
56919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLenum)type,
56929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLsizei)stride,
56939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (const GLvoid *)offset
56949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
56959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
56969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glCurrentPaletteMatrixOES ( GLuint matrixpaletteindex ) */
56989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
56999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCurrentPaletteMatrixOES__I
57009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint matrixpaletteindex) {
57019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
57029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glCurrentPaletteMatrixOES");
57039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexfOES ( GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height ) */
57069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
57079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexfOES__FFFFF
57089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z, jfloat width, jfloat height) {
57099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexfOES(
57109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)x,
57119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)y,
57129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)z,
57139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)width,
57149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat)height
57159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
57169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexfvOES ( const GLfloat *coords ) */
57199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
57209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexfvOES___3FI
57219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jfloatArray coords_ref, jint offset) {
57229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *coords_base = (GLfloat *) 0;
57239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
57249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *coords = (GLfloat *) 0;
57259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
57279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "coords == null");
57289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
57319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
57329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
57359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
57369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 5");
57379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLfloat *)
57409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
57419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
57429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexfvOES(
57449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)coords
57459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
57469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
57489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
57499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
57509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
57519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexfvOES ( const GLfloat *coords ) */
57559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
57569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexfvOES__Ljava_nio_FloatBuffer_2
57579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
57589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
57599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
57609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfloat *coords = (GLfloat *) 0;
57619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = (GLfloat *)getPointer(_env, coords_buf, &_array, &_remaining);
57639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
57649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 5");
57659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
57669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexfvOES(
57689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfloat *)coords
57699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
57709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
57729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
57739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
57749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
57759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexiOES ( GLint x, GLint y, GLint z, GLint width, GLint height ) */
57789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
57799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexiOES__IIIII
57809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
57819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexiOES(
57829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)x,
57839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)y,
57849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)z,
57859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)width,
57869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint)height
57879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
57889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
57899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexivOES ( const GLint *coords ) */
57919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
57929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexivOES___3II
57939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
57949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *coords_base = (GLint *) 0;
57959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
57969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *coords = (GLint *) 0;
57979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
57989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
57999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "coords == null");
58009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
58039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
58049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
58079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
58089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 5");
58099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLint *)
58129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
58139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
58149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexivOES(
58169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)coords
58179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
58209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
58219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
58229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
58239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexivOES ( const GLint *coords ) */
58279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexivOES__Ljava_nio_IntBuffer_2
58299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
58309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
58319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
58329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLint *coords = (GLint *) 0;
58339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = (GLint *)getPointer(_env, coords_buf, &_array, &_remaining);
58359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
58369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 5");
58379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexivOES(
58409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLint *)coords
58419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
58449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
58459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
58469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexsOES ( GLshort x, GLshort y, GLshort z, GLshort width, GLshort height ) */
58509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexsOES__SSSSS
58529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jshort x, jshort y, jshort z, jshort width, jshort height) {
58539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexsOES(
58549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)x,
58559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)y,
58569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)z,
58579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)width,
58589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort)height
58599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexsvOES ( const GLshort *coords ) */
58639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
58649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexsvOES___3SI
58659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jshortArray coords_ref, jint offset) {
58669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLshort *coords_base = (GLshort *) 0;
58679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
58689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLshort *coords = (GLshort *) 0;
58699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
58719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "coords == null");
58729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
58759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
58769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
58799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
58809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 5");
58819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
58829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLshort *)
58849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
58859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
58869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexsvOES(
58889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort *)coords
58899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
58909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
58929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
58939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
58949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
58959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
58969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
58979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexsvOES ( const GLshort *coords ) */
58999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexsvOES__Ljava_nio_ShortBuffer_2
59019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
59029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
59039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
59049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLshort *coords = (GLshort *) 0;
59059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = (GLshort *)getPointer(_env, coords_buf, &_array, &_remaining);
59079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
59089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 5");
59099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexsvOES(
59129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLshort *)coords
59139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
59149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
59169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
59179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
59189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
59209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexxOES ( GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height ) */
59229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexxOES__IIIII
59249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
59259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexxOES(
59269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)x,
59279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)y,
59289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)z,
59299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)width,
59309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed)height
59319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
59329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
59339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexxvOES ( const GLfixed *coords ) */
59359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexxvOES___3II
59379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
59389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *coords_base = (GLfixed *) 0;
59399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
59409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *coords = (GLfixed *) 0;
59419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (!coords_ref) {
59439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "coords == null");
59449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (offset < 0) {
59479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "offset < 0");
59489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _remaining = _env->GetArrayLength(coords_ref) - offset;
59519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
59529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "length - offset < 5");
59539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords_base = (GLfixed *)
59569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
59579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = coords_base + offset;
59589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexxvOES(
59609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)coords
59619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
59629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
59649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (coords_base) {
59659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
59669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            JNI_ABORT);
59679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
59699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDrawTexxvOES ( const GLfixed *coords ) */
59719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDrawTexxvOES__Ljava_nio_IntBuffer_2
59739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jobject coords_buf) {
59749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jarray _array = (jarray) 0;
59759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint _remaining;
59769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    GLfixed *coords = (GLfixed *) 0;
59779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    coords = (GLfixed *)getPointer(_env, coords_buf, &_array, &_remaining);
59799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_remaining < 5) {
59809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        _env->ThrowNew(IAEClass, "remaining() < 5");
59819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        goto exit;
59829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    glDrawTexxvOES(
59849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        (GLfixed *)coords
59859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    );
59869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectexit:
59889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (_array) {
59899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        releasePointer(_env, _array, coords, JNI_FALSE);
59909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
59919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
59929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glLoadPaletteFromModelViewMatrixOES ( void ) */
59949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
59959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glLoadPaletteFromModelViewMatrixOES__
59969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this) {
59979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
59989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glLoadPaletteFromModelViewMatrixOES");
59999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
60029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMatrixIndexPointerOES__IIILjava_nio_Buffer_2
60049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf) {
60059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glMatrixIndexPointerOES");
60079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
60109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glMatrixIndexPointerOES__IIII
60129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
60139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glMatrixIndexPointerOES");
60159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
60189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glWeightPointerOES__IIILjava_nio_Buffer_2
60209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf) {
60219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glWeightPointerOES");
60239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
60269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glWeightPointerOES__IIII
60289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
60299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glWeightPointerOES");
60319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindFramebufferOES ( GLint target, GLint framebuffer ) */
60349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindFramebufferOES__II
60369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint framebuffer) {
60379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glBindFramebufferOES");
60399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBindRenderbufferOES ( GLint target, GLint renderbuffer ) */
60429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBindRenderbufferOES__II
60449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint renderbuffer) {
60459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glBindRenderbufferOES");
60479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendEquation ( GLint mode ) */
60509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendEquation__I
60529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint mode) {
60539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glBlendEquation");
60559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendEquationSeparate ( GLint modeRGB, GLint modeAlpha ) */
60589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendEquationSeparate__II
60609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint modeRGB, jint modeAlpha) {
60619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glBlendEquationSeparate");
60639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glBlendFuncSeparate ( GLint srcRGB, GLint dstRGB, GLint srcAlpha, GLint dstAlpha ) */
60669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glBlendFuncSeparate__IIII
60689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) {
60699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glBlendFuncSeparate");
60719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLint glCheckFramebufferStatusOES ( GLint target ) */
60749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jint
60759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glCheckFramebufferStatusOES__I
60769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target) {
60779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glCheckFramebufferStatusOES");
60799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return 0;
60809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteFramebuffersOES ( GLint n, GLint *framebuffers ) */
60839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteFramebuffersOES__I_3II
60859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
60869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glDeleteFramebuffersOES");
60889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteFramebuffersOES ( GLint n, GLint *framebuffers ) */
60919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
60929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2
60939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
60949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
60959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glDeleteFramebuffersOES");
60969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteRenderbuffersOES ( GLint n, GLint *renderbuffers ) */
60999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteRenderbuffersOES__I_3II
61019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
61029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glDeleteRenderbuffersOES");
61049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glDeleteRenderbuffersOES ( GLint n, GLint *renderbuffers ) */
61079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2
61099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
61109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glDeleteRenderbuffersOES");
61129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFramebufferRenderbufferOES ( GLint target, GLint attachment, GLint renderbuffertarget, GLint renderbuffer ) */
61159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFramebufferRenderbufferOES__IIII
61179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer) {
61189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glFramebufferRenderbufferOES");
61209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glFramebufferTexture2DOES ( GLint target, GLint attachment, GLint textarget, GLint texture, GLint level ) */
61239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glFramebufferTexture2DOES__IIIII
61259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint textarget, jint texture, jint level) {
61269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glFramebufferTexture2DOES");
61289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenerateMipmapOES ( GLint target ) */
61319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenerateMipmapOES__I
61339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target) {
61349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGenerateMipmapOES");
61369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenFramebuffersOES ( GLint n, GLint *framebuffers ) */
61399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenFramebuffersOES__I_3II
61419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
61429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGenFramebuffersOES");
61449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenFramebuffersOES ( GLint n, GLint *framebuffers ) */
61479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenFramebuffersOES__ILjava_nio_IntBuffer_2
61499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
61509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGenFramebuffersOES");
61529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenRenderbuffersOES ( GLint n, GLint *renderbuffers ) */
61559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenRenderbuffersOES__I_3II
61579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
61589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGenRenderbuffersOES");
61609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGenRenderbuffersOES ( GLint n, GLint *renderbuffers ) */
61639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2
61659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
61669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGenRenderbuffersOES");
61689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFramebufferAttachmentParameterivOES ( GLint target, GLint attachment, GLint pname, GLint *params ) */
61719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFramebufferAttachmentParameterivOES__III_3II
61739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jintArray params_ref, jint offset) {
61749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetFramebufferAttachmentParameterivOES");
61769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetFramebufferAttachmentParameterivOES ( GLint target, GLint attachment, GLint pname, GLint *params ) */
61799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2
61819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) {
61829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetFramebufferAttachmentParameterivOES");
61849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetRenderbufferParameterivOES ( GLint target, GLint pname, GLint *params ) */
61879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetRenderbufferParameterivOES__II_3II
61899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
61909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetRenderbufferParameterivOES");
61929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
61939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
61949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetRenderbufferParameterivOES ( GLint target, GLint pname, GLint *params ) */
61959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
61969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2
61979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
61989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
61999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetRenderbufferParameterivOES");
62009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
62039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenfv__II_3FI
62059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
62069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetTexGenfv");
62089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
62119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenfv__IILjava_nio_FloatBuffer_2
62139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
62149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetTexGenfv");
62169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGeniv ( GLint coord, GLint pname, GLint *params ) */
62199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGeniv__II_3II
62219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
62229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetTexGeniv");
62249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGeniv ( GLint coord, GLint pname, GLint *params ) */
62279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGeniv__IILjava_nio_IntBuffer_2
62299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
62309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetTexGeniv");
62329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenxv ( GLint coord, GLint pname, GLint *params ) */
62359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenxv__II_3II
62379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
62389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetTexGenxv");
62409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glGetTexGenxv ( GLint coord, GLint pname, GLint *params ) */
62439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glGetTexGenxv__IILjava_nio_IntBuffer_2
62459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
62469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glGetTexGenxv");
62489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsFramebufferOES ( GLint framebuffer ) */
62519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
62529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsFramebufferOES__I
62539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint framebuffer) {
62549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glIsFramebufferOES");
62569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return JNI_FALSE;
62579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* GLboolean glIsRenderbufferOES ( GLint renderbuffer ) */
62609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic jboolean
62619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glIsRenderbufferOES__I
62629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint renderbuffer) {
62639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glIsRenderbufferOES");
62659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return JNI_FALSE;
62669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glRenderbufferStorageOES ( GLint target, GLint internalformat, GLint width, GLint height ) */
62699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glRenderbufferStorageOES__IIII
62719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint width, jint height) {
62729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glRenderbufferStorageOES");
62749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenf ( GLint coord, GLint pname, GLfloat param ) */
62779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenf__IIF
62799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloat param) {
62809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glTexGenf");
62829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
62859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenfv__II_3FI
62879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
62889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glTexGenfv");
62909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
62939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
62949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenfv__IILjava_nio_FloatBuffer_2
62959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
62969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
62979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glTexGenfv");
62989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
62999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGeni ( GLint coord, GLint pname, GLint param ) */
63019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGeni__III
63039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
63049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
63059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glTexGeni");
63069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGeniv ( GLint coord, GLint pname, GLint *params ) */
63099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGeniv__II_3II
63119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
63129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
63139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glTexGeniv");
63149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGeniv ( GLint coord, GLint pname, GLint *params ) */
63179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGeniv__IILjava_nio_IntBuffer_2
63199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
63209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
63219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glTexGeniv");
63229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenx ( GLint coord, GLint pname, GLint param ) */
63259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenx__III
63279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
63289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
63299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glTexGenx");
63309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenxv ( GLint coord, GLint pname, GLint *params ) */
63339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenxv__II_3II
63359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
63369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
63379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glTexGenxv");
63389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* void glTexGenxv ( GLint coord, GLint pname, GLint *params ) */
63419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic void
63429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectandroid_glTexGenxv__IILjava_nio_IntBuffer_2
63439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
63449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    _env->ThrowNew(UOEClass,
63459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        "glTexGenxv");
63469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
63479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic const char *classPathName = "com/google/android/gles_jni/GLImpl";
63499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
63509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic JNINativeMethod methods[] = {
63519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"_nativeClassInit", "()V", (void*)nativeClassInit },
63529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I },
63539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF },
63549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II },
63559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindTexture", "(II)V", (void *) android_glBindTexture__II },
63569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II },
63579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClear", "(I)V", (void *) android_glClear__I },
63589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF },
63599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII },
63609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F },
63619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I },
63629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClearStencil", "(I)V", (void *) android_glClearStencil__I },
63639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I },
63649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF },
63659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII },
63669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ },
63679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I },
63689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 },
63699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
63709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII },
63719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII },
63729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCullFace", "(I)V", (void *) android_glCullFace__I },
63739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II },
63749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 },
63759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I },
63769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z },
63779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF },
63789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II },
63799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDisable", "(I)V", (void *) android_glDisable__I },
63809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I },
63819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III },
63829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 },
63839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glEnable", "(I)V", (void *) android_glEnable__I },
63849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I },
63859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFinish", "()V", (void *) android_glFinish__ },
63869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFlush", "()V", (void *) android_glFlush__ },
63879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogf", "(IF)V", (void *) android_glFogf__IF },
63889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI },
63899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 },
63909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogx", "(II)V", (void *) android_glFogx__II },
63919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II },
63929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 },
63939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFrontFace", "(I)V", (void *) android_glFrontFace__I },
63949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF },
63959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII },
63969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II },
63979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 },
63989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetError", "()I", (void *) android_glGetError__ },
63999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II },
64009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 },
64019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"_glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },
64029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glHint", "(II)V", (void *) android_glHint__II },
64039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF },
64049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI },
64059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 },
64069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelx", "(II)V", (void *) android_glLightModelx__II },
64079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II },
64089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 },
64099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightf", "(IIF)V", (void *) android_glLightf__IIF },
64109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI },
64119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 },
64129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightx", "(III)V", (void *) android_glLightx__III },
64139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II },
64149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 },
64159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLineWidth", "(F)V", (void *) android_glLineWidth__F },
64169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I },
64179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ },
64189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI },
64199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 },
64209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II },
64219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 },
64229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLogicOp", "(I)V", (void *) android_glLogicOp__I },
64239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF },
64249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI },
64259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 },
64269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialx", "(III)V", (void *) android_glMaterialx__III },
64279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II },
64289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 },
64299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I },
64309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI },
64319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 },
64329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II },
64339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 },
64349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF },
64359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII },
64369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF },
64379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormal3x", "(III)V", (void *) android_glNormal3x__III },
64389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I },
64399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF },
64409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII },
64419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II },
64429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointSize", "(F)V", (void *) android_glPointSize__F },
64439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointSizex", "(I)V", (void *) android_glPointSizex__I },
64449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF },
64459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II },
64469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPopMatrix", "()V", (void *) android_glPopMatrix__ },
64479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPushMatrix", "()V", (void *) android_glPushMatrix__ },
64489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 },
64499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF },
64509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII },
64519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ },
64529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ },
64539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glScalef", "(FFF)V", (void *) android_glScalef__FFF },
64549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glScalex", "(III)V", (void *) android_glScalex__III },
64559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glScissor", "(IIII)V", (void *) android_glScissor__IIII },
64569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glShadeModel", "(I)V", (void *) android_glShadeModel__I },
64579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III },
64589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glStencilMask", "(I)V", (void *) android_glStencilMask__I },
64599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glStencilOp", "(III)V", (void *) android_glStencilOp__III },
64609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I },
64619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF },
64629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI },
64639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 },
64649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III },
64659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II },
64669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 },
64679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 },
64689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF },
64699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III },
64709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
64719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF },
64729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTranslatex", "(III)V", (void *) android_glTranslatex__III },
64739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I },
64749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glViewport", "(IIII)V", (void *) android_glViewport__IIII },
64759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glQueryMatrixxOES", "([II[II)I", (void *) android_glQueryMatrixxOES___3II_3II },
64769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glQueryMatrixxOES", "(Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)I", (void *) android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 },
64779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II },
64789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I },
64799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 },
64809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanef", "(I[FI)V", (void *) android_glClipPlanef__I_3FI },
64819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanef__ILjava_nio_FloatBuffer_2 },
64829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanex", "(I[II)V", (void *) android_glClipPlanex__I_3II },
64839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanex__ILjava_nio_IntBuffer_2 },
64849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColor4ub", "(BBBB)V", (void *) android_glColor4ub__BBBB },
64859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glColorPointer", "(IIII)V", (void *) android_glColorPointer__IIII },
64869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II },
64879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 },
64889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII },
64899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II },
64909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 },
64919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI },
64929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 },
64939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II },
64949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 },
64959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanef", "(I[FI)V", (void *) android_glGetClipPlanef__I_3FI },
64969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 },
64979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanex", "(I[II)V", (void *) android_glGetClipPlanex__I_3II },
64989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanex__ILjava_nio_IntBuffer_2 },
64999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFixedv", "(I[II)V", (void *) android_glGetFixedv__I_3II },
65009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFixedv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedv__ILjava_nio_IntBuffer_2 },
65019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI },
65029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 },
65039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightfv", "(II[FI)V", (void *) android_glGetLightfv__II_3FI },
65049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetLightfv__IILjava_nio_FloatBuffer_2 },
65059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightxv", "(II[II)V", (void *) android_glGetLightxv__II_3II },
65069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxv__IILjava_nio_IntBuffer_2 },
65079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialfv", "(II[FI)V", (void *) android_glGetMaterialfv__II_3FI },
65089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 },
65099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialxv", "(II[II)V", (void *) android_glGetMaterialxv__II_3II },
65109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxv__IILjava_nio_IntBuffer_2 },
65119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnviv", "(II[II)V", (void *) android_glGetTexEnviv__II_3II },
65129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnviv__IILjava_nio_IntBuffer_2 },
65139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnvxv", "(II[II)V", (void *) android_glGetTexEnvxv__II_3II },
65149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 },
65159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI },
65169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 },
65179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II },
65189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 },
65199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterxv", "(II[II)V", (void *) android_glGetTexParameterxv__II_3II },
65209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 },
65219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I },
65229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I },
65239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsTexture", "(I)Z", (void *) android_glIsTexture__I },
65249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glNormalPointer", "(III)V", (void *) android_glNormalPointer__III },
65259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterf", "(IF)V", (void *) android_glPointParameterf__IF },
65269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterfv", "(I[FI)V", (void *) android_glPointParameterfv__I_3FI },
65279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glPointParameterfv__ILjava_nio_FloatBuffer_2 },
65289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterx", "(II)V", (void *) android_glPointParameterx__II },
65299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterxv", "(I[II)V", (void *) android_glPointParameterxv__I_3II },
65309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointParameterxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxv__ILjava_nio_IntBuffer_2 },
65319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glPointSizePointerOES", "(IILjava/nio/Buffer;)V", (void *) android_glPointSizePointerOES__IILjava_nio_Buffer_2 },
65329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexCoordPointer", "(IIII)V", (void *) android_glTexCoordPointer__IIII },
65339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnvi", "(III)V", (void *) android_glTexEnvi__III },
65349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnviv", "(II[II)V", (void *) android_glTexEnviv__II_3II },
65359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnviv__IILjava_nio_IntBuffer_2 },
65369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI },
65379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 },
65389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III },
65399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II },
65409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 },
65419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterxv", "(II[II)V", (void *) android_glTexParameterxv__II_3II },
65429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxv__IILjava_nio_IntBuffer_2 },
65439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glVertexPointer", "(IIII)V", (void *) android_glVertexPointer__IIII },
65449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCurrentPaletteMatrixOES", "(I)V", (void *) android_glCurrentPaletteMatrixOES__I },
65459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexfOES", "(FFFFF)V", (void *) android_glDrawTexfOES__FFFFF },
65469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexfvOES", "([FI)V", (void *) android_glDrawTexfvOES___3FI },
65479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexfvOES", "(Ljava/nio/FloatBuffer;)V", (void *) android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 },
65489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexiOES", "(IIIII)V", (void *) android_glDrawTexiOES__IIIII },
65499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexivOES", "([II)V", (void *) android_glDrawTexivOES___3II },
65509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexivOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexivOES__Ljava_nio_IntBuffer_2 },
65519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexsOES", "(SSSSS)V", (void *) android_glDrawTexsOES__SSSSS },
65529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexsvOES", "([SI)V", (void *) android_glDrawTexsvOES___3SI },
65539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexsvOES", "(Ljava/nio/ShortBuffer;)V", (void *) android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 },
65549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexxOES", "(IIIII)V", (void *) android_glDrawTexxOES__IIIII },
65559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexxvOES", "([II)V", (void *) android_glDrawTexxvOES___3II },
65569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDrawTexxvOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 },
65579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glLoadPaletteFromModelViewMatrixOES", "()V", (void *) android_glLoadPaletteFromModelViewMatrixOES__ },
65589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMatrixIndexPointerOES", "(IIILjava/nio/Buffer;)V", (void *) android_glMatrixIndexPointerOES__IIILjava_nio_Buffer_2 },
65599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glMatrixIndexPointerOES", "(IIII)V", (void *) android_glMatrixIndexPointerOES__IIII },
65609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glWeightPointerOES", "(IIILjava/nio/Buffer;)V", (void *) android_glWeightPointerOES__IIILjava_nio_Buffer_2 },
65619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glWeightPointerOES", "(IIII)V", (void *) android_glWeightPointerOES__IIII },
65629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindFramebufferOES", "(II)V", (void *) android_glBindFramebufferOES__II },
65639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBindRenderbufferOES", "(II)V", (void *) android_glBindRenderbufferOES__II },
65649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendEquation", "(I)V", (void *) android_glBlendEquation__I },
65659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendEquationSeparate", "(II)V", (void *) android_glBlendEquationSeparate__II },
65669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glBlendFuncSeparate", "(IIII)V", (void *) android_glBlendFuncSeparate__IIII },
65679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glCheckFramebufferStatusOES", "(I)I", (void *) android_glCheckFramebufferStatusOES__I },
65689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteFramebuffersOES", "(I[II)V", (void *) android_glDeleteFramebuffersOES__I_3II },
65699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2 },
65709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteRenderbuffersOES", "(I[II)V", (void *) android_glDeleteRenderbuffersOES__I_3II },
65719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glDeleteRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2 },
65729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFramebufferRenderbufferOES", "(IIII)V", (void *) android_glFramebufferRenderbufferOES__IIII },
65739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glFramebufferTexture2DOES", "(IIIII)V", (void *) android_glFramebufferTexture2DOES__IIIII },
65749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenerateMipmapOES", "(I)V", (void *) android_glGenerateMipmapOES__I },
65759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenFramebuffersOES", "(I[II)V", (void *) android_glGenFramebuffersOES__I_3II },
65769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenFramebuffersOES__ILjava_nio_IntBuffer_2 },
65779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenRenderbuffersOES", "(I[II)V", (void *) android_glGenRenderbuffersOES__I_3II },
65789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGenRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2 },
65799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFramebufferAttachmentParameterivOES", "(III[II)V", (void *) android_glGetFramebufferAttachmentParameterivOES__III_3II },
65809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetFramebufferAttachmentParameterivOES", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 },
65819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetRenderbufferParameterivOES", "(II[II)V", (void *) android_glGetRenderbufferParameterivOES__II_3II },
65829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetRenderbufferParameterivOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 },
65839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenfv", "(II[FI)V", (void *) android_glGetTexGenfv__II_3FI },
65849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexGenfv__IILjava_nio_FloatBuffer_2 },
65859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGeniv", "(II[II)V", (void *) android_glGetTexGeniv__II_3II },
65869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGeniv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGeniv__IILjava_nio_IntBuffer_2 },
65879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenxv", "(II[II)V", (void *) android_glGetTexGenxv__II_3II },
65889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glGetTexGenxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGenxv__IILjava_nio_IntBuffer_2 },
65899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsFramebufferOES", "(I)Z", (void *) android_glIsFramebufferOES__I },
65909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glIsRenderbufferOES", "(I)Z", (void *) android_glIsRenderbufferOES__I },
65919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glRenderbufferStorageOES", "(IIII)V", (void *) android_glRenderbufferStorageOES__IIII },
65929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenf", "(IIF)V", (void *) android_glTexGenf__IIF },
65939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenfv", "(II[FI)V", (void *) android_glTexGenfv__II_3FI },
65949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexGenfv__IILjava_nio_FloatBuffer_2 },
65959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGeni", "(III)V", (void *) android_glTexGeni__III },
65969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGeniv", "(II[II)V", (void *) android_glTexGeniv__II_3II },
65979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGeniv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGeniv__IILjava_nio_IntBuffer_2 },
65989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenx", "(III)V", (void *) android_glTexGenx__III },
65999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenxv", "(II[II)V", (void *) android_glTexGenxv__II_3II },
66009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{"glTexGenxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGenxv__IILjava_nio_IntBuffer_2 },
66019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
66029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
66039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectint register_com_google_android_gles_jni_GLImpl(JNIEnv *_env)
66049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
66059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int err;
66069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
66079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return err;
66089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6609