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
29be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich/* special calls implemented in Android's GLES wrapper used to more
30be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich * efficiently bound-check passed arrays */
31be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichextern "C" {
32be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack PalevichGL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type, GLsizei stride,
33be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        const GLvoid *ptr, GLsizei count);
34be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich}
35be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich
3627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic int initialized = 0;
3727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
3827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass nioAccessClass;
3927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jclass bufferClass;
4027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBasePointerID;
4127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayID;
4227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jmethodID getBaseArrayOffsetID;
4327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID positionID;
4427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID limitID;
4527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jfieldID elementSizeShiftID;
4627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
4727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* Cache method IDs each time the class is loaded. */
4827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
4927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
5024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass)
5127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
5227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
5327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
5427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
5527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
5627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
5727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
5827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
5927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBasePointer", "(Ljava/nio/Buffer;)J");
6027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
6127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
6227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
6327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
6427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
6527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    positionID = _env->GetFieldID(bufferClass, "position", "I");
6627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    limitID = _env->GetFieldID(bufferClass, "limit", "I");
6727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    elementSizeShiftID =
6827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
6927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
7027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
7127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
7227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void *
7327f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichgetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
7427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
7527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint position;
7627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint limit;
7727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint elementSizeShift;
7827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jlong pointer;
7927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint offset;
8027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    void *data;
8127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
8227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    position = _env->GetIntField(buffer, positionID);
8327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    limit = _env->GetIntField(buffer, limitID);
8427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    *remaining = (limit - position) << elementSizeShift;
8627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    pointer = _env->CallStaticLongMethod(nioAccessClass,
8727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBasePointerID, buffer);
8827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pointer != 0L) {
8927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        *array = NULL;
9027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        return (void *) (jint) pointer;
9127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
9224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
9327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
9427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBaseArrayID, buffer);
9527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    offset = _env->CallStaticIntMethod(nioAccessClass,
9627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBaseArrayOffsetID, buffer);
9727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
9824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
9927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return (void *) ((char *) data + offset);
10027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
10127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
10227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
10327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
10427f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
10527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
10627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _env->ReleasePrimitiveArrayCritical(array, data,
10727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich					   commit ? 0 : JNI_ABORT);
10827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
10927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
110be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichstatic void *
111be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) {
112be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    char* buf = (char*) _env->GetDirectBufferAddress(buffer);
113be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (buf) {
114be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        jint position = _env->GetIntField(buffer, positionID);
115be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
116be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        buf += position << elementSizeShift;
117be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    } else {
11824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException",
11924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes                          "Must use a native order direct Buffer");
120be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
121be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    return (void*) buf;
122be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich}
123be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich
12427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// --------------------------------------------------------------------------
12527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindBuffer ( GLenum target, GLuint buffer ) */
12627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
12727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindBuffer__II
12827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint buffer) {
12927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glBindBuffer(
13027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
13127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)buffer
13227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
13327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
13427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
13527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */
13627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
13727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBufferData__IILjava_nio_Buffer_2I
13827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) {
13927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
14027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
14127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *data = (GLvoid *) 0;
14227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
14327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (data_buf) {
14427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
145c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich        if (_remaining < size) {
14624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes            jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < size");
147c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich            goto exit;
148c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich        }
14927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
15027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glBufferData(
15127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
15227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizeiptr)size,
15327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)data,
15427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)usage
15527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
156c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich
157c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit:
15827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
15927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
16027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
16127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
16227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
16327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */
16427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
16527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBufferSubData__IIILjava_nio_Buffer_2
16627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) {
16727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
16827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
16927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *data = (GLvoid *) 0;
17027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
17127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
172c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich    if (_remaining < size) {
17324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < size");
174c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich        goto exit;
175c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich    }
17627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glBufferSubData(
17727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
17827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLintptr)offset,
17927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizeiptr)size,
18027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)data
18127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
182c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevich
183c620a52b69a5f29563e06497e30877809f5d67a5Jack Palevichexit:
18427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
18527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
18627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
18727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
18827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
18927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
19027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
19127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanef__I_3FI
19227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) {
19327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *equation_base = (GLfloat *) 0;
19427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
19527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *equation = (GLfloat *) 0;
19627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
19727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!equation_ref) {
19824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "equation == null");
19927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
20027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
20127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
20224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
20327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
20427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
20527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(equation_ref) - offset;
20627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    equation_base = (GLfloat *)
20727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
20827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    equation = equation_base + offset;
20927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
21027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClipPlanef(
21127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)plane,
21227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)equation
21327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
21427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
21527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
21627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (equation_base) {
21727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
21827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
21927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
22027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
22127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
22227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
22327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
22427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanef__ILjava_nio_FloatBuffer_2
22527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
22627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
22727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
22827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *equation = (GLfloat *) 0;
22927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
23027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining);
23127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClipPlanef(
23227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)plane,
23327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)equation
23427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
23527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
23627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, equation, JNI_FALSE);
23727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
23827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
23927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
24027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
24127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
24227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanex__I_3II
24327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) {
24427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *equation_base = (GLfixed *) 0;
24527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
24627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *equation = (GLfixed *) 0;
24727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
24827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!equation_ref) {
24924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "equation == null");
25027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
25127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
25227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
25324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
25427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
25527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
25627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(equation_ref) - offset;
25727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    equation_base = (GLfixed *)
25827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
25927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    equation = equation_base + offset;
26027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
26127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClipPlanex(
26227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)plane,
26327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)equation
26427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
26527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
26627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
26727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (equation_base) {
26827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
26927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
27027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
27127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
27227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
27327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
27427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
27527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClipPlanex__ILjava_nio_IntBuffer_2
27627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
27727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
27827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
27927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *equation = (GLfixed *) 0;
28027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
28127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining);
28227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClipPlanex(
28327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)plane,
28427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)equation
28527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
28627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
28727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, equation, JNI_FALSE);
28827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
28927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
29027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
29127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) */
29227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
29327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4ub__BBBB
29427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jbyte red, jbyte green, jbyte blue, jbyte alpha) {
29527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColor4ub(
29627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLubyte)red,
29727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLubyte)green,
29827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLubyte)blue,
29927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLubyte)alpha
30027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
30127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
30227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
30327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
30427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
30527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorPointer__IIII
30627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
30727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColorPointer(
30827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
30927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
31027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
31127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (const GLvoid *)offset
31227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
31327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
31427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
31527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
31627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
31727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteBuffers__I_3II
31827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
31927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *buffers_base = (GLuint *) 0;
32027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
32127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *buffers = (GLuint *) 0;
32227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
32327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!buffers_ref) {
32424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "buffers == null");
32527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
32627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
32727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
32824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
32927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
33027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
33127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(buffers_ref) - offset;
33227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
33324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
33427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
33527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
33627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    buffers_base = (GLuint *)
33727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
33827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    buffers = buffers_base + offset;
33927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
34027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDeleteBuffers(
34127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
34227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)buffers
34327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
34427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
34527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
34627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (buffers_base) {
34727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
34827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
34927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
35027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
35127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
35227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
35327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
35427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteBuffers__ILjava_nio_IntBuffer_2
35527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
35627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
35727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
35827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *buffers = (GLuint *) 0;
35927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
36027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining);
36127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
36224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
36327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
36427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
36527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDeleteBuffers(
36627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
36727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)buffers
36827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
36927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
37027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
37127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
37227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, buffers, JNI_FALSE);
37327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
37427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
37527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
37627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */
37727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
37827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawElements__IIII
37927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) {
38027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawElements(
38127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode,
38227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)count,
38327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
38427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (const GLvoid *)offset
38527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
38627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
38727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
38827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
38927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
39027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenBuffers__I_3II
39127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
39227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
39327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *buffers_base = (GLuint *) 0;
39427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
39527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *buffers = (GLuint *) 0;
39627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
39727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!buffers_ref) {
39827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
39924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "buffers == null");
40027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
40127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
40227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
40327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
40424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
40527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
40627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
40727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(buffers_ref) - offset;
40827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
40927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
41024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
41127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
41227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
41327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    buffers_base = (GLuint *)
41427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
41527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    buffers = buffers_base + offset;
41627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
41727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGenBuffers(
41827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
41927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)buffers
42027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
42127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
42227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
42327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (buffers_base) {
42427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
42527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
42627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
42727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
42827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
42927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
43027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
43127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenBuffers__ILjava_nio_IntBuffer_2
43227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
43327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
43427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
43527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
43627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *buffers = (GLuint *) 0;
43727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
43827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining);
43927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
44027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
44124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
44227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
44327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
44427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGenBuffers(
44527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)buffers
44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
44827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
44927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
45027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
45127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE);
45227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
45327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
45427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
45527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
45627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
45727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBooleanv__I_3ZI
45827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) {
45927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
46027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLboolean *params_base = (GLboolean *) 0;
46127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
46227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLboolean *params = (GLboolean *) 0;
46327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
46427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
46527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
46624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
46827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
47027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
47124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
47227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
47327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
47427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
47527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLboolean *)
47627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
47927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetBooleanv(
48027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
48127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean *)params
48227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
48327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
48427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
48527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
48627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
48727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
48827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
48927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
49027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
49127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
49227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
49327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBooleanv__ILjava_nio_IntBuffer_2
49427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
49527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
49727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
49827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLboolean *params = (GLboolean *) 0;
49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining);
50127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetBooleanv(
50227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
50327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean *)params
50427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
50727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
50827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
50927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
51027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
51127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBufferParameteriv__II_3II
51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
51473108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
51573108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params_base = (GLint *) 0;
51673108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
51773108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params = (GLint *) 0;
51873108675c944ab4ee89631dced23566b12341b66Jack Palevich
51973108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (!params_ref) {
52073108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
52124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
52273108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
52373108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
52473108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (offset < 0) {
52573108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
52624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
52773108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
52873108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
52973108675c944ab4ee89631dced23566b12341b66Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
53073108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < 1) {
53173108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
53224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
53373108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
53473108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
53573108675c944ab4ee89631dced23566b12341b66Jack Palevich    params_base = (GLint *)
53673108675c944ab4ee89631dced23566b12341b66Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
53773108675c944ab4ee89631dced23566b12341b66Jack Palevich    params = params_base + offset;
53873108675c944ab4ee89631dced23566b12341b66Jack Palevich
53973108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGetBufferParameteriv(
54073108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
54173108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)pname,
54273108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLint *)params
54373108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
54473108675c944ab4ee89631dced23566b12341b66Jack Palevich
54573108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
54673108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (params_base) {
54773108675c944ab4ee89631dced23566b12341b66Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
54873108675c944ab4ee89631dced23566b12341b66Jack Palevich            _exception ? JNI_ABORT: 0);
54973108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
55227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
55327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
55427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetBufferParameteriv__IILjava_nio_IntBuffer_2
55527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
55673108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
55773108675c944ab4ee89631dced23566b12341b66Jack Palevich    jarray _array = (jarray) 0;
55873108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
55973108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params = (GLint *) 0;
56073108675c944ab4ee89631dced23566b12341b66Jack Palevich
56173108675c944ab4ee89631dced23566b12341b66Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
56273108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < 1) {
56373108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
56424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
56573108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
56673108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
56773108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGetBufferParameteriv(
56873108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
56973108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)pname,
57073108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLint *)params
57173108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
57273108675c944ab4ee89631dced23566b12341b66Jack Palevich
57373108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
57473108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_array) {
57573108675c944ab4ee89631dced23566b12341b66Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
57673108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
57727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
57827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
57927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
58027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
58127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanef__I_3FI
58227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) {
58327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
58427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *eqn_base = (GLfloat *) 0;
58527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
58627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *eqn = (GLfloat *) 0;
58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!eqn_ref) {
58927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
59024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "eqn == null");
59127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
59227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
59427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
59524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
59627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
59727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
59827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(eqn_ref) - offset;
59927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    eqn_base = (GLfloat *)
60027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    eqn = eqn_base + offset;
60227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
60327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetClipPlanef(
60427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
60527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)eqn
60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
60827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
60927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (eqn_base) {
61027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
61127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
61227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
61327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
61627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
61727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanef__ILjava_nio_FloatBuffer_2
61827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
61927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
62227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *eqn = (GLfloat *) 0;
62327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
62427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining);
62527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetClipPlanef(
62627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)eqn
62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
62927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
63027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE);
63127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
63227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanex__I_3II
63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) {
63827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
63927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *eqn_base = (GLfixed *) 0;
64027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
64127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *eqn = (GLfixed *) 0;
64227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
64327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!eqn_ref) {
64427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
64524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "eqn == null");
64627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
64727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
64827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
64927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
65024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
65127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
65227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
65327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(eqn_ref) - offset;
65427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    eqn_base = (GLfixed *)
65527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
65627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    eqn = eqn_base + offset;
65727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
65827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetClipPlanex(
65927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
66027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)eqn
66127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
66227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
66327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
66427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (eqn_base) {
66527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
66627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
66727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
66827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
66927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
67027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
67127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
67227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetClipPlanex__ILjava_nio_IntBuffer_2
67327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
67427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
67527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
67627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
67727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *eqn = (GLfixed *) 0;
67827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
67927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining);
68027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetClipPlanex(
68127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
68227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)eqn
68327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
68427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
68527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE);
68627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
68727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
68827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
68927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFixedv ( GLenum pname, GLfixed *params ) */
69027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
69127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFixedv__I_3II
69227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
69327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
69427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
69527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
69627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
69727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
69827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
69927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
70024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
70127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
70227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
70327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
70427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
70524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
70627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
70727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
70827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
70927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
71027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
71127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
71227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
71327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetFixedv(
71427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
71527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
71627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
71727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
71827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
71927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
72027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
72127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
72327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
72427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
72527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFixedv ( GLenum pname, GLfixed *params ) */
72627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
72727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFixedv__ILjava_nio_IntBuffer_2
72827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
72927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
73027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
73127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
73327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
73427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
73527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetFixedv(
73627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
73727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
73827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
73927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
74327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
74427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */
74527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
74627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFloatv__I_3FI
74727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
75027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
75127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
75227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
75327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
75427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
75524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
75627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
75727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
75827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
75927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
76024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
76227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
76327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
76427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
76527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
76627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
76727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetFloatv(
76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
77027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
77127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
77227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
77327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
77427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
77627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
77727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
77827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
77927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
78027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */
78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetFloatv__ILjava_nio_FloatBuffer_2
78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
78427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
78527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
78627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
78727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetFloatv(
79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
79227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
79327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
79427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
79527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
79627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
79727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
79827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
79927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
80027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
80127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightfv__II_3FI
80227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
80327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
80427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
80527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
80627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
80727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
80827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
80927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
81024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
81127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
81227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
81327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
81427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
81524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
81627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
81727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
81827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
81927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
82027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
82127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
82227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
82327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
82427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
82527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
82627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
82727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
82827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
82927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
83027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
83127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
83227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
83327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
83427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
83527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
83627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
83727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
83827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
84027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
84127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
84227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
84327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
84427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
84527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
84627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
84727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
84827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
84927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
85027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
85127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
85227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
85327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
85427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
85527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
85627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
85727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
85827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
85927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
86027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
86127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
86227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
86324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
86427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
86527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
86627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
86727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
86827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
86927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
87027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetLightfv(
87127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
87227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
87327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
87427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
87527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
87627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
87727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
87827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
87927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
88027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
88127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
88227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
88327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
88427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightfv__IILjava_nio_FloatBuffer_2
88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
88727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
88827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
88927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
89027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
89127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
89227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
89327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
89427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
89527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
89627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
89727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
89827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
89927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
90027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
90127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
90227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
90327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
90427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
90527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
90627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
90727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
90827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
90927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
91027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
91127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
91227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
91327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
91427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
91527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
91627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
91727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
91827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
91927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
92027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
92127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
92227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
92327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
92427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
92527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
92627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
92727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
92827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
92927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
93027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
93127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
93227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
93327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
93527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
93627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
93724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
93827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
93927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
94027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetLightfv(
94127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
94227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
94327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
94427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
94527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
94627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
94727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
94827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
94927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
95027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
95127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
95227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
95327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
95427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightxv__II_3II
95527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
95627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
95727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
95827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
95927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
96027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
96127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
96227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
96324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
96427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
96527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
96627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
96727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
96824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
96927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
97027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
97127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
97227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
97327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
97427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
97527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
97627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
97727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
97827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
97927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
98027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
98127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
98227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
98327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
98427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
98627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
98727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
98827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
98927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
99027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
99127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
99227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
99327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
99427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
99527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
99627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
99727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
99827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
99927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
100027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
100127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
100227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
100327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
100427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
100527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
100627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
100727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
100827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
100927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
101027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
101127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
101227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
101327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
101427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
101527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
101624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
101727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
101827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
101927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
102127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
102227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
102327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetLightxv(
102427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
102527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
102627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
102727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
102827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
102927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
103027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
103127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
103227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
103327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
103427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
103527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
103627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
103727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
103827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetLightxv__IILjava_nio_IntBuffer_2
103927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
104027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
104127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
104227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
104327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
104427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
104527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
104627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
104727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
104827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_EXPONENT)
104927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_EXPONENT:
105027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_EXPONENT)
105127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_CUTOFF)
105227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_CUTOFF:
105327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_CUTOFF)
105427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_CONSTANT_ATTENUATION)
105527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_CONSTANT_ATTENUATION:
105627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_CONSTANT_ATTENUATION)
105727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LINEAR_ATTENUATION)
105827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LINEAR_ATTENUATION:
105927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LINEAR_ATTENUATION)
106027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_QUADRATIC_ATTENUATION)
106127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_QUADRATIC_ATTENUATION:
106227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_QUADRATIC_ATTENUATION)
106327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
106427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
106527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
106627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
106727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
106827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
106927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
107027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
107127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
107227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
107327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
107427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
107527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
107627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
107727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
107827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
107927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
108527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
108627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
108727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
108827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
108927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
109024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
109127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
109227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
109327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetLightxv(
109427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
109527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
109627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
109727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
109827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
109927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
110027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
110127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
110227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
110327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
110427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
110727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialfv__II_3FI
110827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
110927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
111027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
111127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
111227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
111327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
111427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
111527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
111624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
111827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
112124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
112227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
112327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
112427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
112527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
112627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
112727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
112827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
112927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
113027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
113127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
113227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
113327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
113427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
113527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
113627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
113727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
113827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
113927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
114027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
114127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
114227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
114327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
114427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
114527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
114627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
114727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
114827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
114927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
115027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
115127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
115227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
115327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
115427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
115524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
115627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
115727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
115827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
115927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
116027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
116127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
116227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetMaterialfv(
116327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
116427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
116527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
116627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
116727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
117027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
117127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
117227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
117327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
117427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
117527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
117627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
117727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialfv__IILjava_nio_FloatBuffer_2
117827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
117927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
118027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
118127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
118227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
118327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
118427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
118527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
118627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
118727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
118827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
118927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
119027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
119127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
119227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
119327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
119427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
119527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
119627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
119727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
119827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
119927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
120027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
120127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
120227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
120527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
120627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
120727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
120827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
120927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
121027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
121127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
121227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
121327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
121427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
121524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
121627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
121727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
121827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetMaterialfv(
121927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
122027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
122127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
122227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
122327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
122427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
122527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
122627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
122727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
122827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
122927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
123027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
123127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
123227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialxv__II_3II
123327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
123427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
123527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
123627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
123727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
123827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
123927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
124027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
124124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
124227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
124327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
124427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
124527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
124624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
124727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
124827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
124927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
125027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
125227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
125327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
125427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
125527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
125627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
125727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
125827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
125927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
126027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
126127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
126227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
126327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
126427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
126527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
126627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
126727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
126827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
127027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
127127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
127227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
127327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
127427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
127527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
127627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
127727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
127827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
127927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
128024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
128127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
128227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
128327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
128427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
128527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
128627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
128727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetMaterialxv(
128827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
128927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
129027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
129127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
129227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
129327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
129427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
129527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
129627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
129727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
129827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
129927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
130027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
130127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
130227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetMaterialxv__IILjava_nio_IntBuffer_2
130327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
130427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
130527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
130627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
130727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
130827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
130927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
131027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
131127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
131227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SHININESS)
131327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SHININESS:
131427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SHININESS)
131527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
131627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
131727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
131927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
132027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
132127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
132227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
132327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
132427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
132527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
132627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
132727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
132827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
132927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
133027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
133127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
133227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
133327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
133427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
133527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
133627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
133727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
133827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
133927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
134024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
134127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
134327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetMaterialxv(
134427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
134527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
134627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
134727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
134827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
134927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
135027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
135127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
135227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
135327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
135427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
135527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params ) */
135627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
135727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvfv__II_3FI
135827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint env, jint pname, jfloatArray params_ref, jint offset) {
135927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
136027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
136127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
136227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
136327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
136427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
136527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
136624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
136727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
136827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
136927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
137027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
137124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
137227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
137327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
137427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
137527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
137627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
137727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
137827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
137927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
138027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
138127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
138327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
138427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
138527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
138627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
138727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
138827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
138927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
139027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
139127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
139227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
139327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
139427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
139527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
139627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
139727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
139827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
139924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
140027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
140127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
140227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
140327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
140427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
140527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
140627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexEnvfv(
140727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)env,
140827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
140927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
141027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
141127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
141227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
141327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
141427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
141527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
141627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
141727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
141827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
141927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params ) */
142027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
142127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvfv__IILjava_nio_FloatBuffer_2
142227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
142327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
142427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
142527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
142627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
142727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
142827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
142927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
143027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
143127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
143227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
143327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
143427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
143527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
143627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
143727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
143827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
143927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
144027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
144127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
144227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
144327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
144427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
144527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
144627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
144727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
144827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
145027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
145127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
145227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
145324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
145427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
145527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
145627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexEnvfv(
145727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)env,
145827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
145927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
146027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
146127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
146227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
146327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
146427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
146527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
146627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
146727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
146827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
146927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
147027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnviv__II_3II
147127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
147227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
147327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params_base = (GLint *) 0;
147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
147727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
147827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
147924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
148027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
148127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
148227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
148327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
148424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
148527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
148627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
148727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
148827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
148927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
149027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
149127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
149227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
149327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
149427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
149527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
149627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
149727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
149827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
149927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
150027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
150127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
150227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
150327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
150427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
150527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
150627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
150727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
150827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
150927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
151027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
151127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
151224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
151327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
151427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
151527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLint *)
151627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
151727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
151827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
151927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexEnviv(
152027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)env,
152127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
152227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
152327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
152427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
152527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
152627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
152727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
152827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
152927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
153027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
153127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
153227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
153327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
153427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnviv__IILjava_nio_IntBuffer_2
153527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
153627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
153727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
153827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
153927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
154027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
154227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
154327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
154427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
154527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
154627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
154727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
154827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
154927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
155027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
155127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
155227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
155327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
155427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
155627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
155727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
155827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
155927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
156027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
156127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
156227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
156327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
156427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
156527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
156624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
156727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
156827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
156927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexEnviv(
157027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)env,
157127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
157227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
157327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
157427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
157527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
157627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
157727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
157827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
157927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
158027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
158127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
158227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
158327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvxv__II_3II
158427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
158527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
158627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
158727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
158827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
158927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
159027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
159127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
159224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
159327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
159427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
159527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
159724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
159827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
159927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
160027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
160127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
160227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
160327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
160427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
160527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
160627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
160727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
160827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
160927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
161027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
161127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
161227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
161327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
161427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
161527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
161627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
161727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
161827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
161927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
162027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
162127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
162227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
162327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
162427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
162524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
162627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
162727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
162827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
162927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexEnvxv(
163327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)env,
163427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
163527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
163627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
163727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
163827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
163927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
164027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
164127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
164227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
164327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
164427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
164527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
164627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
164727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexEnvxv__IILjava_nio_IntBuffer_2
164827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
164927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
165027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
165127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
165227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
165327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
165427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
165527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
165627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
165727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
165827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
165927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
166027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
166127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
166227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
166327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
166427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
166527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
166627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
166727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
166827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
166927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
167027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
167127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
167227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
167327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
167427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
167627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
167727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
167827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
167924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
168027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
168127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
168227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexEnvxv(
168327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)env,
168427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
168527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
168627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
168727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
168827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
168927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
169027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
169127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
169227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
169327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
169427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
169527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
169627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterfv__II_3FI
169727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
169827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
170027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
170127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
170227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
170327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
170427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
170524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
170827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
170927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
171024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
171127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
171227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
171327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
171427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
171527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
171624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
171827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
171927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
172027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
172127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
172227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
172327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexParameterfv(
172427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
172527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
172627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
172727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
172827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
172927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
173027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
173127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
173227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
173327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
173427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
173527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
173627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
173727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
173827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterfv__IILjava_nio_FloatBuffer_2
173927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
174027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
174127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
174227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
174327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
174427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
174527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
174627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
174727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
174824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
174927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
175027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexParameterfv(
175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
175327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
175427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
175527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
175627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
175727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
175827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
175927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
176027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
176127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
176227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
176327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
176427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
176527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameteriv__II_3II
176627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
176727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
176827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params_base = (GLint *) 0;
176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
177127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
177227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
177424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
177527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
177627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
177727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
177827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
177924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
178227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
178327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
178427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
178524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
178627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
178727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
178827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLint *)
178927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
179027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
179127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
179227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexParameteriv(
179327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
179427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
179527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
179627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
179727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
179827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
179927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
180027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
180127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
180227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
180327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
180427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
180527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
180627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
180727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameteriv__IILjava_nio_IntBuffer_2
180827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
180927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
181027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
181127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
181227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
181327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
181427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
181527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
181627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
181724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
181827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
181927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
182027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexParameteriv(
182127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
182227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
182327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
182427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
182527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
182927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
183027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
183127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
183227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
183327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
183427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterxv__II_3II
183527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
183627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
183727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
183827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
183927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
184027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
184127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
184227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
184324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
184427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
184527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
184627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
184727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
184824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
185027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
185127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
185227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
185327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
185424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
185527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
185627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
185727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
185827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
185927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
186027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
186127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexParameterxv(
186227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
186327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
186427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
186527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
186627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
186727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
186827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
186927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
187027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
187127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
187227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
187327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
187427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
187527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
187627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetTexParameterxv__IILjava_nio_IntBuffer_2
187727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
187827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
187927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
188027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
188127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
188227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
188327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
188427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
188527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
188624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
188727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
188827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
188927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGetTexParameterxv(
189027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
189227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
189327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
189427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
189527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
189627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
189727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
189827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
189927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
190027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
190127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsBuffer ( GLuint buffer ) */
190227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean
190327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsBuffer__I
190427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint buffer) {
190527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLboolean _returnValue;
190627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _returnValue = glIsBuffer(
190727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)buffer
190827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
190927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return _returnValue;
191027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
191127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsEnabled ( GLenum cap ) */
191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean
191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsEnabled__I
191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint cap) {
191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLboolean _returnValue;
191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _returnValue = glIsEnabled(
191827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)cap
191927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
192027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return _returnValue;
192127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
192227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
192327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLboolean glIsTexture ( GLuint texture ) */
192427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jboolean
192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glIsTexture__I
192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint texture) {
192727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLboolean _returnValue;
192827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _returnValue = glIsTexture(
192927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)texture
193027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
193127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return _returnValue;
193227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
193327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
193427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormalPointer ( GLenum type, GLsizei stride, GLint offset ) */
193527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormalPointer__III
193727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint type, jint stride, jint offset) {
193827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glNormalPointer(
193927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
194027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (const GLvoid *)offset
194227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
194327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
194427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
194527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterf ( GLenum pname, GLfloat param ) */
194627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
194727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterf__IF
194827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
194927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointParameterf(
195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
195127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
195227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
195327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
195627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
195727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterfv__I_3FI
195827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
195927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
196027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
196127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
196227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
196424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
196527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
196627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
196727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
196824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
196927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
197027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
197127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
197227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
197324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
197427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
197527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
197627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
197727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
197827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
197927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
198027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointParameterfv(
198127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
198227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
198327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
198427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
198527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
198627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
198727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
198827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
198927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
199027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
199127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
199227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
199327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
199427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterfv__ILjava_nio_FloatBuffer_2
199527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
199627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
199727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
199827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
199927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
200027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
200127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
200224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
200327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
200427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
200527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointParameterfv(
200627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
200727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
200927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
201027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
201127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
201227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
201327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
201427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
201527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
201627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterx ( GLenum pname, GLfixed param ) */
201727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
201827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterx__II
201927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
202027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointParameterx(
202127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
202227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
202327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
202427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
202527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
202727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
202827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxv__I_3II
202927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
203027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
203127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
203227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
203327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
203427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
203524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
203627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
203727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
203827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
203924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
204127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
204227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
204327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
204424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
204527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
204627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
204727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
204827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
204927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
205027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
205127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointParameterxv(
205227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
205327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
205427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
205527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
205627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
205727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
205927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
206027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
206127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
206227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
206327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
206427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
206527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointParameterxv__ILjava_nio_IntBuffer_2
206627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
206727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
207027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
207127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
207227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
207324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
207427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
207527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
207627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointParameterxv(
207727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
207827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
208127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
208227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
208327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
208427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
208527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
208627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
208727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
208827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
2089be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevichandroid_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I
2090be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich  (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
209127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
209227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
209327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
209427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
2095be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    if (pointer_buf) {
2096be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
2097be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        if ( ! pointer ) {
2098be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich            return;
2099be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        }
2100be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    }
2101be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich    glPointSizePointerOESBounds(
210227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
210327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
2104be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLvoid *)pointer,
2105be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich        (GLsizei)remaining
210627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
210727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
210827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
210927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
211027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
211127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexCoordPointer__IIII
211227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
211327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexCoordPointer(
211427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
211527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
211627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
211727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (const GLvoid *)offset
211827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
211927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
212027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
212127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvi ( GLenum target, GLenum pname, GLint param ) */
212227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
212327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvi__III
212427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
212527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvi(
212627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
212727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
212827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)param
212927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
213027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
213127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
213227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
213427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnviv__II_3II
213527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
213627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params_base = (GLint *) 0;
213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
213927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
214027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
214124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
214227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
214327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
214427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
214524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
214627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
214727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
214827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
214927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
215027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
215127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
215227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
215327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
215427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
215527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
215627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
215727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
215827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
215927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
216027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
216127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
216227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
216327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
216427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
216527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
216627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
216727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
216927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
217027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
217224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
217327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
217427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
217527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLint *)
217627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
217727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
217827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
217927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnviv(
218027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
218127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
218227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
218327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
218427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
218527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
218627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
218727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
218827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
218927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
219027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
219127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
219227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
219327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
219427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnviv__IILjava_nio_IntBuffer_2
219527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
219627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
219727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
219827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
219927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
220027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
220127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
220227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
220327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_MODE)
220427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_MODE:
220527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_MODE)
220627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_RGB)
220727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_RGB:
220827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_RGB)
220927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_COMBINE_ALPHA)
221027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_COMBINE_ALPHA:
221127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_COMBINE_ALPHA)
221227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 1;
221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
221827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
221927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
222027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 0;
222127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
222227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
222327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
222424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
222527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
222627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
222727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnviv(
222827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
222927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
223027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
223127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
223227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
223327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
223427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
223527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
223727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
223827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
223927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
224027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
224127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterfv__II_3FI
224227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
224327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
224427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
224527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
224627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
224727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
224824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
224927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
225027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
225127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
225224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
225327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
225427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
225527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
225627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
225724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
225827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
225927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
226027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
226127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
226227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
226327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
226427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameterfv(
226527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
226627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
226727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
226827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
226927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
227227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
227327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
227427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
227527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
227627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
227727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
227827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
227927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterfv__IILjava_nio_FloatBuffer_2
228027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
228127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
228227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
228327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
228427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
228527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
228627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
228724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
228827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
228927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
229027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameterfv(
229127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
229227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
229327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
229427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
229527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
229627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
229727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
229827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
229927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
230027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
230127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
230227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */
230327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
230427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteri__III
230527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
230627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameteri(
230727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
230827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
230927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)param
231027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
231127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
231227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
231327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
231427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
231527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteriv__II_3II
231627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
231727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params_base = (GLint *) 0;
231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
232224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
232327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
232427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
232527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
232624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
232727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
232827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
232927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
233027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
233124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
233227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
233327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
233427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLint *)
233527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
233627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
233727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
233827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameteriv(
233927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
234027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
234127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
234227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
234327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
234427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
234527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
234627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
234727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
234827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
234927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
235027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
235127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
235227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
235327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameteriv__IILjava_nio_IntBuffer_2
235427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLint *params = (GLint *) 0;
235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
235927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
236027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
236124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
236227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
236327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
236427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameteriv(
236527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
236627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
236727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint *)params
236827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
236927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
237027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
237127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
237227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
237327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
237427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
237527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
237627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
237727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
237827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxv__II_3II
237927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
238027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
238127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
238227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
238327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
238427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
238524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
238627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
238727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
238827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
238924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
239027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
239127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
239227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
239327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
239424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
239527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
239627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
239727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
239827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
239927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
240027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
240127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameterxv(
240227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
240327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
240427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
240527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
240627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
240727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
240827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
240927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
241027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
241127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
241227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
241327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
241427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
241527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
241627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterxv__IILjava_nio_IntBuffer_2
241727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
241827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
241927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
242027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
242127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
242227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
242327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < 1) {
242424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
242527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
242627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
242727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameterxv(
242827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
242927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
243027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
243127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
243227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
243327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
243427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
243527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
243627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
243727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
243827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
243927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
244027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
244127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glVertexPointer__IIII
244227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
244327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glVertexPointer(
244427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
244627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
244727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (const GLvoid *)offset
244827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
244927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
245027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
245127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES11";
245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic JNINativeMethod methods[] = {
245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit },
245527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II },
245627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I },
245727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 },
245827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanef", "(I[FI)V", (void *) android_glClipPlanef__I_3FI },
245927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanef__ILjava_nio_FloatBuffer_2 },
246027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanex", "(I[II)V", (void *) android_glClipPlanex__I_3II },
246127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanex__ILjava_nio_IntBuffer_2 },
246227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4ub", "(BBBB)V", (void *) android_glColor4ub__BBBB },
246327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorPointer", "(IIII)V", (void *) android_glColorPointer__IIII },
246427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II },
246527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 },
246627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII },
246727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II },
246827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 },
246927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI },
247027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 },
247127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II },
247227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 },
247327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanef", "(I[FI)V", (void *) android_glGetClipPlanef__I_3FI },
247427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 },
247527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanex", "(I[II)V", (void *) android_glGetClipPlanex__I_3II },
247627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanex__ILjava_nio_IntBuffer_2 },
247727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFixedv", "(I[II)V", (void *) android_glGetFixedv__I_3II },
247827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFixedv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedv__ILjava_nio_IntBuffer_2 },
247927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI },
248027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 },
248127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightfv", "(II[FI)V", (void *) android_glGetLightfv__II_3FI },
248227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetLightfv__IILjava_nio_FloatBuffer_2 },
248327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightxv", "(II[II)V", (void *) android_glGetLightxv__II_3II },
248427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxv__IILjava_nio_IntBuffer_2 },
248527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialfv", "(II[FI)V", (void *) android_glGetMaterialfv__II_3FI },
248627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 },
248727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialxv", "(II[II)V", (void *) android_glGetMaterialxv__II_3II },
248827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxv__IILjava_nio_IntBuffer_2 },
248927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvfv", "(II[FI)V", (void *) android_glGetTexEnvfv__II_3FI },
249027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexEnvfv__IILjava_nio_FloatBuffer_2 },
249127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnviv", "(II[II)V", (void *) android_glGetTexEnviv__II_3II },
249227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnviv__IILjava_nio_IntBuffer_2 },
249327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvxv", "(II[II)V", (void *) android_glGetTexEnvxv__II_3II },
249427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 },
249527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI },
249627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 },
249727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II },
249827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 },
249927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterxv", "(II[II)V", (void *) android_glGetTexParameterxv__II_3II },
250027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 },
250127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I },
250227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I },
250327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glIsTexture", "(I)Z", (void *) android_glIsTexture__I },
250427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormalPointer", "(III)V", (void *) android_glNormalPointer__III },
250527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterf", "(IF)V", (void *) android_glPointParameterf__IF },
250627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterfv", "(I[FI)V", (void *) android_glPointParameterfv__I_3FI },
250727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glPointParameterfv__ILjava_nio_FloatBuffer_2 },
250827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterx", "(II)V", (void *) android_glPointParameterx__II },
250927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxv", "(I[II)V", (void *) android_glPointParameterxv__I_3II },
251027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointParameterxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxv__ILjava_nio_IntBuffer_2 },
2511be6eac828f5af8b608c3fa6749330f1dcd6b6206Jack Palevich{"glPointSizePointerOESBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I },
251227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexCoordPointer", "(IIII)V", (void *) android_glTexCoordPointer__IIII },
251327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvi", "(III)V", (void *) android_glTexEnvi__III },
251427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnviv", "(II[II)V", (void *) android_glTexEnviv__II_3II },
251527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnviv__IILjava_nio_IntBuffer_2 },
251627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI },
251727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 },
251827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III },
251927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II },
252027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 },
252127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxv", "(II[II)V", (void *) android_glTexParameterxv__II_3II },
252227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxv__IILjava_nio_IntBuffer_2 },
252327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glVertexPointer", "(IIII)V", (void *) android_glVertexPointer__IIII },
252427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich};
252527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
252627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES11(JNIEnv *_env)
252727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
252827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int err;
252927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
253027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return err;
253127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
2532