android_opengl_GLES10.cpp revision 17045a16575ece34cfadb63da4791f115625df78
127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/*
227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** Copyright 2009, The Android Open Source Project
427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** Licensed under the Apache License, Version 2.0 (the "License");
624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** you may not use this file except in compliance with the License.
724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** You may obtain a copy of the License at
827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes**     http://www.apache.org/licenses/LICENSE-2.0
1027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
1124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** Unless required by applicable law or agreed to in writing, software
1224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** distributed under the License is distributed on an "AS IS" BASIS,
1324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** See the License for the specific language governing permissions and
1527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** limitations under the License.
1627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich*/
1727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
1827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// This source file is automatically generated
1927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
2024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "jni.h"
2124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "JNIHelp.h"
2227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <android_runtime/AndroidRuntime.h>
2327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <utils/misc.h>
2427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
2527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <assert.h>
2627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <GLES/gl.h>
27be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#include <GLES/glext.h>
2827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
298331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian/* special calls implemented in Android's GLES wrapper used to more
308331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian * efficiently bound-check passed arrays */
318331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopianextern "C" {
328331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride,
338331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        const GLvoid *ptr, GLsizei count);
348331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride,
358331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        const GLvoid *pointer, GLsizei count);
368331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type,
378331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
388331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type,
398331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
408331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian}
418331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian
4227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic int initialized = 0;
4327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
4427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass nioAccessClass;
4527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass bufferClass;
4627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBasePointerID;
4727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayID;
4827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayOffsetID;
4927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID positionID;
5027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID limitID;
5127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID elementSizeShiftID;
5227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
5327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* Cache method IDs each time the class is loaded. */
5427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
5527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
5624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass)
5727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
5827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
5927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
6027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
6127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
6227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
6327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
6427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
6527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBasePointer", "(Ljava/nio/Buffer;)J");
6627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
6727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
6827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
6927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
7027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
7127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    positionID = _env->GetFieldID(bufferClass, "position", "I");
7227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    limitID = _env->GetFieldID(bufferClass, "limit", "I");
7327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    elementSizeShiftID =
7427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
7527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
7627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
7727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void *
7817045a16575ece34cfadb63da4791f115625df78Thomas TafertshofergetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset)
7927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
8027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint position;
8127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint limit;
8227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint elementSizeShift;
8327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jlong pointer;
8427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    position = _env->GetIntField(buffer, positionID);
8627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    limit = _env->GetIntField(buffer, limitID);
8727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
8827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    *remaining = (limit - position) << elementSizeShift;
8927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    pointer = _env->CallStaticLongMethod(nioAccessClass,
9027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBasePointerID, buffer);
9127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pointer != 0L) {
9227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        *array = NULL;
9327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        return (void *) (jint) pointer;
9427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
9524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
9627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
9727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBaseArrayID, buffer);
9817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    *offset = _env->CallStaticIntMethod(nioAccessClass,
9927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBaseArrayOffsetID, buffer);
10024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
10117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    return NULL;
10227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
10327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
10427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
10527f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
10627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
10727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _env->ReleasePrimitiveArrayCritical(array, data,
10827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich					   commit ? 0 : JNI_ABORT);
10927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
11027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
11116e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevichstatic void *
11216e7972f0d986eebf846ea8feb50f4435a9c6970Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) {
11316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    char* buf = (char*) _env->GetDirectBufferAddress(buffer);
11416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    if (buf) {
11516e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        jint position = _env->GetIntField(buffer, positionID);
11616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
11716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        buf += position << elementSizeShift;
11816e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    } else {
11924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException",
12024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes                          "Must use a native order direct Buffer");
12116e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    }
12216e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    return (void*) buf;
12316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich}
12416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich
125be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevichstatic int
126be509c9c7de5929d014dfe6d45e71cc8454ede0fJack PalevichgetNumCompressedTextureFormats() {
127be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    int numCompressedTextureFormats = 0;
128be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats);
129be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich    return numCompressedTextureFormats;
130be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich}
131be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich
13227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// --------------------------------------------------------------------------
13327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glActiveTexture ( GLenum texture ) */
13427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
13527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glActiveTexture__I
13627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint texture) {
13727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glActiveTexture(
13827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)texture
13927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
14027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
14127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
14227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFunc ( GLenum func, GLclampf ref ) */
14327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
14427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFunc__IF
14527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jfloat ref) {
14627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glAlphaFunc(
14727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func,
14827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)ref
14927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
15027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
15127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
15227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */
15327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
15427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFuncx__II
15527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jint ref) {
15627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glAlphaFuncx(
15727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func,
15827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)ref
15927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
16027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
16127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
16227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindTexture ( GLenum target, GLuint texture ) */
16327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
16427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindTexture__II
16527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint texture) {
16627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glBindTexture(
16727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
16827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)texture
16927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
17027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
17127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
17227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */
17327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
17427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBlendFunc__II
17527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) {
17627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glBlendFunc(
17727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)sfactor,
17827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)dfactor
17927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
18027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
18127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
18227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClear ( GLbitfield mask ) */
18327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
18427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClear__I
18527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mask) {
18627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClear(
18727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLbitfield)mask
18827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
18927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
19027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
19127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */
19227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
19327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColor__FFFF
19427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
19527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearColor(
19627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)red,
19727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)green,
19827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)blue,
19927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)alpha
20027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
20127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
20227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
20327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */
20427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
20527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColorx__IIII
20627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
20727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearColorx(
20827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)red,
20927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)green,
21027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)blue,
21127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)alpha
21227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
21327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
21427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
21527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthf ( GLclampf depth ) */
21627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
21727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthf__F
21827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat depth) {
21927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearDepthf(
22027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)depth
22127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
22227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
22327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
22427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthx ( GLclampx depth ) */
22527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
22627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthx__I
22727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint depth) {
22827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearDepthx(
22927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)depth
23027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
23127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
23227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
23327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearStencil ( GLint s ) */
23427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
23527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearStencil__I
23627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint s) {
23727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearStencil(
23827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)s
23927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
24027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
24127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
24227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClientActiveTexture ( GLenum texture ) */
24327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
24427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClientActiveTexture__I
24527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint texture) {
24627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClientActiveTexture(
24727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)texture
24827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
24927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
25027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
25127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */
25227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
25327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4f__FFFF
25427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
25527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColor4f(
25627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)red,
25727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)green,
25827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)blue,
25927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)alpha
26027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
26127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
26227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
26327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */
26427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
26527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4x__IIII
26627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
26727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColor4x(
26827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)red,
26927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)green,
27027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)blue,
27127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)alpha
27227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
27327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
27427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
27527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */
27627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
27727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorMask__ZZZZ
27827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) {
27927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColorMask(
28027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)red,
28127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)green,
28227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)blue,
28327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)alpha
28427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
28527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
28627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
28727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
28827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
28927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorPointerBounds__IIILjava_nio_Buffer_2I
29027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
29127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
29217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
29327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
29427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
29527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
296e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
29716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
298e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
299e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
300e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
301e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
30227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColorPointerBounds(
30327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
30427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
30527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
30627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
30727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
30827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
30927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
31027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
31127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */
31227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
31327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2
31427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) {
31527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
31617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
31727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
31827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *data = (GLvoid *) 0;
31927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
32017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
32117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (data == NULL) {
32217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
32317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        data = (GLvoid *) (_dataBase + _bufferOffset);
32417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
32527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCompressedTexImage2D(
32627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
32727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
32827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)internalformat,
32927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
33027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
33127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)border,
33227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)imageSize,
33327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)data
33427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
33527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
33627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
33727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
33827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
33927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
34027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */
34127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
34227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
34327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) {
34427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
34517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
34627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
34727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *data = (GLvoid *) 0;
34827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
34917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
35017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (data == NULL) {
35117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
35217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        data = (GLvoid *) (_dataBase + _bufferOffset);
35317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
35427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCompressedTexSubImage2D(
35527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
35627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
35727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)xoffset,
35827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)yoffset,
35927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
36027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
36127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
36227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)imageSize,
36327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)data
36427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
36527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
36627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
36727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
36827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
36927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
37027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */
37127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
37227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexImage2D__IIIIIIII
37327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) {
37427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCopyTexImage2D(
37527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
37627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
37727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)internalformat,
37827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
37927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
38027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
38127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
38227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)border
38327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
38427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
38527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
38627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */
38727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
38827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexSubImage2D__IIIIIIII
38927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) {
39027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCopyTexSubImage2D(
39127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
39227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
39327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)xoffset,
39427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)yoffset,
39527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
39627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
39727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
39827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height
39927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
40027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
40127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
40227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCullFace ( GLenum mode ) */
40327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
40427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCullFace__I
40527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
40627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCullFace(
40727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
40827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
40927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
41027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
41127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
41227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
41327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__I_3II
41427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
4152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
4162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
4172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
41827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures_base = (GLuint *) 0;
41927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
42027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
42127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
42227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!textures_ref) {
4232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
4242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
4252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "textures == null";
42627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
42727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
42827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
4292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
4302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
4312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
43227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
43327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
43427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(textures_ref) - offset;
43527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
4362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
4372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
4382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
43927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
44027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
44127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures_base = (GLuint *)
44227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
44327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures = textures_base + offset;
44427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
44527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDeleteTextures(
44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
44827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
44927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
45027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
45127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (textures_base) {
45227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
45327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
45427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
4552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
4562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
4572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
45827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
45927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
46027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
46127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
46227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__ILjava_nio_IntBuffer_2
46327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
4642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
4652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
4662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
46817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
47027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
47127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
47217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset);
47327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
4742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
4752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
4762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
47917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (textures == NULL) {
48017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
48117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        textures = (GLuint *) (_texturesBase + _bufferOffset);
48217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
48327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDeleteTextures(
48427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
48527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
48627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
48727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
48827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
48927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
49027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, textures, JNI_FALSE);
49127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
4922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
4932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
4942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
49527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
49727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthFunc ( GLenum func ) */
49827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthFunc__I
50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func) {
50127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthFunc(
50227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func
50327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
50427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthMask ( GLboolean flag ) */
50727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
50827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthMask__Z
50927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jboolean flag) {
51027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthMask(
51127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)flag
51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
51427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
51527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */
51627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
51727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangef__FF
51827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
51927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthRangef(
52027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)zNear,
52127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)zFar
52227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
52327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
52427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
52527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */
52627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
52727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangex__II
52827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint zNear, jint zFar) {
52927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthRangex(
53027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)zNear,
53127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)zFar
53227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
53327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
53427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
53527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisable ( GLenum cap ) */
53627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
53727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisable__I
53827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint cap) {
53927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDisable(
54027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)cap
54127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
54227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
54327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
54427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisableClientState ( GLenum array ) */
54527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
54627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisableClientState__I
54727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint array) {
54827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDisableClientState(
54927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)array
55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
55227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
55327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */
55427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
55527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawArrays__III
55627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) {
55727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawArrays(
55827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode,
55927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)first,
56027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)count
56127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
56227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
56327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
56427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */
56527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
56627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawElements__IIILjava_nio_Buffer_2
56727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) {
5682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
5692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
5702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
57127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
57217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
57327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
57427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *indices = (GLvoid *) 0;
57527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
57617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset);
57727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < count) {
5782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
5792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
5802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < count < needed";
58127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
58227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
58317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (indices == NULL) {
58417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
58517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        indices = (GLvoid *) (_indicesBase + _bufferOffset);
58617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawElements(
58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode,
58927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)count,
59027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
59127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)indices
59227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
59427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
59527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
59627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, indices, JNI_FALSE);
59727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
5982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
5992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
6002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
60227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
60327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnable ( GLenum cap ) */
60427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
60527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnable__I
60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint cap) {
60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glEnable(
60827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)cap
60927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
61027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
61127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
61227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnableClientState ( GLenum array ) */
61327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnableClientState__I
61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint array) {
61627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glEnableClientState(
61727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)array
61827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
61927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFinish ( void ) */
62227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
62327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFinish__
62427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
62527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFinish();
62627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFlush ( void ) */
62927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
63027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFlush__
63127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
63227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFlush();
63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogf ( GLenum pname, GLfloat param ) */
63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogf__IF
63827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
63927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogf(
64027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
64127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
64227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
64327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
64427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
64527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */
64627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
64727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__I_3FI
64827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
6492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
6502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
6512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
65227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
65327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
65427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
65527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
65627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
6572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
66027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
66127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
66227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
6632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
66627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
66727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
66827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
66927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
67027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
67127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
67227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
67327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
67427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
67527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
67627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
67727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
67827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
67927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
68027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
68127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
68227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
68327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
68427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
68527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
68627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
68727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
68827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
68927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
69027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
69127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
69227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
69327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
69427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
6952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
69827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
69927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
70027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
70127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
70227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
70327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
70427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogfv(
70527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
70627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
70727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
70827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
70927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
71027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
71127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
71227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
71327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
7142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
7152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
7162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
71727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
71827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
71927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */
72027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
72127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__ILjava_nio_FloatBuffer_2
72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
7232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
7242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
7252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
72627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
72717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
72827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
72927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
73027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
73117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
73327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
73427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
73527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
73627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
73727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
73827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
73927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
74327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
74427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
74527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
74627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
74727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
75027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
75127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
75227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
75327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
75427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
75527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
75627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
75727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
7582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
7592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
7602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
76227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
76317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
76417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
76517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
76617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
76727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogfv(
76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
77027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
77127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
77227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
77327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
77427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
7762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
7772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
7782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
77927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
78027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogx ( GLenum pname, GLfixed param ) */
78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogx__II
78427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
78527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogx(
78627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
78727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */
79227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
79327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__I_3II
79427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
7952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
7962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
7972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
79827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
79927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
80027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
80127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
80227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
8032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
8042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
80627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
80727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
80827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
8092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
8102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
81227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
81327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
81427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
81527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
81627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
81727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
81827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
81927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
82027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
82127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
82227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
82327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
82427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
82527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
82627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
82727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
82827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
82927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
83027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
83127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
83227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
83327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
83427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
83527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
83627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
83727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
83827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
84027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
8412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
8422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
84427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
84527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
84627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
84727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
84827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
84927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
85027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogxv(
85127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
85227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
85327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
85427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
85527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
85627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
85727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
85827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
85927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
8602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
8612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
8622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
86327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
86427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
86527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */
86627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
86727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__ILjava_nio_IntBuffer_2
86827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
8692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
8702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
8712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
87227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
87317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
87427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
87527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
87627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
87717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
87827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
87927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
88027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
88127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
88227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
88327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
88427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
88727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
88827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
88927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
89027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
89127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
89227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
89327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
89427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
89527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
89627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
89727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
89827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
89927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
90027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
90127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
90227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
90327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
9042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
9052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
90727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
90827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
90917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
91017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
91117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
91217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
91327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogxv(
91427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
91527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
91627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
91727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
91827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
91927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
92027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
92127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
9222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
9232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
9242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
92527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
92627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
92727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrontFace ( GLenum mode ) */
92827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
92927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrontFace__I
93027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
93127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFrontFace(
93227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
93327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
93527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
93627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
93727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
93827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumf__FFFFFF
93927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
94027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFrustumf(
94127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)left,
94227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)right,
94327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)bottom,
94427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)top,
94527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zNear,
94627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zFar
94727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
94827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
94927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
95027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
95127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
95227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumx__IIIIII
95327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
95427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFrustumx(
95527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)left,
95627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)right,
95727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)bottom,
95827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)top,
95927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zNear,
96027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zFar
96127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
96227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
96327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
96427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */
96527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
96627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__I_3II
96727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
96827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
9692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
9702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
97127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures_base = (GLuint *) 0;
97227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
97327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
97427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
97527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!textures_ref) {
97627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
9772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "textures == null";
97927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
98027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
98127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
98227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
9832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
98627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
98727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(textures_ref) - offset;
98827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
98927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
9902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
99227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
99327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
99427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures_base = (GLuint *)
99527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
99627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures = textures_base + offset;
99727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
99827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGenTextures(
99927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
100027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
100127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
100227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
100327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
100427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (textures_base) {
100527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
100627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
100727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
10082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
10092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
10102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
101127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
101227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
101327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */
101427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
101527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__ILjava_nio_IntBuffer_2
101627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
101727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
10182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
10192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
102117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
102227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
102327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
102427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
102517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset);
102627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
102727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
10282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
10292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
103027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
103127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
103217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (textures == NULL) {
103317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
103417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        textures = (GLuint *) (_texturesBase + _bufferOffset);
103517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
103627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGenTextures(
103727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
103827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
103927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
104027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
104127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
104227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
104327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE);
104427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
10452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
10462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
10472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
104827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
104927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
105027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLenum glGetError ( void ) */
105127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jint
105227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetError__
105327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
105427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLenum _returnValue;
105527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _returnValue = glGetError();
105627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return _returnValue;
105727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
105827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
105927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */
106027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
106127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__I_3II
106227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
106327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
10642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
10652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
106627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params_base = (GLint *) 0;
106727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
106827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
106927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
107027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
107127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
10722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
10732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
107427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
107527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
107627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
107727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
10782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
10792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
108527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_BITS)
108627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_BITS:
108727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_BITS)
108827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_FUNC)
108927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_TEST_FUNC:
109027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_FUNC)
109127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_REF)
109227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_TEST_REF:
109327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_REF)
109427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLEND_DST)
109527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_BLEND_DST:
109627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLEND_DST)
109727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLUE_BITS)
109827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_BLUE_BITS:
109927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLUE_BITS)
110027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
110127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_BUFFER_BINDING:
110227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
110327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_SIZE)
110427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_SIZE:
110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_SIZE)
110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_STRIDE)
110727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_STRIDE:
110827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_STRIDE)
110927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_TYPE)
111027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_TYPE:
111127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_TYPE)
111227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CULL_FACE)
111327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CULL_FACE:
111427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CULL_FACE)
111527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_BITS)
111627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_BITS:
111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_BITS)
111827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_CLEAR_VALUE)
111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_CLEAR_VALUE:
112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_CLEAR_VALUE)
112127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_FUNC)
112227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_FUNC:
112327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_FUNC)
112427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_WRITEMASK)
112527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_WRITEMASK:
112627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_WRITEMASK)
112727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
112827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
112927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
113027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
113127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
113227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
113327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
113427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
113527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
113627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
113727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
113827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
113927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FRONT_FACE)
114027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FRONT_FACE:
114127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FRONT_FACE)
114227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_GREEN_BITS)
114327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_GREEN_BITS:
114427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_GREEN_BITS)
114527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
114627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
114727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
114827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
114927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
115027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1151be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1152be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_COLOR_CONTROL:
1153be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1154be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
1155be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_LOCAL_VIEWER:
1156be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
115727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
115827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
115927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
116027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_SMOOTH_HINT)
116127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINE_SMOOTH_HINT:
116227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_SMOOTH_HINT)
116327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_WIDTH)
116427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINE_WIDTH:
116527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_WIDTH)
116627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LOGIC_OP_MODE)
116727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LOGIC_OP_MODE:
116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LOGIC_OP_MODE)
116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
117027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
117127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
117227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
117327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
117427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
117527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
117627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
117727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
117827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
117927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
118027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
118127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_MODE)
118227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_MODE:
118327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_MODE)
118427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_CLIP_PLANES)
118527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_CLIP_PLANES:
118627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_CLIP_PLANES)
118727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_INDICES)
118827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_ELEMENTS_INDICES:
118927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_INDICES)
119027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_VERTICES)
119127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_ELEMENTS_VERTICES:
119227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_VERTICES)
119327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_LIGHTS)
119427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_LIGHTS:
119527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_LIGHTS)
119627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
119727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_MODELVIEW_STACK_DEPTH:
119827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
119927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PALETTE_MATRICES_OES)
120027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_PALETTE_MATRICES_OES:
120127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
120227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_PROJECTION_STACK_DEPTH:
120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
120527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_SIZE)
120627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_SIZE:
120727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_SIZE)
120827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
120927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_STACK_DEPTH:
121027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
121127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_UNITS)
121227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_UNITS:
121327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_UNITS)
121427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VERTEX_UNITS_OES)
121527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_VERTEX_UNITS_OES:
121627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VERTEX_UNITS_OES)
121727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_STACK_DEPTH)
121827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_STACK_DEPTH:
121927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_STACK_DEPTH)
122027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
122127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_BUFFER_BINDING:
122227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
122327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_STRIDE)
122427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_STRIDE:
122527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_STRIDE)
122627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_TYPE)
122727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_TYPE:
122827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_TYPE)
122927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
123027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
123127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
123227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PACK_ALIGNMENT)
123327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PACK_ALIGNMENT:
123427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PACK_ALIGNMENT)
123527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
123627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PERSPECTIVE_CORRECTION_HINT:
123727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
123827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE)
123927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE:
124027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE)
124127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
124227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
124327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
124427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
124527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
124627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
124727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
124827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_TYPE_OES:
124927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
125027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SMOOTH_HINT)
125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SMOOTH_HINT:
125227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SMOOTH_HINT)
125327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_FACTOR)
125427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POLYGON_OFFSET_FACTOR:
125527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_FACTOR)
125627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_UNITS)
125727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POLYGON_OFFSET_UNITS:
125827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_UNITS)
125927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_STACK_DEPTH)
126027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_STACK_DEPTH:
126127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_STACK_DEPTH)
126227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_RED_BITS)
126327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_RED_BITS:
126427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_RED_BITS)
126527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHADE_MODEL)
126627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHADE_MODEL:
126727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHADE_MODEL)
126827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_BITS)
126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_BITS:
127027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_BITS)
127127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_CLEAR_VALUE)
127227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_CLEAR_VALUE:
127327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_CLEAR_VALUE)
127427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FAIL)
127527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_FAIL:
127627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FAIL)
127727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FUNC)
127827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_FUNC:
127927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FUNC)
128027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
128127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_PASS_DEPTH_FAIL:
128227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
128327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_PASS)
128427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_PASS_DEPTH_PASS:
128527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
128627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_REF)
128727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_REF:
128827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_REF)
128927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_VALUE_MASK)
129027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_VALUE_MASK:
129127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_VALUE_MASK)
129227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_WRITEMASK)
129327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_WRITEMASK:
129427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_WRITEMASK)
129527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SUBPIXEL_BITS)
129627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SUBPIXEL_BITS:
129727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SUBPIXEL_BITS)
129827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_BINDING_2D)
129927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_BINDING_2D:
130027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_BINDING_2D)
130127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
130227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
130327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
130427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
130527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_SIZE:
130627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
130727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
130827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_STRIDE:
130927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
131027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
131127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_TYPE:
131227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
131327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_STACK_DEPTH)
131427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_STACK_DEPTH:
131527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_STACK_DEPTH)
131627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_UNPACK_ALIGNMENT)
131727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_UNPACK_ALIGNMENT:
131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_UNPACK_ALIGNMENT)
131927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
132027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_BUFFER_BINDING:
132127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
132227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_SIZE)
132327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_SIZE:
132427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_SIZE)
132527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_STRIDE)
132627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_STRIDE:
132727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_STRIDE)
132827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_TYPE)
132927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_TYPE:
133027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_TYPE)
133127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
133227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
133327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
133427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
133527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_SIZE_OES:
133627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
133727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
133827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_STRIDE_OES:
133927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
134027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
134127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_TYPE_OES:
134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
134327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
134427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
134527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_POINT_SIZE_RANGE)
134627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALIASED_POINT_SIZE_RANGE:
134727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
134827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
134927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALIASED_LINE_WIDTH_RANGE:
135027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
135127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_RANGE)
135227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_RANGE:
135327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_RANGE)
135427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VIEWPORT_DIMS)
135527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_VIEWPORT_DIMS:
135627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VIEWPORT_DIMS)
135727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
135827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SMOOTH_LINE_WIDTH_RANGE:
135927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
136027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
136127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SMOOTH_POINT_SIZE_RANGE:
136227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
136327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 2;
136427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
136527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_CLEAR_VALUE)
136627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_CLEAR_VALUE:
136727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_CLEAR_VALUE)
136827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_WRITEMASK)
136927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_WRITEMASK:
137027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_WRITEMASK)
1371be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_FOG_COLOR)
1372be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_FOG_COLOR:
1373be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_FOG_COLOR)
1374be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
1375be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_AMBIENT:
1376be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
137727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SCISSOR_BOX)
137827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SCISSOR_BOX:
137927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SCISSOR_BOX)
138027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VIEWPORT)
138127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VIEWPORT:
138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VIEWPORT)
138327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
138427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
138527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX)
138627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_MATRIX:
138727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX)
138827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
138927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
139027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
139127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX)
139227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_MATRIX:
139327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX)
139427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
139527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
139627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
139727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX)
139827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_MATRIX:
139927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX)
140027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
140127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
140227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
140327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 16;
140427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
140527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
140627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMPRESSED_TEXTURE_FORMATS:
140727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1408be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich            _needed = getNumCompressedTextureFormats();
140927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
141027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
141127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
141227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
141327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
141427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
141527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
14162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
14172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
141827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
141927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
142027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLint *)
142127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
142227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
142327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
142427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetIntegerv(
142527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
142627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
142727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
142827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
142927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
143027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
143127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
143227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
143327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
14342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
14352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
14362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
143727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
143827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
143927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */
144027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
144127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__ILjava_nio_IntBuffer_2
144227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
144327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
14442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
14452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
144627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
144717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
144827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
145027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
145117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
145227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
145327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
145427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_BITS)
145527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_BITS:
145627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_BITS)
145727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_FUNC)
145827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_TEST_FUNC:
145927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_FUNC)
146027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALPHA_TEST_REF)
146127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALPHA_TEST_REF:
146227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALPHA_TEST_REF)
146327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLEND_DST)
146427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_BLEND_DST:
146527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLEND_DST)
146627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_BLUE_BITS)
146727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_BLUE_BITS:
146827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_BLUE_BITS)
146927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
147027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_BUFFER_BINDING:
147127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
147227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_SIZE)
147327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_SIZE:
147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_SIZE)
147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_STRIDE)
147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_STRIDE:
147727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_STRIDE)
147827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_ARRAY_TYPE)
147927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_ARRAY_TYPE:
148027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_ARRAY_TYPE)
148127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CULL_FACE)
148227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CULL_FACE:
148327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CULL_FACE)
148427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_BITS)
148527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_BITS:
148627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_BITS)
148727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_CLEAR_VALUE)
148827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_CLEAR_VALUE:
148927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_CLEAR_VALUE)
149027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_FUNC)
149127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_FUNC:
149227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_FUNC)
149327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_WRITEMASK)
149427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_WRITEMASK:
149527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_WRITEMASK)
149627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_DENSITY)
149727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_DENSITY:
149827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_DENSITY)
149927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_END)
150027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_END:
150127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_END)
150227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_MODE)
150327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_MODE:
150427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_MODE)
150527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_START)
150627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_START:
150727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_START)
150827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FRONT_FACE)
150927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FRONT_FACE:
151027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FRONT_FACE)
151127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_GREEN_BITS)
151227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_GREEN_BITS:
151327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_GREEN_BITS)
151427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
151527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
151627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
151727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
151827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
151927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1520be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1521be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_COLOR_CONTROL:
1522be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1523be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
1524be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_LOCAL_VIEWER:
1525be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
152627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
152727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
152827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
152927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_SMOOTH_HINT)
153027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINE_SMOOTH_HINT:
153127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_SMOOTH_HINT)
153227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINE_WIDTH)
153327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINE_WIDTH:
153427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINE_WIDTH)
153527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LOGIC_OP_MODE)
153627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LOGIC_OP_MODE:
153727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LOGIC_OP_MODE)
153827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
153927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
154027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
154227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
154327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
154427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
154527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
154627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
154727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
154827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
154927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
155027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MATRIX_MODE)
155127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MATRIX_MODE:
155227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MATRIX_MODE)
155327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_CLIP_PLANES)
155427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_CLIP_PLANES:
155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_CLIP_PLANES)
155627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_INDICES)
155727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_ELEMENTS_INDICES:
155827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_INDICES)
155927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_ELEMENTS_VERTICES)
156027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_ELEMENTS_VERTICES:
156127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_ELEMENTS_VERTICES)
156227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_LIGHTS)
156327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_LIGHTS:
156427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_LIGHTS)
156527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
156627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_MODELVIEW_STACK_DEPTH:
156727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
156827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PALETTE_MATRICES_OES)
156927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_PALETTE_MATRICES_OES:
157027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
157127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
157227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_PROJECTION_STACK_DEPTH:
157327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
157427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_SIZE)
157527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_SIZE:
157627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_SIZE)
157727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
157827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_STACK_DEPTH:
157927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
158027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_TEXTURE_UNITS)
158127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_TEXTURE_UNITS:
158227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_TEXTURE_UNITS)
158327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VERTEX_UNITS_OES)
158427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_VERTEX_UNITS_OES:
158527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VERTEX_UNITS_OES)
158627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_STACK_DEPTH)
158727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_STACK_DEPTH:
158827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_STACK_DEPTH)
158927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
159027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_BUFFER_BINDING:
159127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
159227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_STRIDE)
159327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_STRIDE:
159427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_STRIDE)
159527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NORMAL_ARRAY_TYPE)
159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NORMAL_ARRAY_TYPE:
159727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NORMAL_ARRAY_TYPE)
159827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
159927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
160027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
160127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PACK_ALIGNMENT)
160227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PACK_ALIGNMENT:
160327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PACK_ALIGNMENT)
160427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
160527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PERSPECTIVE_CORRECTION_HINT:
160627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
160727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE)
160827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE:
160927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE)
161027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
161127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
161227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
161327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
161427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
161527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
161627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
161727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SIZE_ARRAY_TYPE_OES:
161827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
161927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POINT_SMOOTH_HINT)
162027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POINT_SMOOTH_HINT:
162127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POINT_SMOOTH_HINT)
162227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_FACTOR)
162327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POLYGON_OFFSET_FACTOR:
162427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_FACTOR)
162527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_POLYGON_OFFSET_UNITS)
162627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_POLYGON_OFFSET_UNITS:
162727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_POLYGON_OFFSET_UNITS)
162827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_STACK_DEPTH)
162927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_STACK_DEPTH:
163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_STACK_DEPTH)
163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_RED_BITS)
163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_RED_BITS:
163327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_RED_BITS)
163427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHADE_MODEL)
163527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHADE_MODEL:
163627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHADE_MODEL)
163727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_BITS)
163827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_BITS:
163927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_BITS)
164027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_CLEAR_VALUE)
164127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_CLEAR_VALUE:
164227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_CLEAR_VALUE)
164327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FAIL)
164427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_FAIL:
164527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FAIL)
164627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_FUNC)
164727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_FUNC:
164827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_FUNC)
164927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
165027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_PASS_DEPTH_FAIL:
165127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
165227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_PASS)
165327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_PASS_DEPTH_PASS:
165427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
165527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_REF)
165627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_REF:
165727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_REF)
165827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_VALUE_MASK)
165927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_VALUE_MASK:
166027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_VALUE_MASK)
166127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_STENCIL_WRITEMASK)
166227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_STENCIL_WRITEMASK:
166327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_STENCIL_WRITEMASK)
166427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SUBPIXEL_BITS)
166527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SUBPIXEL_BITS:
166627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SUBPIXEL_BITS)
166727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_BINDING_2D)
166827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_BINDING_2D:
166927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_BINDING_2D)
167027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
167127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
167227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
167327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
167427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_SIZE:
167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
167627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
167727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_STRIDE:
167827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
167927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
168027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_COORD_ARRAY_TYPE:
168127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
168227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_STACK_DEPTH)
168327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_STACK_DEPTH:
168427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_STACK_DEPTH)
168527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_UNPACK_ALIGNMENT)
168627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_UNPACK_ALIGNMENT:
168727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_UNPACK_ALIGNMENT)
168827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
168927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_BUFFER_BINDING:
169027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
169127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_SIZE)
169227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_SIZE:
169327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_SIZE)
169427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_STRIDE)
169527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_STRIDE:
169627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_STRIDE)
169727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VERTEX_ARRAY_TYPE)
169827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VERTEX_ARRAY_TYPE:
169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VERTEX_ARRAY_TYPE)
170027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
170127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
170227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
170327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
170427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_SIZE_OES:
170527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_STRIDE_OES:
170827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
170927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
171027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_WEIGHT_ARRAY_TYPE_OES:
171127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
171227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
171327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
171427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_POINT_SIZE_RANGE)
171527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALIASED_POINT_SIZE_RANGE:
171627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
171827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_ALIASED_LINE_WIDTH_RANGE:
171927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
172027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DEPTH_RANGE)
172127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DEPTH_RANGE:
172227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DEPTH_RANGE)
172327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MAX_VIEWPORT_DIMS)
172427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MAX_VIEWPORT_DIMS:
172527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MAX_VIEWPORT_DIMS)
172627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
172727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SMOOTH_LINE_WIDTH_RANGE:
172827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
172927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
173027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SMOOTH_POINT_SIZE_RANGE:
173127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
173227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 2;
173327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
173427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_CLEAR_VALUE)
173527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_CLEAR_VALUE:
173627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_CLEAR_VALUE)
173727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COLOR_WRITEMASK)
173827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COLOR_WRITEMASK:
173927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COLOR_WRITEMASK)
1740be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_FOG_COLOR)
1741be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_FOG_COLOR:
1742be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_FOG_COLOR)
1743be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
1744be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich        case GL_LIGHT_MODEL_AMBIENT:
1745be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
174627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SCISSOR_BOX)
174727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SCISSOR_BOX:
174827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SCISSOR_BOX)
174927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_VIEWPORT)
175027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_VIEWPORT:
175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_VIEWPORT)
175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
175327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
175427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX)
175527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_MATRIX:
175627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX)
175727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
175827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
175927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
176027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX)
176127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_MATRIX:
176227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX)
176327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
176427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
176527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
176627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX)
176727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_MATRIX:
176827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX)
176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
177127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
177227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 16;
177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
177427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
177527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMPRESSED_TEXTURE_FORMATS:
177627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1777be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich            _needed = getNumCompressedTextureFormats();
177827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
177927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
178227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
178327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
178427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
17852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
17862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
178727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
178827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
178917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
179017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
179117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLint *) (_paramsBase + _bufferOffset);
179217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
179327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetIntegerv(
179427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
179527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
179627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
179727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
179827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
179927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
180027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
180127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
18022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
18032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
18042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
180527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
180627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
180727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* const GLubyte * glGetString ( GLenum name ) */
180824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetString(JNIEnv* _env, jobject, jint name) {
180924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    const char* chars = (const char*) glGetString((GLenum) name);
181024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    return _env->NewStringUTF(chars);
181127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
181227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glHint ( GLenum target, GLenum mode ) */
181327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
181427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glHint__II
181527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint mode) {
181627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glHint(
181727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
181827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
181927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
182027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
182127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
182227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelf ( GLenum pname, GLfloat param ) */
182327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
182427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelf__IF
182527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelf(
182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
182927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
183027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
183127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
183227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
183327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
183427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__I_3FI
183527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
18362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
18372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
18382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
183927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
184027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
184127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
184227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
184327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
18442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
18452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
18462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
184727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
184827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
18502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
18512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
18522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
185327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
185427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
185527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
185627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
185727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
185827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
185927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
186027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
186127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
186227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
186327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
186427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
186527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
186627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
186727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
186827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
186927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
187027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
187127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
187227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
18732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
18742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
18752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
187627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
187727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
187827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
187927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
188027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
188127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
188227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelfv(
188327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
188427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
188527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
188627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
188727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
188827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
188927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
189027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
18922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
18932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
18942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
189527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
189627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
189727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
189827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
189927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__ILjava_nio_FloatBuffer_2
190027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
19012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
19022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
19032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
190427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
190517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
190627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
190727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
190827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
190917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
191027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
191127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
191827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
191927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
192027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
192127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
192227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
192327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
192427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
19272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
19282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
193027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
193127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
193217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
193317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
193417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
193517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelfv(
193727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
193827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
193927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
194027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
194227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
194327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
194427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
19452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
19462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
19472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
194827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
194927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelx ( GLenum pname, GLfixed param ) */
195127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
195227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelx__II
195327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelx(
195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
195627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
195727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
195827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
195927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
196027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
196127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
196227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__I_3II
196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
19642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
19652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
19662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
196727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
196827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
196927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
197027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
197127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
19722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
19732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
197527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
197627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
197727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
19782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
19792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19802545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
198127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
198227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
198327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
198427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
198527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
198627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
198727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
198827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
198927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
199027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
199127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
199227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
199327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
199427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
199527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
199627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
199727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
199827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
199927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
200027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
20012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
20022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
20032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
200427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
200527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
200627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
200727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
200927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
201027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelxv(
201127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
201227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
201327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
201427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
201527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
201627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
201727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
201827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
201927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
20202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
20212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
20222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
202327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
202427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
202527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
202727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__ILjava_nio_IntBuffer_2
202827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
20292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
20302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
20312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
203227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
203317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
203427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
203527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
203627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
203717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
203827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
203927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
204127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
204227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
204327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
204427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
204527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
204627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
204727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
204827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
204927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
205027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
205127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
205227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
205327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
205427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
20552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
20562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
20572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
205927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
206017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
206117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
206217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
206317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
206427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelxv(
206527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
206627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
206727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
207027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
207127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
207227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
20732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
20742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
20752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
207627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
207727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
207827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */
207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightf__IIF
208127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) {
208227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightf(
208327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
208427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
208527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
208627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
208727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
208827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
208927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
209027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
209127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__II_3FI
209227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
20932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
20942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
20952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
209627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
209727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
209827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
209927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
210027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
21012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
210427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
210527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
210627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
21072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
211027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
211127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
211227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
211327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
211427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
211527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
211627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
211727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
211827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
211927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
212027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
212127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
212227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
212327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
212427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
212527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
212627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
212727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
212827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
212927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
213027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
213127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
213227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
213427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
213527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
213627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
213927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
214027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
214127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
214227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
214327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
214427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
214527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
214627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
214727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
214827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
214927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
215027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
215127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
215227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
215327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
215427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
215527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
21562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
215927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
216027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
216127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
216227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
216327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
216427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
216527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightfv(
216627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
216727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
216927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
217027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
217227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
217327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
217427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
217527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
21762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
21772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
21782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
217927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
218027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
218127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
218227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
218327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__IILjava_nio_FloatBuffer_2
218427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
21852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
21862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
21872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
218827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
218917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
219027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
219127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
219227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
219317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
219427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
219527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
219627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
219727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
219827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
219927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
220027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
220127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
220227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
220327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
220427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
220527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
220627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
220727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
220827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
220927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
221027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
221127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
221227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
221827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
221927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
222027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
222127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
222227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
222327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
222427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
222527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
222627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
222727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
222827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
222927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
223027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
223127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
223227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
223327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
223427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
223527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
22372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
224027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
224127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
224217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
224317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
224417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
224517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
224627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightfv(
224727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
224827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
224927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
225027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
225127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
225227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
225327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
225427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
225527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
22562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
22572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
22582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
225927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
226027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
226127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */
226227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
226327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightx__III
226427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) {
226527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightx(
226627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
226727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
226827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
226927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
227227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
227327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
227427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__II_3II
227527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
22762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
22772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
22782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
227927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
228027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
228127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
228227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
228327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
22842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
228727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
228827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
228927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
22902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
229327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
229427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
229527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
229627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
229727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
229827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
229927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
230027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
230127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
230227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
230327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
230427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
230527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
230627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
230727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
230827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
230927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
231027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
231127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
231227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
231327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
231427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
231527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
231627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
231727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
232227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
232327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
232427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
232527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
232627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
232727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
232827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
232927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
233027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
233127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
233227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
233327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
233427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
233527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
233627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
233727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
233827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
23392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
23402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
23412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
234227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
234327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
234427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
234527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
234627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
234727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
234827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightxv(
234927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
235027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
235127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
235227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
235327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
235427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
23592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
23602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
23612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
236227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
236327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
236427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
236527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
236627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__IILjava_nio_IntBuffer_2
236727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
23682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
23692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
23702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
237127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
237217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
237327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
237427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
237527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
237617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
237727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
237827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
237927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
238027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
238127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
238227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
238327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
238427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
238527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
238627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
238727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
238827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
238927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
239027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
239127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
239227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
239327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
239427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
239527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
239627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
239727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
239827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
239927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
240027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
240127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
240227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
240327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
240427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
240527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
240627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
240727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
240827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
240927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
241027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
241127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
241227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
241327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
241427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
241527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
241627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
241727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
241827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
241927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
24202545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
24212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
24222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
242327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
242427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
242517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
242617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
242717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
242817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
242927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightxv(
243027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
243127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
243227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
243327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
243427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
243527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
243627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
243727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
243827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
24392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
24402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
24412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
244227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
244327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
244427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidth ( GLfloat width ) */
244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
244627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidth__F
244727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat width) {
244827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLineWidth(
244927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)width
245027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
245127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidthx ( GLfixed width ) */
245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
245527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidthx__I
245627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint width) {
245727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLineWidthx(
245827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)width
245927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
246027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
246127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
246227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadIdentity ( void ) */
246327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
246427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadIdentity__
246527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
246627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadIdentity();
246727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
246827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
246927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */
247027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
247127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf___3FI
247227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
24732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
24742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
24752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
247627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m_base = (GLfloat *) 0;
247727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
247827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
247927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
248027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
24812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
24822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
24832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
248427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
248527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
248627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
24872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
24882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
24892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
249027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
249127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
249227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
249327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfloat *)
249427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
249527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
249627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
249727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixf(
249827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
249927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
250027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
250127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
250227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
250327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
250427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
250527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
25062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
25072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
25082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
250927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
251027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
251127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */
251227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
251327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf__Ljava_nio_FloatBuffer_2
251427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
251527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
251617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
251727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
251827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
251927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
252017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
252117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
252217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
252317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfloat *) (_mBase + _bufferOffset);
252417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
252527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixf(
252627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
252727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
252827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
252927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
253027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
253127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
253227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
253327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */
253427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
253527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx___3II
253627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
25372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
25382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
25392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
254027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m_base = (GLfixed *) 0;
254127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
254227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
254327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
254427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
25452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
25462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
25472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
254827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
254927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
255027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
25512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
25522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
25532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
255427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
255527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
255627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
255727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfixed *)
255827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
255927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
256027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
256127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixx(
256227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
256327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
256427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
256527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
256627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
256727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
256827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
256927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
25702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
25712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
25722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
257327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
257427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
257527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */
257627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
257727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx__Ljava_nio_IntBuffer_2
257827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
257927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
258017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
258127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
258227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
258327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
258417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
258517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
258617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
258717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfixed *) (_mBase + _bufferOffset);
258817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
258927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixx(
259027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
259127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
259227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
259327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
259427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
259527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
259627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
259727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLogicOp ( GLenum opcode ) */
259827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
259927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLogicOp__I
260027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint opcode) {
260127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLogicOp(
260227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)opcode
260327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
260427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
260527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
260627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */
260727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
260827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialf__IIF
260927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) {
261027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialf(
261127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
261227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
261327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
261427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
261527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
261627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
261727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
261827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
261927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__II_3FI
262027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
26212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
26222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
26232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
262427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
262527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
262627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
262727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
262827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
26292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
26302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
263227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
263327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
263427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
26352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
26362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
263827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
263927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
264027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
264127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
264227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
264327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
264427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
264527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
264627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
264727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
264827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
264927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
265027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
265127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
265227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
265327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
265427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
265527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
265627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
265727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
265827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
265927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
266027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
266127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
266227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
266327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
266427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
266527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
266627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
266727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
266827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
266927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
26702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
26712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
26722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
267327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
267427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
267527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
267627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
267727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
267827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
267927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialfv(
268027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
268127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
268227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
268327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
268427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
268527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
268627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
268727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
268827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
268927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
26902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
26912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
26922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
269327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
269427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
269527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
269627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
269727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__IILjava_nio_FloatBuffer_2
269827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
26992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
27002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
27012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
270227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
270317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
270427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
270527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
270627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
270717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
270827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
270927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
271027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
271127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
271227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
271327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
271427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
271527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
271627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
271727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
271827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
271927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
272027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
272127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
272227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
272327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
272427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
272527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
272627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
272727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
272827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
272927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
273027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
273127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
273227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
273327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
273427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
273527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
273627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
27372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
27382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
274027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
274127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
274217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
274317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
274417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
274517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
274627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialfv(
274727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
274827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
274927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
275027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
275127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
275227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
275327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
275427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
275527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
27562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
27572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
27582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
275927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
276027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
276127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */
276227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
276327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialx__III
276427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) {
276527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialx(
276627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
276727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
276827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
276927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
277027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
277127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
277227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
277327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
277427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__II_3II
277527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
27762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
27772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
27782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
277927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
278027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
278127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
278227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
278327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
27842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
27852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
278727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
278827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
278927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
27902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
27912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
279327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
279427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
279527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
279627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
279727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
279827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
279927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
280027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
280127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
280227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
280327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
280427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
280527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
280627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
280727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
280827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
280927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
281027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
281127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
281227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
281327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
281427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
281527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
281627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
281727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
281827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
281927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
282027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
282127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
282227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
282327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
282427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
28252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
28262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
28272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
282827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
282927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
283027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
283127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
283227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
283327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
283427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialxv(
283527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
283627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
283727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
283827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
283927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
284027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
284127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
284227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
284327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
284427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
28452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
28462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
28472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
284827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
284927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
285027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
285127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
285227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__IILjava_nio_IntBuffer_2
285327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
28542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
28552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
28562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
285727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
285817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
285927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
286027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
286127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
286217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
286327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
286427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
286527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
286627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
286727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
286827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
286927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
287027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
287127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
287227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
287327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
287427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
287527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
287627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
287727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
287827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
287927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
288027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
288127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
288227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
288327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
288427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
288527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
288627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
288727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
288827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
288927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
289027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
289127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
28922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
28932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
28942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
289527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
289627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
289717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
289817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
289917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
290017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
290127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialxv(
290227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
290327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
290427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
290527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
290627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
290727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
290827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
290927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
291027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
29112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
29122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
29132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
291427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
291527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
291627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMatrixMode ( GLenum mode ) */
291727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
291827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMatrixMode__I
291927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
292027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMatrixMode(
292127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
292227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
292327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
292427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
292527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */
292627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
292727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf___3FI
292827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
29292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
29302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
29312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
293227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m_base = (GLfloat *) 0;
293327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
293427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
293527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
293627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
29372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
29382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
29392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
294027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
294127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
294227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
29432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
29442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
29452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
294627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
294727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
294827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
294927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfloat *)
295027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
295127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
295227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
295327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixf(
295427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
295527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
295627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
295727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
295827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
295927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
296027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
296127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
29622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
29632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
29642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
296527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
296627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
296727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */
296827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
296927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf__Ljava_nio_FloatBuffer_2
297027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
297127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
297217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
297327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
297427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
297527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
297617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
297717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
297817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
297917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfloat *) (_mBase + _bufferOffset);
298017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
298127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixf(
298227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
298327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
298427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
298527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
298627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
298727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
298827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
298927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */
299027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
299127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx___3II
299227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
29932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
29942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
29952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
299627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m_base = (GLfixed *) 0;
299727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
299827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
299927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
300027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
30012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
30022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
30032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
300427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
300527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
300627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
30072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
30082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
30092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
301027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
301127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
301227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
301327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfixed *)
301427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
301527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
301627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
301727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixx(
301827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
301927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
302027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
302127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
302227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
302327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
302427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
302527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
30262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
30272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
30282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
302927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
303027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
303127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */
303227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
303327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx__Ljava_nio_IntBuffer_2
303427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
303527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
303617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
303727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
303827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
303927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
304017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
304117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
304217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
304317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfixed *) (_mBase + _bufferOffset);
304417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
304527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixx(
304627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
304727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
304827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
304927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
305027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
305127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
305227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
305327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */
305427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
305527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4f__IFFFF
305627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) {
305727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultiTexCoord4f(
305827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
305927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)s,
306027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)t,
306127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)r,
306227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)q
306327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
306427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
306527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
306627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */
306727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
306827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4x__IIIII
306927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) {
307027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultiTexCoord4x(
307127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
307227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)s,
307327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)t,
307427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)r,
307527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)q
307627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
307727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
307827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
307927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */
308027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
308127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3f__FFF
308227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) {
308327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glNormal3f(
308427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)nx,
308527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)ny,
308627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)nz
308727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
308827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
308927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
309027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */
309127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
309227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3x__III
309327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) {
309427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glNormal3x(
309527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)nx,
309627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)ny,
309727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)nz
309827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
309927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
310027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
310127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
310227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
310327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormalPointerBounds__IILjava_nio_Buffer_2I
310427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
310527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
310617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
310727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
310827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
310927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
3110e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
311116e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
3112e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3113e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3114e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3115e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
311627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glNormalPointerBounds(
311727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
311827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
311927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
312027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
312127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
312227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
312327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
312427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
312527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
312627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthof__FFFFFF
312727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
312827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glOrthof(
312927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)left,
313027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)right,
313127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)bottom,
313227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)top,
313327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zNear,
313427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zFar
313527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
313627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
313727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
313827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
313927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
314027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthox__IIIIII
314127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
314227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glOrthox(
314327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)left,
314427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)right,
314527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)bottom,
314627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)top,
314727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zNear,
314827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zFar
314927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
315027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
315127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
315227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPixelStorei ( GLenum pname, GLint param ) */
315327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
315427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPixelStorei__II
315527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
315627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPixelStorei(
315727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
315827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)param
315927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
316027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
316127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
316227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSize ( GLfloat size ) */
316327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
316427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSize__F
316527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat size) {
316627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointSize(
316727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)size
316827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
316927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
317027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
317127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizex ( GLfixed size ) */
317227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
317327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSizex__I
317427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size) {
317527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointSizex(
317627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)size
317727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
317827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
317927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
318027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */
318127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
318227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffset__FF
318327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) {
318427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPolygonOffset(
318527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)factor,
318627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)units
318727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
318827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
318927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
319027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */
319127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
319227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffsetx__II
319327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint factor, jint units) {
319427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPolygonOffsetx(
319527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)factor,
319627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)units
319727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
319827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
319927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
320027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPopMatrix ( void ) */
320127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
320227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPopMatrix__
320327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
320427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPopMatrix();
320527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
320627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
320727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPushMatrix ( void ) */
320827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
320927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPushMatrix__
321027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
321127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPushMatrix();
321227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
321327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
321427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */
321527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
321627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glReadPixels__IIIIIILjava_nio_Buffer_2
321727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) {
321827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
321917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
322027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
322127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
322227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
322317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
322417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (pixels == NULL) {
322517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
322617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
322717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
322827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glReadPixels(
322927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
323027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
323127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
323227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
323327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
323427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
323527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pixels
323627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
323727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
32382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, pixels, JNI_TRUE);
323927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
324027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
324127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
324227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */
324327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
324427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatef__FFFF
324527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) {
324627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glRotatef(
324727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)angle,
324827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)x,
324927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)y,
325027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)z
325127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
325227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
325327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
325427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */
325527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
325627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatex__IIII
325727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) {
325827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glRotatex(
325927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)angle,
326027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)x,
326127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)y,
326227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)z
326327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
326427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
326527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
326627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */
326727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
326827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoverage__FZ
326927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) {
327027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glSampleCoverage(
327127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)value,
327227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)invert
327327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
327427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
327527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
327627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */
327727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
327827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoveragex__IZ
327927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint value, jboolean invert) {
328027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glSampleCoveragex(
328127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)value,
328227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)invert
328327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
328427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
328527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
328627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */
328727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
328827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalef__FFF
328927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
329027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glScalef(
329127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)x,
329227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)y,
329327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)z
329427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
329527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
329627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
329727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */
329827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
329927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalex__III
330027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
330127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glScalex(
330227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)x,
330327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)y,
330427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)z
330527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
330627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
330727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
330827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */
330927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
331027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScissor__IIII
331127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
331227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glScissor(
331327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
331427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
331527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
331627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height
331727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
331827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
331927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
332027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glShadeModel ( GLenum mode ) */
332127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
332227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glShadeModel__I
332327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
332427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glShadeModel(
332527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
332627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
332727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
332827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
332927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */
333027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
333127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilFunc__III
333227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) {
333327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glStencilFunc(
333427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func,
333527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)ref,
333627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)mask
333727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
333827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
333927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
334027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilMask ( GLuint mask ) */
334127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
334227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilMask__I
334327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mask) {
334427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glStencilMask(
334527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)mask
334627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
334727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
334827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
334927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */
335027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
335127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilOp__III
335227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) {
335327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glStencilOp(
335427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)fail,
335527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)zfail,
335627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)zpass
335727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
335827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
335927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
336027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
336127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
336227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I
336327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
336427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
336517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
336627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
336727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
336827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
3369e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
337016e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
3371e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3372e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3373e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3374e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
337527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexCoordPointerBounds(
337627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
337727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
337827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
337927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
338027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
338127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
338227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
338327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
338427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */
338527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
338627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvf__IIF
338727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
338827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvf(
338927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
339027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
339127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
339227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
339327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
339427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
339527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
339627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
339727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__II_3FI
339827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
33992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
34002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
34012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
340227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
340327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
340427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
340527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
340627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
34072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
34082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
34092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
341027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
341127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
341227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
34132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
34142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
34152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
341627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
341727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
341827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
341927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
342027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
342127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
342227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
342327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
342427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
342527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
342627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
342727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
342827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
342927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
343027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
343127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
343227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
343327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
343427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
343527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
343627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
343727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
343827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
343927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
344027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
344127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
34422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
34432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
34442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
344527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
344627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
344727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
344827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
344927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
345027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
345127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvfv(
345227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
345327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
345427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
345527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
345627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
345727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
345827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
345927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
346027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
346127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
34622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
34632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
34642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
346527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
346627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
346727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
346827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
346927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__IILjava_nio_FloatBuffer_2
347027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
34712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
34722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
34732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
347427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
347517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
347627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
347727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
347827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
347917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
348027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
348127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
348227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
348327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
348427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
348527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
348627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
348727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
348827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
348927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
349027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
349127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
349227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
349327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
349427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
349527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
349627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
349727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
349827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
349927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
350027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
350127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
350227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
35032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
35042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
35052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
350627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
350727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
350817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
350917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
351017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
351117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
351227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvfv(
351327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
351427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
351527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
351627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
351727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
351827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
351927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
352027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
352127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
35222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
35232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
35242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
352527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
352627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
352727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */
352827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
352927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvx__III
353027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
353127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvx(
353227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
353327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
353427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
353527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
353627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
353727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
353827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
353927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
354027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__II_3II
354127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
35422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
35432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
35442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
354527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
354627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
354727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
354827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
354927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
35502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
35512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
35522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
355327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
355427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
355527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
35562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
35572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
35582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
355927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
356027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
356127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
356227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
356327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
356427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
356527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
356627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
356727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
356827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
356927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
357027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
357127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
357227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
357327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
357427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
357527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
357627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
357727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
357827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
357927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
358027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
358127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
358227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
358327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
358427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
35852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
35862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
35872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
358827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
358927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
359027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
359127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
359227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
359327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
359427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvxv(
359527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
359627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
359727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
359827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
359927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
360027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
360127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
360227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
360327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
360427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
36052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
36062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
36072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
360827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
360927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
361027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
361127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
361227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__IILjava_nio_IntBuffer_2
361327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
36142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
36152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionType;
36162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    const char * _exceptionMessage;
361727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
361817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
361927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
362027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
362127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
362217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
362327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
362427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
362527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
362627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
362727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
362827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
362927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
363027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
363127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
363227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
363327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
363427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
363527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
363627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
363727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
363827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
363927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
364027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
364127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
364227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
364327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
364427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
364527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
36462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
36472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
36482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
364927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
365027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
365117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
365217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
365317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
365417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
365527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvxv(
365627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
365727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
365827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
365927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
366027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
366127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
366227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
366327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
366427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
36652545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
36662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
36672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
366827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
366927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
367027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */
367127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
367227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2
367327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) {
367427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
367517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
367627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
367727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
367827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
367927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pixels_buf) {
368017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
368117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
368217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (pixels == NULL) {
368317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
368417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
368527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
368627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexImage2D(
368727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
368827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
368927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)internalformat,
369027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
369127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
369227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)border,
369327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
369427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
369527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pixels
369627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
369727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
369827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, pixels, JNI_FALSE);
369927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
370027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
370127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
370227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */
370327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
370427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterf__IIF
370527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
370627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameterf(
370727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
370827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
370927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
371027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
371127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
371227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
371327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */
371427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
371527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterx__III
371627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
371727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameterx(
371827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
371927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
372027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
372127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
372227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
372327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
372427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */
372527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
372627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
372727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) {
372827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
372917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
373027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
373127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
373227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
373327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pixels_buf) {
373417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
373517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
373617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (pixels == NULL) {
373717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
373817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
373927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
374027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexSubImage2D(
374127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
374227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
374327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)xoffset,
374427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)yoffset,
374527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
374627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
374727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
374827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
374927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pixels
375027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
375127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
375227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, pixels, JNI_FALSE);
375327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
375427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
375527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
375627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */
375727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
375827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatef__FFF
375927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
376027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTranslatef(
376127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)x,
376227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)y,
376327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)z
376427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
376527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
376627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
376727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */
376827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
376927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatex__III
377027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
377127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTranslatex(
377227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)x,
377327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)y,
377427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)z
377527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
377627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
377727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
377827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
377927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
378027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glVertexPointerBounds__IIILjava_nio_Buffer_2I
378127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
378227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
378317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
378427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
378527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
378627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
3787e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
378816e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
3789e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3790e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3791e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3792e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
379327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glVertexPointerBounds(
379427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
379527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
379627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
379727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
379827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
379927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
380027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
380127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
380227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */
380327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
380427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glViewport__IIII
380527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
380627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glViewport(
380727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
380827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
380927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
381027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height
381127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
381227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
381327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
381427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES10";
381527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
381627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic JNINativeMethod methods[] = {
381727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit },
381827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I },
381927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF },
382027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II },
382127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindTexture", "(II)V", (void *) android_glBindTexture__II },
382227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II },
382327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClear", "(I)V", (void *) android_glClear__I },
382427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF },
382527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII },
382627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F },
382727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I },
382827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearStencil", "(I)V", (void *) android_glClearStencil__I },
382927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I },
383027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF },
383127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII },
383227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ },
383327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I },
383427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 },
383527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
383627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII },
383727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII },
383827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCullFace", "(I)V", (void *) android_glCullFace__I },
383927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II },
384027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 },
384127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I },
384227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z },
384327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF },
384427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II },
384527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisable", "(I)V", (void *) android_glDisable__I },
384627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I },
384727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III },
384827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 },
384927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnable", "(I)V", (void *) android_glEnable__I },
385027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I },
385127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFinish", "()V", (void *) android_glFinish__ },
385227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFlush", "()V", (void *) android_glFlush__ },
385327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogf", "(IF)V", (void *) android_glFogf__IF },
385427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI },
385527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 },
385627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogx", "(II)V", (void *) android_glFogx__II },
385727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II },
385827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 },
385927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrontFace", "(I)V", (void *) android_glFrontFace__I },
386027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF },
386127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII },
386227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II },
386327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 },
386427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetError", "()I", (void *) android_glGetError__ },
386527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II },
386627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 },
3867a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich{"glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },
386827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glHint", "(II)V", (void *) android_glHint__II },
386927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF },
387027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI },
387127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 },
387227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelx", "(II)V", (void *) android_glLightModelx__II },
387327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II },
387427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 },
387527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightf", "(IIF)V", (void *) android_glLightf__IIF },
387627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI },
387727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 },
387827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightx", "(III)V", (void *) android_glLightx__III },
387927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II },
388027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 },
388127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidth", "(F)V", (void *) android_glLineWidth__F },
388227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I },
388327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ },
388427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI },
388527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 },
388627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II },
388727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 },
388827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLogicOp", "(I)V", (void *) android_glLogicOp__I },
388927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF },
389027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI },
389127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 },
389227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialx", "(III)V", (void *) android_glMaterialx__III },
389327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II },
389427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 },
389527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I },
389627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI },
389727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 },
389827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II },
389927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 },
390027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF },
390127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII },
390227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF },
390327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3x", "(III)V", (void *) android_glNormal3x__III },
390427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I },
390527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF },
390627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII },
390727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II },
390827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSize", "(F)V", (void *) android_glPointSize__F },
390927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSizex", "(I)V", (void *) android_glPointSizex__I },
391027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF },
391127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II },
391227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPopMatrix", "()V", (void *) android_glPopMatrix__ },
391327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPushMatrix", "()V", (void *) android_glPushMatrix__ },
391427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 },
391527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF },
391627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII },
391727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ },
391827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ },
391927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalef", "(FFF)V", (void *) android_glScalef__FFF },
392027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalex", "(III)V", (void *) android_glScalex__III },
392127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScissor", "(IIII)V", (void *) android_glScissor__IIII },
392227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glShadeModel", "(I)V", (void *) android_glShadeModel__I },
392327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III },
392427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilMask", "(I)V", (void *) android_glStencilMask__I },
392527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilOp", "(III)V", (void *) android_glStencilOp__III },
392627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I },
392727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF },
392827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI },
392927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 },
393027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III },
393127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II },
393227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 },
393327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 },
393427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF },
393527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III },
393627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
393727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF },
393827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatex", "(III)V", (void *) android_glTranslatex__III },
393927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I },
394027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glViewport", "(IIII)V", (void *) android_glViewport__IIII },
394127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich};
394227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
394327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES10(JNIEnv *_env)
394427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
394527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int err;
394627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
394727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return err;
394827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
3949