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