android_opengl_GLES10.cpp revision 8331f72078051cdf5a26230ee819f7ef7f9fcc24
127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/*
227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** Copyright 2009, The Android Open Source Project
427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** Licensed under the Apache License, Version 2.0 (the "License");
627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** you may not use this file except in compliance with the License.
727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** You may obtain a copy of the License at
827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**     http://www.apache.org/licenses/LICENSE-2.0
1027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
1127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** Unless required by applicable law or agreed to in writing, software
1227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** distributed under the License is distributed on an "AS IS" BASIS,
1327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** See the License for the specific language governing permissions and
1527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** limitations under the License.
1627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich*/
1727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
1827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// This source file is automatically generated
1927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
2027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <android_runtime/AndroidRuntime.h>
2127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <utils/misc.h>
2227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
2327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <assert.h>
2427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <GLES/gl.h>
25be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#include <GLES/glext.h>
2627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
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
4027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic int initialized = 0;
4127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
4227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass nioAccessClass;
4327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass bufferClass;
4427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass OOMEClass;
4527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass UOEClass;
4627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass IAEClass;
4727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass AIOOBEClass;
4827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBasePointerID;
4927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayID;
5027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayOffsetID;
5127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID positionID;
5227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID limitID;
5327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID elementSizeShiftID;
5427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
5527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* Cache method IDs each time the class is loaded. */
5627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
5727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
5827f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichnativeClassInitBuffer(JNIEnv *_env)
5927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
6027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
6127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
6227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
6327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
6427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
6527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
6627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
6727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBasePointer", "(Ljava/nio/Buffer;)J");
6827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
6927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
7027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
7127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
7227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
7327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    positionID = _env->GetFieldID(bufferClass, "position", "I");
7427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    limitID = _env->GetFieldID(bufferClass, "limit", "I");
7527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    elementSizeShiftID =
7627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
7727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
7827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
7927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
8027f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichnativeClassInit(JNIEnv *_env, jclass glImplClass)
8127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
8227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    nativeClassInitBuffer(_env);
8327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
8427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass IAEClassLocal =
8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->FindClass("java/lang/IllegalArgumentException");
8627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass OOMEClassLocal =
8727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich         _env->FindClass("java/lang/OutOfMemoryError");
8827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass UOEClassLocal =
8927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich         _env->FindClass("java/lang/UnsupportedOperationException");
9027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass AIOOBEClassLocal =
9127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich         _env->FindClass("java/lang/ArrayIndexOutOfBoundsException");
9227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
9327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
9427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
9527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
9627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal);
9727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
9827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
9927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void *
10027f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichgetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
10127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
10227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint position;
10327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint limit;
10427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint elementSizeShift;
10527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jlong pointer;
10627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint offset;
10727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    void *data;
10827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
10927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    position = _env->GetIntField(buffer, positionID);
11027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    limit = _env->GetIntField(buffer, limitID);
11127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
11227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    *remaining = (limit - position) << elementSizeShift;
11327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    pointer = _env->CallStaticLongMethod(nioAccessClass,
11427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBasePointerID, buffer);
11527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pointer != 0L) {
11627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        *array = NULL;
11727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        return (void *) (jint) pointer;
11827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
11927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
12027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
12127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBaseArrayID, buffer);
12227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    offset = _env->CallStaticIntMethod(nioAccessClass,
12327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBaseArrayOffsetID, buffer);
12427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
12527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
12627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return (void *) ((char *) data + offset);
12727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
12827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
12927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
13027f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
13127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
13227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _env->ReleasePrimitiveArrayCritical(array, data,
13327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich					   commit ? 0 : JNI_ABORT);
13427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
13527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
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
14327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// --------------------------------------------------------------------------
14427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
14527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glActiveTexture ( GLenum texture ) */
14627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
14727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glActiveTexture__I
14827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint texture) {
14927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glActiveTexture(
15027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)texture
15127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
15227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
15327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
15427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFunc ( GLenum func, GLclampf ref ) */
15527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
15627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFunc__IF
15727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jfloat ref) {
15827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glAlphaFunc(
15927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func,
16027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)ref
16127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
16227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
16327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
16427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */
16527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
16627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFuncx__II
16727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jint ref) {
16827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glAlphaFuncx(
16927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func,
17027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)ref
17127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
17227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
17327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
17427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindTexture ( GLenum target, GLuint texture ) */
17527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
17627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindTexture__II
17727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint texture) {
17827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glBindTexture(
17927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
18027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)texture
18127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
18227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
18327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
18427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */
18527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
18627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBlendFunc__II
18727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) {
18827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glBlendFunc(
18927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)sfactor,
19027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)dfactor
19127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
19227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
19327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
19427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClear ( GLbitfield mask ) */
19527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
19627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClear__I
19727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mask) {
19827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClear(
19927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLbitfield)mask
20027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
20127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
20227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
20327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */
20427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
20527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColor__FFFF
20627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
20727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearColor(
20827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)red,
20927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)green,
21027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)blue,
21127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)alpha
21227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
21327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
21427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
21527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */
21627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
21727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColorx__IIII
21827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
21927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearColorx(
22027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)red,
22127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)green,
22227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)blue,
22327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)alpha
22427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
22527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
22627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
22727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthf ( GLclampf depth ) */
22827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
22927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthf__F
23027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat depth) {
23127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearDepthf(
23227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)depth
23327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
23427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
23527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
23627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthx ( GLclampx depth ) */
23727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
23827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthx__I
23927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint depth) {
24027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearDepthx(
24127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)depth
24227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
24327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
24427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
24527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearStencil ( GLint s ) */
24627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
24727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearStencil__I
24827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint s) {
24927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearStencil(
25027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)s
25127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
25227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
25327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
25427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClientActiveTexture ( GLenum texture ) */
25527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
25627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClientActiveTexture__I
25727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint texture) {
25827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClientActiveTexture(
25927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)texture
26027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
26127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
26227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
26327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */
26427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
26527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4f__FFFF
26627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
26727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColor4f(
26827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)red,
26927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)green,
27027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)blue,
27127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)alpha
27227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
27327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
27427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
27527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */
27627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
27727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4x__IIII
27827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
27927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColor4x(
28027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)red,
28127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)green,
28227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)blue,
28327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)alpha
28427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
28527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
28627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
28727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */
28827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
28927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorMask__ZZZZ
29027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) {
29127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColorMask(
29227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)red,
29327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)green,
29427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)blue,
29527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)alpha
29627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
29727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
29827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
29927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
30027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
30127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorPointerBounds__IIILjava_nio_Buffer_2I
30227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
30327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
30427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
30527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
30627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
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    }
31427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColorPointerBounds(
31527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
31627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
31727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
31827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
31927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
32027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
32127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
32227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
32327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */
32427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
32527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2
32627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) {
32727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
32827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
32927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *data = (GLvoid *) 0;
33027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
33127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
33227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCompressedTexImage2D(
33327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
33427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
33527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)internalformat,
33627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
33727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
33827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)border,
33927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)imageSize,
34027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)data
34127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
34227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
34327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
34427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
34527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
34627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
34727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */
34827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
34927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
35027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) {
35127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
35227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
35327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *data = (GLvoid *) 0;
35427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
35527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
35627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCompressedTexSubImage2D(
35727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
35827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
35927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)xoffset,
36027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)yoffset,
36127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
36227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
36327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
36427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)imageSize,
36527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)data
36627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
36727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
36827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
36927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
37027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
37127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
37227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */
37327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
37427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexImage2D__IIIIIIII
37527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) {
37627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCopyTexImage2D(
37727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
37827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
37927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)internalformat,
38027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
38127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
38227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
38327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
38427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)border
38527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
38627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
38727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
38827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */
38927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
39027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexSubImage2D__IIIIIIII
39127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) {
39227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCopyTexSubImage2D(
39327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
39427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
39527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)xoffset,
39627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)yoffset,
39727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
39827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
39927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
40027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height
40127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
40227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
40327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
40427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCullFace ( GLenum mode ) */
40527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
40627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCullFace__I
40727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
40827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCullFace(
40927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
41027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
41127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
41227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
41327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
41427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
41527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__I_3II
41627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
41727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures_base = (GLuint *) 0;
41827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
41927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
42027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
42127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!textures_ref) {
42227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "textures == null");
42327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
42427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
42527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
42627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
42727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
42827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
42927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(textures_ref) - offset;
43027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
43127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < n");
43227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
43327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
43427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures_base = (GLuint *)
43527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
43627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures = textures_base + offset;
43727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
43827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDeleteTextures(
43927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
44027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
44127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
44227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
44327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
44427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (textures_base) {
44527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
44827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
44927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
45027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
45127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
45227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__ILjava_nio_IntBuffer_2
45327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
45427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
45527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
45627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
45727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
45827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining);
45927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
46027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < n");
46127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
46227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
46327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDeleteTextures(
46427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
46527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
46627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
46827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
47027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, textures, JNI_FALSE);
47127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
47227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
47327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
47427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthFunc ( GLenum func ) */
47527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
47627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthFunc__I
47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func) {
47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthFunc(
47927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func
48027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
48127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
48227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
48327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthMask ( GLboolean flag ) */
48427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
48527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthMask__Z
48627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jboolean flag) {
48727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthMask(
48827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)flag
48927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
49027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
49127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
49227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */
49327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
49427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangef__FF
49527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthRangef(
49727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)zNear,
49827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)zFar
49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
50127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
50227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */
50327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
50427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangex__II
50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint zNear, jint zFar) {
50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthRangex(
50727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)zNear,
50827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)zFar
50927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
51027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
51127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisable ( GLenum cap ) */
51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
51427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisable__I
51527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint cap) {
51627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDisable(
51727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)cap
51827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
51927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
52027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
52127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisableClientState ( GLenum array ) */
52227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
52327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisableClientState__I
52427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint array) {
52527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDisableClientState(
52627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)array
52727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
52827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
52927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
53027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */
53127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
53227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawArrays__III
53327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) {
53427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawArrays(
53527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode,
53627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)first,
53727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)count
53827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
53927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
54027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
54127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */
54227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
54327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawElements__IIILjava_nio_Buffer_2
54427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) {
54527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
54627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
54727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *indices = (GLvoid *) 0;
54827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
54927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining);
55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < count) {
55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(AIOOBEClass, "remaining() < count");
55227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
55327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
55427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawElements(
55527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode,
55627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)count,
55727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
55827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)indices
55927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
56027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
56127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
56227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
56327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, indices, JNI_FALSE);
56427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
56527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
56627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
56727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnable ( GLenum cap ) */
56827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
56927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnable__I
57027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint cap) {
57127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glEnable(
57227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)cap
57327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
57427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
57527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
57627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnableClientState ( GLenum array ) */
57727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
57827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnableClientState__I
57927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint array) {
58027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glEnableClientState(
58127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)array
58227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
58327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
58427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
58527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFinish ( void ) */
58627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFinish__
58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
58927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFinish();
59027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
59127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
59227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFlush ( void ) */
59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
59427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFlush__
59527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
59627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFlush();
59727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
59827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
59927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogf ( GLenum pname, GLfloat param ) */
60027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogf__IF
60227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
60327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogf(
60427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
60527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
60827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
60927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */
61027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
61127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__I_3FI
61227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
61327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
61627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
61727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
61827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
61927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
62227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
62327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
62427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
62527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
62627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
62927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
63027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
63127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
63227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
63827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
63927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
64027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
64127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
64227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
64327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
64427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
64527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
64627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
64727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
64827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
64927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
65027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
65127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
65227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
65327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
65427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
65527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
65627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
65727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
65827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
65927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogfv(
66027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
66127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
66227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
66327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
66427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
66527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
66627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
66727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
66827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
66927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
67027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
67127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */
67227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
67327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__ILjava_nio_FloatBuffer_2
67427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
67527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
67627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
67727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
67827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
67927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
68027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
68127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
68227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
68327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
68427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
68527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
68627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
68727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
68827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
68927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
69027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
69127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
69227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
69327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
69427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
69527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
69627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
69727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
69827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
69927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
70027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
70127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
70227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
70327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
70427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
70527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
70627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
70727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
70827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
70927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogfv(
71027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
71127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
71227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
71327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
71427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
71527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
71627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
71727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
71827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
71927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
72027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogx ( GLenum pname, GLfixed param ) */
72127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogx__II
72327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
72427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogx(
72527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
72627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
72727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
72827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
72927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
73027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */
73127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__I_3II
73327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
73427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
73527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
73627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
73727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
73827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
73927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
74327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
74427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
74527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
74627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
74727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
75027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
75127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
75227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
75327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
75427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
75527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
75627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
75727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
75827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
75927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
76027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
76227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
76327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
76427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
76527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
76627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
76727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
77027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
77127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
77227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
77327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
77427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
77627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
77727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
77827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
77927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
78027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogxv(
78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
78427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
78527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
78627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
78727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
79227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */
79327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
79427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__ILjava_nio_IntBuffer_2
79527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
79627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
79727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
79827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
79927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
80027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
80127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
80227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
80327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
80427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
80527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
80627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
80727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
80827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
80927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
81027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
81127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
81227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
81327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
81427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
81527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
81627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
81727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
81827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
81927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
82027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
82127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
82227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
82327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
82427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
82527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
82627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
82727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
82827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
82927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
83027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogxv(
83127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
83227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
83327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
83427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
83527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
83627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
83727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
83827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
84027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
84127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrontFace ( GLenum mode ) */
84227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
84327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrontFace__I
84427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
84527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFrontFace(
84627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
84727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
84827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
84927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
85027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
85127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
85227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumf__FFFFFF
85327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
85427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFrustumf(
85527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)left,
85627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)right,
85727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)bottom,
85827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)top,
85927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zNear,
86027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zFar
86127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
86227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
86327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
86427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
86527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
86627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumx__IIIIII
86727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
86827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFrustumx(
86927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)left,
87027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)right,
87127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)bottom,
87227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)top,
87327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zNear,
87427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zFar
87527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
87627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
87727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
87827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */
87927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
88027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__I_3II
88127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
88227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
88327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures_base = (GLuint *) 0;
88427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
88727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!textures_ref) {
88827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
88927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "textures == null");
89027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
89127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
89227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
89327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
89427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
89527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
89627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
89727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(textures_ref) - offset;
89827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
89927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
90027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < n");
90127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
90227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
90327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures_base = (GLuint *)
90427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
90527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures = textures_base + offset;
90627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
90727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGenTextures(
90827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
90927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
91027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
91127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
91227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
91327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (textures_base) {
91427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
91527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
91627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
91727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
91827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
91927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */
92027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
92127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__ILjava_nio_IntBuffer_2
92227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
92327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
92427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
92527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
92627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
92727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
92827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining);
92927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
93027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
93127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < n");
93227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
93327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGenTextures(
93527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
93627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
93727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
93827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
93927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
94027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
94127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE);
94227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
94327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
94427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
94527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLenum glGetError ( void ) */
94627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jint
94727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetError__
94827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
94927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLenum _returnValue;
95027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _returnValue = glGetError();
95127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return _returnValue;
95227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
95327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
95427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */
95527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
95627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__I_3II
95727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
95827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
95927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params_base = (GLint *) 0;
96027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
96127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
96227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
96327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
96427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
96527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
96627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
96727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
96827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
96927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
97027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
97127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
97227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
97327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
97427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
97527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
97627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_BITS)
97727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_BITS:
97827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_BITS)
97927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_FUNC)
98027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_TEST_FUNC:
98127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_FUNC)
98227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_REF)
98327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_TEST_REF:
98427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_REF)
98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLEND_DST)
98627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_BLEND_DST:
98727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLEND_DST)
98827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLUE_BITS)
98927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_BLUE_BITS:
99027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLUE_BITS)
99127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
99227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_BUFFER_BINDING:
99327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
99427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_SIZE)
99527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_SIZE:
99627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_SIZE)
99727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_STRIDE)
99827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_STRIDE:
99927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_STRIDE)
100027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_TYPE)
100127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_TYPE:
100227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_TYPE)
100327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CULL_FACE)
100427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CULL_FACE:
100527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CULL_FACE)
100627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_BITS)
100727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_BITS:
100827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_BITS)
100927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_CLEAR_VALUE)
101027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_CLEAR_VALUE:
101127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_CLEAR_VALUE)
101227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_FUNC)
101327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_FUNC:
101427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_FUNC)
101527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_WRITEMASK)
101627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_WRITEMASK:
101727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_WRITEMASK)
101827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
101927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
102127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
102227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
102327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
102427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
102527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
102627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
102727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
102827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
102927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
103027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FRONT_FACE)
103127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FRONT_FACE:
103227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FRONT_FACE)
103327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_GREEN_BITS)
103427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_GREEN_BITS:
103527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_GREEN_BITS)
103627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
103727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
103827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
103927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
104027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
104127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#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)
104827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
104927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
105027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
105127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_SMOOTH_HINT)
105227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINE_SMOOTH_HINT:
105327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_SMOOTH_HINT)
105427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_WIDTH)
105527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINE_WIDTH:
105627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_WIDTH)
105727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LOGIC_OP_MODE)
105827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LOGIC_OP_MODE:
105927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LOGIC_OP_MODE)
106027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
106127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
106227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
106327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
106427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
106527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
106627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
106727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
106827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
106927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
107027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
107127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
107227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_MODE)
107327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_MODE:
107427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_MODE)
107527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_CLIP_PLANES)
107627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_CLIP_PLANES:
107727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_CLIP_PLANES)
107827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_INDICES)
107927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_ELEMENTS_INDICES:
108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_INDICES)
108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_VERTICES)
108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_ELEMENTS_VERTICES:
108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_VERTICES)
108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_LIGHTS)
108527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_LIGHTS:
108627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_LIGHTS)
108727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
108827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_MODELVIEW_STACK_DEPTH:
108927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
109027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PALETTE_MATRICES_OES)
109127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_PALETTE_MATRICES_OES:
109227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
109327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
109427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_PROJECTION_STACK_DEPTH:
109527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
109627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_SIZE)
109727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_SIZE:
109827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_SIZE)
109927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
110027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_STACK_DEPTH:
110127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
110227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_UNITS)
110327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_UNITS:
110427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_UNITS)
110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VERTEX_UNITS_OES)
110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_VERTEX_UNITS_OES:
110727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VERTEX_UNITS_OES)
110827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_STACK_DEPTH)
110927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_STACK_DEPTH:
111027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_STACK_DEPTH)
111127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
111227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_BUFFER_BINDING:
111327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
111427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_STRIDE)
111527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_STRIDE:
111627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_STRIDE)
111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_TYPE)
111827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_TYPE:
111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_TYPE)
112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
112127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
112227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
112327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PACK_ALIGNMENT)
112427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PACK_ALIGNMENT:
112527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PACK_ALIGNMENT)
112627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
112727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PERSPECTIVE_CORRECTION_HINT:
112827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
112927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE)
113027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE:
113127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE)
113227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
113327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
113427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
113527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
113627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
113727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
113827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
113927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_TYPE_OES:
114027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
114127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SMOOTH_HINT)
114227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SMOOTH_HINT:
114327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SMOOTH_HINT)
114427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_FACTOR)
114527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POLYGON_OFFSET_FACTOR:
114627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_FACTOR)
114727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_UNITS)
114827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POLYGON_OFFSET_UNITS:
114927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_UNITS)
115027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_STACK_DEPTH)
115127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_STACK_DEPTH:
115227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_STACK_DEPTH)
115327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_RED_BITS)
115427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_RED_BITS:
115527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_RED_BITS)
115627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHADE_MODEL)
115727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHADE_MODEL:
115827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHADE_MODEL)
115927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_BITS)
116027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_BITS:
116127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_BITS)
116227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_CLEAR_VALUE)
116327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_CLEAR_VALUE:
116427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_CLEAR_VALUE)
116527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FAIL)
116627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_FAIL:
116727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FAIL)
116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FUNC)
116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_FUNC:
117027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FUNC)
117127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
117227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_PASS_DEPTH_FAIL:
117327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
117427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_PASS)
117527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_PASS_DEPTH_PASS:
117627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
117727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_REF)
117827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_REF:
117927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_REF)
118027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_VALUE_MASK)
118127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_VALUE_MASK:
118227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_VALUE_MASK)
118327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_WRITEMASK)
118427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_WRITEMASK:
118527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_WRITEMASK)
118627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SUBPIXEL_BITS)
118727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SUBPIXEL_BITS:
118827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SUBPIXEL_BITS)
118927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_BINDING_2D)
119027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_BINDING_2D:
119127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_BINDING_2D)
119227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
119327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
119427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
119527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
119627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_SIZE:
119727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
119827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
119927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_STRIDE:
120027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
120127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
120227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_TYPE:
120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_STACK_DEPTH)
120527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_STACK_DEPTH:
120627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_STACK_DEPTH)
120727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_UNPACK_ALIGNMENT)
120827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_UNPACK_ALIGNMENT:
120927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_UNPACK_ALIGNMENT)
121027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
121127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_BUFFER_BINDING:
121227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
121327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_SIZE)
121427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_SIZE:
121527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_SIZE)
121627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_STRIDE)
121727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_STRIDE:
121827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_STRIDE)
121927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_TYPE)
122027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_TYPE:
122127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_TYPE)
122227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
122327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
122427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
122527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
122627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_SIZE_OES:
122727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
122827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
122927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_STRIDE_OES:
123027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
123127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
123227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_TYPE_OES:
123327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
123427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
123527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
123627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_POINT_SIZE_RANGE)
123727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALIASED_POINT_SIZE_RANGE:
123827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
123927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
124027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALIASED_LINE_WIDTH_RANGE:
124127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
124227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_RANGE)
124327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_RANGE:
124427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_RANGE)
124527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VIEWPORT_DIMS)
124627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_VIEWPORT_DIMS:
124727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VIEWPORT_DIMS)
124827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
124927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SMOOTH_LINE_WIDTH_RANGE:
125027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
125227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SMOOTH_POINT_SIZE_RANGE:
125327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
125427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 2;
125527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
125627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_CLEAR_VALUE)
125727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_CLEAR_VALUE:
125827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_CLEAR_VALUE)
125927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_WRITEMASK)
126027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_WRITEMASK:
126127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#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)
126827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SCISSOR_BOX)
126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SCISSOR_BOX:
127027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SCISSOR_BOX)
127127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VIEWPORT)
127227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VIEWPORT:
127327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VIEWPORT)
127427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
127527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
127627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX)
127727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_MATRIX:
127827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX)
127927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
128027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
128127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
128227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX)
128327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_MATRIX:
128427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX)
128527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
128627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
128727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
128827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX)
128927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_MATRIX:
129027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX)
129127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
129227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
129327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
129427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 16;
129527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
129627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
129727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMPRESSED_TEXTURE_FORMATS:
129827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1299be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich            _needed = getNumCompressedTextureFormats();
130027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
130127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
130227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
130327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
130427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
130527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
130627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
130727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
130827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
130927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
131027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLint *)
131127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
131227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
131327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
131427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetIntegerv(
131527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
131627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
131727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
131927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
132027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
132127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
132227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
132327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
132427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
132527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
132627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */
132727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
132827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__ILjava_nio_IntBuffer_2
132927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
133027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
133127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
133227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
133327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
133427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
133527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
133627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
133727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
133827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_BITS)
133927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_BITS:
134027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_BITS)
134127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_FUNC)
134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_TEST_FUNC:
134327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_FUNC)
134427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_REF)
134527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_TEST_REF:
134627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_REF)
134727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLEND_DST)
134827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_BLEND_DST:
134927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLEND_DST)
135027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLUE_BITS)
135127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_BLUE_BITS:
135227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLUE_BITS)
135327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
135427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_BUFFER_BINDING:
135527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
135627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_SIZE)
135727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_SIZE:
135827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_SIZE)
135927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_STRIDE)
136027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_STRIDE:
136127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_STRIDE)
136227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_TYPE)
136327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_TYPE:
136427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_TYPE)
136527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CULL_FACE)
136627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CULL_FACE:
136727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CULL_FACE)
136827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_BITS)
136927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_BITS:
137027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_BITS)
137127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_CLEAR_VALUE)
137227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_CLEAR_VALUE:
137327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_CLEAR_VALUE)
137427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_FUNC)
137527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_FUNC:
137627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_FUNC)
137727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_WRITEMASK)
137827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_WRITEMASK:
137927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_WRITEMASK)
138027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
138127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
138327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
138427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
138527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
138627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
138727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
138827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
138927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
139027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
139127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
139227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FRONT_FACE)
139327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FRONT_FACE:
139427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FRONT_FACE)
139527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_GREEN_BITS)
139627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_GREEN_BITS:
139727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_GREEN_BITS)
139827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
139927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
140027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
140127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
140227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
140327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#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)
141027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
141127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
141227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
141327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_SMOOTH_HINT)
141427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINE_SMOOTH_HINT:
141527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_SMOOTH_HINT)
141627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_WIDTH)
141727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINE_WIDTH:
141827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_WIDTH)
141927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LOGIC_OP_MODE)
142027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LOGIC_OP_MODE:
142127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LOGIC_OP_MODE)
142227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
142327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
142427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
142527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
142627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
142727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
142827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
142927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
143027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
143127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
143227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
143327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
143427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_MODE)
143527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_MODE:
143627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_MODE)
143727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_CLIP_PLANES)
143827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_CLIP_PLANES:
143927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_CLIP_PLANES)
144027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_INDICES)
144127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_ELEMENTS_INDICES:
144227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_INDICES)
144327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_VERTICES)
144427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_ELEMENTS_VERTICES:
144527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_VERTICES)
144627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_LIGHTS)
144727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_LIGHTS:
144827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_LIGHTS)
144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
145027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_MODELVIEW_STACK_DEPTH:
145127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
145227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PALETTE_MATRICES_OES)
145327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_PALETTE_MATRICES_OES:
145427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
145527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
145627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_PROJECTION_STACK_DEPTH:
145727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
145827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_SIZE)
145927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_SIZE:
146027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_SIZE)
146127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
146227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_STACK_DEPTH:
146327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
146427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_UNITS)
146527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_UNITS:
146627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_UNITS)
146727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VERTEX_UNITS_OES)
146827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_VERTEX_UNITS_OES:
146927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VERTEX_UNITS_OES)
147027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_STACK_DEPTH)
147127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_STACK_DEPTH:
147227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_STACK_DEPTH)
147327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_BUFFER_BINDING:
147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_STRIDE)
147727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_STRIDE:
147827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_STRIDE)
147927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_TYPE)
148027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_TYPE:
148127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_TYPE)
148227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
148327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
148427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
148527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PACK_ALIGNMENT)
148627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PACK_ALIGNMENT:
148727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PACK_ALIGNMENT)
148827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
148927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PERSPECTIVE_CORRECTION_HINT:
149027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
149127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE)
149227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE:
149327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE)
149427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
149527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
149627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
149727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
149827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
149927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
150027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
150127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_TYPE_OES:
150227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
150327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SMOOTH_HINT)
150427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SMOOTH_HINT:
150527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SMOOTH_HINT)
150627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_FACTOR)
150727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POLYGON_OFFSET_FACTOR:
150827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_FACTOR)
150927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_UNITS)
151027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POLYGON_OFFSET_UNITS:
151127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_UNITS)
151227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_STACK_DEPTH)
151327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_STACK_DEPTH:
151427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_STACK_DEPTH)
151527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_RED_BITS)
151627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_RED_BITS:
151727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_RED_BITS)
151827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHADE_MODEL)
151927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHADE_MODEL:
152027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHADE_MODEL)
152127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_BITS)
152227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_BITS:
152327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_BITS)
152427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_CLEAR_VALUE)
152527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_CLEAR_VALUE:
152627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_CLEAR_VALUE)
152727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FAIL)
152827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_FAIL:
152927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FAIL)
153027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FUNC)
153127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_FUNC:
153227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FUNC)
153327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
153427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_PASS_DEPTH_FAIL:
153527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
153627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_PASS)
153727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_PASS_DEPTH_PASS:
153827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
153927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_REF)
154027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_REF:
154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_REF)
154227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_VALUE_MASK)
154327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_VALUE_MASK:
154427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_VALUE_MASK)
154527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_WRITEMASK)
154627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_WRITEMASK:
154727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_WRITEMASK)
154827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SUBPIXEL_BITS)
154927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SUBPIXEL_BITS:
155027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SUBPIXEL_BITS)
155127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_BINDING_2D)
155227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_BINDING_2D:
155327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_BINDING_2D)
155427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
155627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
155727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
155827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_SIZE:
155927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
156027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
156127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_STRIDE:
156227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
156327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
156427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_TYPE:
156527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
156627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_STACK_DEPTH)
156727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_STACK_DEPTH:
156827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_STACK_DEPTH)
156927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_UNPACK_ALIGNMENT)
157027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_UNPACK_ALIGNMENT:
157127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_UNPACK_ALIGNMENT)
157227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
157327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_BUFFER_BINDING:
157427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
157527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_SIZE)
157627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_SIZE:
157727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_SIZE)
157827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_STRIDE)
157927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_STRIDE:
158027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_STRIDE)
158127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_TYPE)
158227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_TYPE:
158327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_TYPE)
158427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
158527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
158627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
158727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
158827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_SIZE_OES:
158927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
159027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
159127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_STRIDE_OES:
159227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
159327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
159427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_TYPE_OES:
159527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
159727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
159827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_POINT_SIZE_RANGE)
159927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALIASED_POINT_SIZE_RANGE:
160027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
160127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
160227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALIASED_LINE_WIDTH_RANGE:
160327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
160427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_RANGE)
160527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_RANGE:
160627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_RANGE)
160727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VIEWPORT_DIMS)
160827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_VIEWPORT_DIMS:
160927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VIEWPORT_DIMS)
161027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
161127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SMOOTH_LINE_WIDTH_RANGE:
161227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
161327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
161427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SMOOTH_POINT_SIZE_RANGE:
161527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
161627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 2;
161727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
161827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_CLEAR_VALUE)
161927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_CLEAR_VALUE:
162027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_CLEAR_VALUE)
162127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_WRITEMASK)
162227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_WRITEMASK:
162327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#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)
163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SCISSOR_BOX)
163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SCISSOR_BOX:
163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SCISSOR_BOX)
163327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VIEWPORT)
163427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VIEWPORT:
163527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VIEWPORT)
163627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
163727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
163827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX)
163927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_MATRIX:
164027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX)
164127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
164227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
164327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
164427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX)
164527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_MATRIX:
164627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX)
164727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
164827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
164927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
165027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX)
165127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_MATRIX:
165227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX)
165327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
165427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
165527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
165627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 16;
165727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
165827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
165927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMPRESSED_TEXTURE_FORMATS:
166027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1661be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich            _needed = getNumCompressedTextureFormats();
166227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
166327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
166427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
166527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
166627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
166727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
166827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
166927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
167027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
167127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
167227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetIntegerv(
167327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
167427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
167627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
167727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
167827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
167927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
168027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
168127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
168227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
168327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <string.h>
168427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
168527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* const GLubyte * glGetString ( GLenum name ) */
168627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic
168727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichjstring
168827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetString
168927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint name) {
169027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    const char * chars = (const char *)glGetString((GLenum)name);
169127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jstring output = _env->NewStringUTF(chars);
169227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return output;
169327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
169427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glHint ( GLenum target, GLenum mode ) */
169527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
169627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glHint__II
169727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint mode) {
169827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glHint(
169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
170027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
170127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
170227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
170327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
170427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelf ( GLenum pname, GLfloat param ) */
170527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelf__IF
170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
170827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelf(
170927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
171027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
171127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
171227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
171327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
171427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
171527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
171627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__I_3FI
171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
171827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
171927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
172027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
172127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
172227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
172327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
172427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
172527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
172627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
172727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
172827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
172927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
173027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
173127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
173227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
173327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
173427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
173527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
173627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
173727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
173827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
173927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
174027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
174127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
174227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
174327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
174427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
174527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
174627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
174727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
174827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
174927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
175027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
175327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
175427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
175527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelfv(
175627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
175727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
175827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
175927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
176027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
176127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
176227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
176327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
176427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
176527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
176627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
176727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
176827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__ILjava_nio_FloatBuffer_2
177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
177127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
177227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
177427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
177527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
177627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
177727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
177827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
177927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
178227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
178327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
178427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
178527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
178627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
178727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
178827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
178927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
179027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
179127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
179227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
179327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
179427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
179527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
179627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelfv(
179727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
179827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
179927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
180027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
180127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
180227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
180327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
180427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
180527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
180627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
180727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelx ( GLenum pname, GLfixed param ) */
180827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
180927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelx__II
181027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
181127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelx(
181227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
181327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
181427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
181527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
181627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
181727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
181827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
181927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__I_3II
182027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
182127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
182227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
182327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
182427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
182527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
182927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
183027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
183127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
183227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
183327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
183427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
183527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
183627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
183727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
183827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
183927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
184027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
184127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
184227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
184327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
184427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
184527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
184627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
184727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
184827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
185027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
185127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
185227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
185327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
185427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
185527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
185627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
185727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
185827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelxv(
185927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
186027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
186127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
186227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
186327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
186427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
186527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
186627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
186727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
186827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
186927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
187027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
187127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
187227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__ILjava_nio_IntBuffer_2
187327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
187427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
187527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
187627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
187727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
187827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
187927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
188027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
188127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
188227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
188327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
188427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
188527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
188627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
188727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
188827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
188927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
189027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
189227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
189327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
189427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
189527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
189627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
189727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
189827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
189927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelxv(
190027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
190127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
190227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
190327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
190427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
190527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
190627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
190727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
190827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
190927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
191027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */
191127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightf__IIF
191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) {
191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightf(
191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
191827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
191927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
192027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
192127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
192227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
192327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__II_3FI
192427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
192727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
192827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
192927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
193027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
193127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
193227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
193327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
193427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
193527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
193727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
193827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
193927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
194027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
194227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
194327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
194427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
194527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
194627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
194727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
194827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
194927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
195127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
195227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
195327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
195627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
195727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
195827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
195927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
196027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
196127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
196227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
196427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
196527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
196627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
196727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
196827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
196927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
197027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
197127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
197227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
197327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
197427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
197527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
197627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
197727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
197827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
197927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
198027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
198127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
198227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
198327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
198427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
198527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
198627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
198727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
198827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightfv(
198927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
199027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
199127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
199227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
199327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
199427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
199527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
199627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
199727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
199827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
199927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
200027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
200127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
200227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
200327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__IILjava_nio_FloatBuffer_2
200427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
200527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
200627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
200727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
200927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
201027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
201127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
201227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
201327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
201427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
201527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
201627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
201727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
201827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
201927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
202027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
202127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
202227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
202327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
202427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
202527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
202727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
202827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
202927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
203027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
203127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
203227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
203327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
203427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
203527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
203627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
203727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
203827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
203927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
204127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
204227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
204327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
204427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
204527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
204627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
204727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
204827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
204927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
205027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
205127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
205227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
205327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
205427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
205527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
205627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightfv(
205727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
205927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
206027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
206127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
206227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
206327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
206427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
206527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
206627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
206727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */
206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
207027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightx__III
207127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) {
207227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightx(
207327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
207427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
207527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
207627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
207727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
207827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
208127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__II_3II
208227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
208327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
208427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
208527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
208627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
208727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
208827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
208927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
209027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
209127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
209227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
209327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
209427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
209527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
209627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
209727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
209827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
209927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
210027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
210127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
210227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
210327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
210427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
210527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
210627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
210727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
210827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
210927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
211027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
211127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
211227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
211327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
211427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
211527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
211627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
211727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
211827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
211927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
212027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
212127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
212227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
212327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
212427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
212527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
212627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
212727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
212827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
212927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
213027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
213127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
213227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
213427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
213527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
213627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
213927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
214027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
214127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
214227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
214327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
214427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
214527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
214627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightxv(
214727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
214827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
214927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
215027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
215127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
215227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
215327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
215427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
215527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
215627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
215727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
215827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
215927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
216027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
216127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__IILjava_nio_IntBuffer_2
216227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
216327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
216427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
216527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
216627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
216727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
216927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
217027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
217227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
217327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
217427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
217527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
217627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
217727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
217827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
217927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
218027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
218127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
218227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
218327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
218427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
218527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
218627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
218727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
218827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
218927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
219027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
219127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
219227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
219327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
219427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
219527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
219627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
219727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
219827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
219927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
220027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
220127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
220227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
220327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
220427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
220527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
220627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
220727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
220827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
220927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
221027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
221127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
221227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightxv(
221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
221827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
221927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
222027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
222127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
222227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
222327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
222427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
222527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
222627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidth ( GLfloat width ) */
222727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
222827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidth__F
222927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat width) {
223027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLineWidth(
223127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)width
223227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
223327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
223427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
223527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidthx ( GLfixed width ) */
223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
223727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidthx__I
223827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint width) {
223927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLineWidthx(
224027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)width
224127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
224227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
224327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
224427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadIdentity ( void ) */
224527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
224627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadIdentity__
224727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
224827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadIdentity();
224927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
225027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
225127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */
225227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
225327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf___3FI
225427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
225527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m_base = (GLfloat *) 0;
225627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
225727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
225827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
225927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
226027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "m == null");
226127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
226227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
226327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
226427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
226527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
226627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
226727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
226827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfloat *)
226927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
227227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixf(
227327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
227427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
227527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
227627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
227727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
227827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
227927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
228027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
228127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
228227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
228327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */
228427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
228527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf__Ljava_nio_FloatBuffer_2
228627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
228727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
228827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
228927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
229027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
229127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining);
229227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixf(
229327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
229427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
229527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
229627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
229727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
229827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
229927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
230027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */
230127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
230227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx___3II
230327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
230427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m_base = (GLfixed *) 0;
230527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
230627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
230727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
230827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
230927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "m == null");
231027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
231127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
231227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
231327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
231427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
231527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
231627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
231727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfixed *)
231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixx(
232227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
232327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
232427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
232527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
232627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
232727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
232827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
232927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
233027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
233127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
233227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */
233327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
233427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx__Ljava_nio_IntBuffer_2
233527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
233627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
233727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
233827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
233927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
234027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining);
234127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixx(
234227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
234327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
234427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
234527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
234627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
234727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
234827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
234927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLogicOp ( GLenum opcode ) */
235027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
235127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLogicOp__I
235227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint opcode) {
235327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLogicOp(
235427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)opcode
235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */
235927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
236027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialf__IIF
236127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) {
236227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialf(
236327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
236427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
236527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
236627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
236727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
236827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
236927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
237027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
237127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__II_3FI
237227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
237327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
237427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
237527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
237627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
237727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
237827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
237927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
238027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
238127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
238227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
238327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
238427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
238527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
238627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
238727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
238827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
238927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
239027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
239127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
239227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
239327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
239427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
239527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
239627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
239727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
239827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
239927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
240027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
240127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
240227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
240327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
240427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
240527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
240627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
240727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
240827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
240927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
241027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
241127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
241227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
241327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
241427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
241527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
241627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
241727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
241827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
241927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
242027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
242127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
242227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialfv(
242327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
242427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
242527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
242627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
242727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
242827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
242927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
243027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
243127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
243227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
243327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
243427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
243527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
243627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
243727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__IILjava_nio_FloatBuffer_2
243827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
243927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
244027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
244127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
244227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
244327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
244427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
244627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
244727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
244827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
244927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
245027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
245127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
245527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
245627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
245727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
245827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
245927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
246027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
246127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
246227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
246327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
246427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
246527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
246627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
246727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
246827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
246927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
247027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
247127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
247227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
247327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
247427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
247527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
247627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialfv(
247727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
247827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
247927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
248027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
248127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
248227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
248327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
248427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
248527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
248627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
248727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
248827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */
248927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
249027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialx__III
249127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) {
249227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialx(
249327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
249427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
249527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
249627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
249727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
249827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
249927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
250027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
250127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__II_3II
250227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
250327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
250427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
250527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
250627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
250727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
250827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
250927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
251027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
251127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
251227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
251327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
251427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
251527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
251627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
251727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
251827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
251927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
252027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
252127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
252227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
252327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
252427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
252527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
252627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
252727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
252827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
252927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
253027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
253127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
253227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
253327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
253427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
253527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
253627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
253727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
253827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
253927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
254027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
254127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
254227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
254327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
254427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
254527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
254627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
254727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
254827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
254927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
255027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
255127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
255227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialxv(
255327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
255427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
255527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
255627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
255727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
255827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
255927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
256027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
256127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
256227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
256327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
256427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
256527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
256627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
256727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__IILjava_nio_IntBuffer_2
256827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
256927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
257027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
257127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
257227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
257327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
257427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
257527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
257627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
257727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
257827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
257927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
258027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
258127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
258227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
258327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
258427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
258527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
258627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
258727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
258827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
258927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
259027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
259127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
259227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
259327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
259427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
259527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
259627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
259727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
259827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
259927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
260027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
260127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
260227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
260327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
260427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
260527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
260627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialxv(
260727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
260827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
260927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
261027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
261127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
261227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
261327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
261427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
261527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
261627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
261727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
261827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMatrixMode ( GLenum mode ) */
261927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
262027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMatrixMode__I
262127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
262227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMatrixMode(
262327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
262427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
262527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
262627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
262727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */
262827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
262927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf___3FI
263027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
263127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m_base = (GLfloat *) 0;
263227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
263327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
263427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
263527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
263627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "m == null");
263727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
263827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
263927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
264027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
264127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
264227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
264327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
264427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfloat *)
264527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
264627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
264727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
264827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixf(
264927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
265027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
265127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
265227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
265327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
265427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
265527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
265627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
265727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
265827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
265927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */
266027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
266127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf__Ljava_nio_FloatBuffer_2
266227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
266327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
266427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
266527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
266627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
266727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining);
266827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixf(
266927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
267027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
267127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
267227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
267327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
267427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
267527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
267627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */
267727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
267827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx___3II
267927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
268027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m_base = (GLfixed *) 0;
268127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
268227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
268327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
268427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
268527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "m == null");
268627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
268727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
268827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
268927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
269027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
269127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
269227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
269327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfixed *)
269427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
269527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
269627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
269727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixx(
269827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
269927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
270027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
270127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
270227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
270327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
270427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
270527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
270627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
270727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
270827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */
270927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
271027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx__Ljava_nio_IntBuffer_2
271127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
271227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
271327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
271427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
271527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
271627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining);
271727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixx(
271827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
271927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
272027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
272127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
272227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
272327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
272427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
272527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */
272627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
272727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4f__IFFFF
272827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) {
272927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultiTexCoord4f(
273027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
273127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)s,
273227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)t,
273327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)r,
273427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)q
273527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
273627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
273727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
273827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */
273927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
274027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4x__IIIII
274127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) {
274227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultiTexCoord4x(
274327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
274427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)s,
274527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)t,
274627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)r,
274727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)q
274827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
274927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
275027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
275127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */
275227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
275327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3f__FFF
275427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) {
275527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glNormal3f(
275627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)nx,
275727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)ny,
275827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)nz
275927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
276027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
276127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
276227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */
276327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
276427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3x__III
276527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) {
276627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glNormal3x(
276727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)nx,
276827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)ny,
276927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)nz
277027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
277127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
277227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
277327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
277427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
277527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormalPointerBounds__IILjava_nio_Buffer_2I
277627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
277727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
277827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
277927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
278027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
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    }
278827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glNormalPointerBounds(
278927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
279027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
279127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
279227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
279327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
279427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
279527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
279627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
279727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
279827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthof__FFFFFF
279927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
280027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glOrthof(
280127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)left,
280227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)right,
280327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)bottom,
280427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)top,
280527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zNear,
280627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zFar
280727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
280827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
280927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
281027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
281127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
281227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthox__IIIIII
281327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
281427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glOrthox(
281527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)left,
281627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)right,
281727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)bottom,
281827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)top,
281927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zNear,
282027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zFar
282127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
282227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
282327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
282427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPixelStorei ( GLenum pname, GLint param ) */
282527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
282627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPixelStorei__II
282727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
282827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPixelStorei(
282927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
283027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)param
283127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
283227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
283327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
283427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSize ( GLfloat size ) */
283527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
283627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSize__F
283727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat size) {
283827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointSize(
283927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)size
284027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
284127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
284227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
284327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizex ( GLfixed size ) */
284427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
284527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSizex__I
284627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size) {
284727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointSizex(
284827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)size
284927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
285027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
285127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
285227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */
285327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
285427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffset__FF
285527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) {
285627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPolygonOffset(
285727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)factor,
285827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)units
285927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
286027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
286127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
286227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */
286327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
286427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffsetx__II
286527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint factor, jint units) {
286627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPolygonOffsetx(
286727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)factor,
286827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)units
286927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
287027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
287127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
287227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPopMatrix ( void ) */
287327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
287427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPopMatrix__
287527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
287627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPopMatrix();
287727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
287827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
287927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPushMatrix ( void ) */
288027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
288127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPushMatrix__
288227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
288327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPushMatrix();
288427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
288527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
288627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */
288727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
288827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glReadPixels__IIIIIILjava_nio_Buffer_2
288927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) {
289027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
289127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
289227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
289327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
289427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
289527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
289627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glReadPixels(
289727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
289827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
289927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
290027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
290127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
290227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
290327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pixels
290427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
290527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
290627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, pixels, _exception ? JNI_FALSE : JNI_TRUE);
290727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
290827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
290927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
291027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */
291127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
291227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatef__FFFF
291327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) {
291427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glRotatef(
291527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)angle,
291627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)x,
291727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)y,
291827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)z
291927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
292027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
292127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
292227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */
292327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
292427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatex__IIII
292527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) {
292627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glRotatex(
292727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)angle,
292827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)x,
292927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)y,
293027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)z
293127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
293227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
293327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
293427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */
293527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
293627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoverage__FZ
293727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) {
293827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glSampleCoverage(
293927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)value,
294027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)invert
294127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
294227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
294327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
294427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */
294527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
294627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoveragex__IZ
294727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint value, jboolean invert) {
294827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glSampleCoveragex(
294927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)value,
295027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)invert
295127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
295227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
295327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
295427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */
295527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
295627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalef__FFF
295727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
295827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glScalef(
295927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)x,
296027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)y,
296127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)z
296227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
296327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
296427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
296527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */
296627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
296727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalex__III
296827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
296927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glScalex(
297027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)x,
297127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)y,
297227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)z
297327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
297427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
297527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
297627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */
297727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
297827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScissor__IIII
297927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
298027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glScissor(
298127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
298227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
298327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
298427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height
298527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
298627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
298727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
298827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glShadeModel ( GLenum mode ) */
298927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
299027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glShadeModel__I
299127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
299227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glShadeModel(
299327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
299427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
299527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
299627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
299727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */
299827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
299927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilFunc__III
300027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) {
300127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glStencilFunc(
300227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func,
300327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)ref,
300427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)mask
300527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
300627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
300727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
300827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilMask ( GLuint mask ) */
300927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
301027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilMask__I
301127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mask) {
301227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glStencilMask(
301327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)mask
301427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
301527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
301627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
301727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */
301827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
301927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilOp__III
302027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) {
302127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glStencilOp(
302227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)fail,
302327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)zfail,
302427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)zpass
302527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
302627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
302727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
302827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
302927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
303027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I
303127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
303227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
303327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
303427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
303527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
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    }
304327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexCoordPointerBounds(
304427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
304527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
304627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
304727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
304827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
304927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
305027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
305127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
305227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */
305327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
305427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvf__IIF
305527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
305627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvf(
305727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
305827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
305927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
306027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
306127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
306227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
306327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
306427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
306527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__II_3FI
306627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
306727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
306827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
306927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
307027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
307127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
307227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
307327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
307427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
307527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
307627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
307727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
307827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
307927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
308027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
308127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
308227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
308327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
308427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
308527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
308627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
308727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
308827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
308927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
309027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
309127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
309227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
309327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
309427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
309527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
309627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
309727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
309827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
309927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
310027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
310127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
310227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
310327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
310427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
310527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
310627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
310727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
310827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
310927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
311027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvfv(
311127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
311227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
311327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
311427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
311527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
311627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
311727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
311827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
311927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
312027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
312127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
312227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
312327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
312427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
312527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__IILjava_nio_FloatBuffer_2
312627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
312727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
312827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
312927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
313027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
313127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
313227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
313327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
313427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
313527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
313627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
313727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
313827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
313927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
314027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
314127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
314227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
314327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
314427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
314527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
314627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
314727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
314827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
314927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
315027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
315127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
315227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
315327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
315427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
315527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
315627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
315727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
315827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvfv(
315927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
316027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
316127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
316227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
316327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
316427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
316527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
316627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
316727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
316827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
316927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
317027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */
317127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
317227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvx__III
317327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
317427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvx(
317527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
317627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
317727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
317827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
317927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
318027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
318127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
318227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
318327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__II_3II
318427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
318527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
318627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
318727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
318827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
318927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
319027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "params == null");
319127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
319227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
319327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
319427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "offset < 0");
319527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
319627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
319727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
319827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
319927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
320027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
320127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
320227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
320327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
320427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
320527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
320627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
320727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
320827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
320927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
321027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
321127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
321227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
321327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
321427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
321527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
321627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
321727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
321827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
321927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
322027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
322127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "length - offset < needed");
322227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
322327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
322427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
322527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
322627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
322727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
322827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvxv(
322927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
323027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
323127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
323227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
323327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
323427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
323527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
323627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
323727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
323827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
323927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
324027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
324127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
324227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
324327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__IILjava_nio_IntBuffer_2
324427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
324527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
324627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
324727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
324827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
324927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
325027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
325127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
325227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
325327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
325427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
325527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
325627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
325727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
325827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
325927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
326027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
326127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
326227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
326327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
326427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
326527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
326627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
326727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
326827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
326927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
327027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
327127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
327227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
327327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ThrowNew(IAEClass, "remaining() < needed");
327427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
327527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
327627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvxv(
327727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
327827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
327927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
328027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
328127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
328227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
328327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
328427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
328527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
328627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
328727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
328827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */
328927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
329027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2
329127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) {
329227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
329327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
329427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
329527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
329627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pixels_buf) {
329727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
329827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
329927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexImage2D(
330027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
330127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
330227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)internalformat,
330327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
330427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
330527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)border,
330627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
330727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
330827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pixels
330927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
331027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
331127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, pixels, JNI_FALSE);
331227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
331327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
331427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
331527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */
331627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
331727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterf__IIF
331827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
331927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameterf(
332027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
332127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
332227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
332327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
332427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
332527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
332627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */
332727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
332827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterx__III
332927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
333027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameterx(
333127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
333227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
333327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
333427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
333527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
333627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
333727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */
333827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
333927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
334027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) {
334127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
334227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
334327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
334427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
334527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pixels_buf) {
334627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
334727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
334827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexSubImage2D(
334927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
335027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
335127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)xoffset,
335227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)yoffset,
335327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
335427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
335527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
335627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
335727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pixels
335827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
335927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
336027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, pixels, JNI_FALSE);
336127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
336227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
336327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
336427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */
336527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
336627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatef__FFF
336727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
336827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTranslatef(
336927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)x,
337027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)y,
337127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)z
337227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
337327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
337427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
337527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */
337627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
337727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatex__III
337827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
337927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTranslatex(
338027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)x,
338127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)y,
338227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)z
338327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
338427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
338527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
338627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
338727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
338827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glVertexPointerBounds__IIILjava_nio_Buffer_2I
338927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
339027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
339127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
339227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
339327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
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    }
340127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glVertexPointerBounds(
340227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
340327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
340427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
340527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
340627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
340727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
340827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
340927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
341027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */
341127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
341227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glViewport__IIII
341327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
341427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glViewport(
341527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
341627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
341727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
341827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height
341927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
342027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
342127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
342227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES10";
342327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
342427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic JNINativeMethod methods[] = {
342527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit },
342627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I },
342727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF },
342827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II },
342927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindTexture", "(II)V", (void *) android_glBindTexture__II },
343027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II },
343127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClear", "(I)V", (void *) android_glClear__I },
343227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF },
343327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII },
343427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F },
343527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I },
343627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearStencil", "(I)V", (void *) android_glClearStencil__I },
343727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I },
343827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF },
343927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII },
344027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ },
344127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I },
344227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 },
344327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
344427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII },
344527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII },
344627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCullFace", "(I)V", (void *) android_glCullFace__I },
344727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II },
344827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 },
344927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I },
345027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z },
345127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF },
345227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II },
345327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisable", "(I)V", (void *) android_glDisable__I },
345427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I },
345527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III },
345627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 },
345727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnable", "(I)V", (void *) android_glEnable__I },
345827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I },
345927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFinish", "()V", (void *) android_glFinish__ },
346027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFlush", "()V", (void *) android_glFlush__ },
346127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogf", "(IF)V", (void *) android_glFogf__IF },
346227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI },
346327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 },
346427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogx", "(II)V", (void *) android_glFogx__II },
346527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II },
346627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 },
346727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrontFace", "(I)V", (void *) android_glFrontFace__I },
346827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF },
346927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII },
347027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II },
347127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 },
347227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetError", "()I", (void *) android_glGetError__ },
347327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II },
347427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 },
3475a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich{"glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },
347627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glHint", "(II)V", (void *) android_glHint__II },
347727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF },
347827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI },
347927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 },
348027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelx", "(II)V", (void *) android_glLightModelx__II },
348127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II },
348227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 },
348327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightf", "(IIF)V", (void *) android_glLightf__IIF },
348427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI },
348527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 },
348627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightx", "(III)V", (void *) android_glLightx__III },
348727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II },
348827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 },
348927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidth", "(F)V", (void *) android_glLineWidth__F },
349027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I },
349127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ },
349227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI },
349327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 },
349427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II },
349527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 },
349627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLogicOp", "(I)V", (void *) android_glLogicOp__I },
349727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF },
349827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI },
349927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 },
350027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialx", "(III)V", (void *) android_glMaterialx__III },
350127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II },
350227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 },
350327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I },
350427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI },
350527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 },
350627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II },
350727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 },
350827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF },
350927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII },
351027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF },
351127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3x", "(III)V", (void *) android_glNormal3x__III },
351227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I },
351327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF },
351427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII },
351527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II },
351627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSize", "(F)V", (void *) android_glPointSize__F },
351727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSizex", "(I)V", (void *) android_glPointSizex__I },
351827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF },
351927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II },
352027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPopMatrix", "()V", (void *) android_glPopMatrix__ },
352127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPushMatrix", "()V", (void *) android_glPushMatrix__ },
352227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 },
352327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF },
352427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII },
352527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ },
352627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ },
352727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalef", "(FFF)V", (void *) android_glScalef__FFF },
352827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalex", "(III)V", (void *) android_glScalex__III },
352927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScissor", "(IIII)V", (void *) android_glScissor__IIII },
353027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glShadeModel", "(I)V", (void *) android_glShadeModel__I },
353127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III },
353227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilMask", "(I)V", (void *) android_glStencilMask__I },
353327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilOp", "(III)V", (void *) android_glStencilOp__III },
353427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I },
353527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF },
353627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI },
353727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 },
353827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III },
353927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II },
354027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 },
354127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 },
354227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF },
354327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III },
354427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
354527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF },
354627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatex", "(III)V", (void *) android_glTranslatex__III },
354727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I },
354827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glViewport", "(IIII)V", (void *) android_glViewport__IIII },
354927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich};
355027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
355127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES10(JNIEnv *_env)
355227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
355327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int err;
355427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
355527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return err;
355627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
3557