1560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/*
2560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich**
3560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich** Copyright 2009, The Android Open Source Project
4560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich**
524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** Licensed under the Apache License, Version 2.0 (the "License");
624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** you may not use this file except in compliance with the License.
724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** You may obtain a copy of the License at
8560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich**
924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes**     http://www.apache.org/licenses/LICENSE-2.0
10560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich**
1124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** Unless required by applicable law or agreed to in writing, software
1224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** distributed under the License is distributed on an "AS IS" BASIS,
1324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** See the License for the specific language governing permissions and
15560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich** limitations under the License.
16560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich*/
17560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
18560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich// This source file is automatically generated
19560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "jni.h"
2124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "JNIHelp.h"
22560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#include <android_runtime/AndroidRuntime.h>
23560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#include <utils/misc.h>
24560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
25560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#include <assert.h>
26560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#include <GLES2/gl2.h>
27560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#include <GLES2/gl2ext.h>
28560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
29560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic int initialized = 0;
30560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
31560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jclass nioAccessClass;
32560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jclass bufferClass;
33560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jmethodID getBasePointerID;
34560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jmethodID getBaseArrayID;
35560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jmethodID getBaseArrayOffsetID;
36560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jfieldID positionID;
37560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jfieldID limitID;
38560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jfieldID elementSizeShiftID;
39560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
40560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* Cache method IDs each time the class is loaded. */
41560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
42560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass)
44560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{
45560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
46560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
47560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
48560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
49560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
50560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
51560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
52560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            "getBasePointer", "(Ljava/nio/Buffer;)J");
53560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
54560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
55560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
56560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
57560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
58560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    positionID = _env->GetFieldID(bufferClass, "position", "I");
59560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    limitID = _env->GetFieldID(bufferClass, "limit", "I");
60560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    elementSizeShiftID =
61560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
62560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
63560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
64560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
65560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void *
66560814f6b11abe83ff0c4ed18cac015c276b3181Jack PalevichgetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
67560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{
68560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint position;
69560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint limit;
70560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint elementSizeShift;
71560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jlong pointer;
72560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint offset;
73560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    void *data;
74560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
75560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    position = _env->GetIntField(buffer, positionID);
76560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    limit = _env->GetIntField(buffer, limitID);
77560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
78560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    *remaining = (limit - position) << elementSizeShift;
79560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    pointer = _env->CallStaticLongMethod(nioAccessClass,
80560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            getBasePointerID, buffer);
81560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (pointer != 0L) {
82560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        *array = NULL;
83560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        return (void *) (jint) pointer;
84560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
8524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
86560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
87560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            getBaseArrayID, buffer);
88560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    offset = _env->CallStaticIntMethod(nioAccessClass,
89560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            getBaseArrayOffsetID, buffer);
90560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
9124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
92560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return (void *) ((char *) data + offset);
93560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
94560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
95560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
96560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
97560814f6b11abe83ff0c4ed18cac015c276b3181Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
98560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{
99560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _env->ReleasePrimitiveArrayCritical(array, data,
100560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich					   commit ? 0 : JNI_ABORT);
101560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void *
104560814f6b11abe83ff0c4ed18cac015c276b3181Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) {
105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    char* buf = (char*) _env->GetDirectBufferAddress(buffer);
106560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (buf) {
107560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        jint position = _env->GetIntField(buffer, positionID);
108560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
109560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        buf += position << elementSizeShift;
110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    } else {
11124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException",
11224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes                          "Must use a native order direct Buffer");
113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return (void*) buf;
115560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic int
118560814f6b11abe83ff0c4ed18cac015c276b3181Jack PalevichgetNumCompressedTextureFormats() {
119560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    int numCompressedTextureFormats = 0;
120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats);
121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return numCompressedTextureFormats;
122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
123560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
124560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void glVertexAttribPointerBounds(GLuint indx, GLint size, GLenum type,
125560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        GLboolean normalized, GLsizei stride, const GLvoid *pointer, GLsizei count) {
126560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttribPointer(indx, size, type, normalized, stride, pointer);
127560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
128560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich// --------------------------------------------------------------------------
130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glActiveTexture ( GLenum texture ) */
131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glActiveTexture__I
133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint texture) {
134560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glActiveTexture(
135560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)texture
136560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
137560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glAttachShader ( GLuint program, GLuint shader ) */
140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
141560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glAttachShader__II
142560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint shader) {
143560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glAttachShader(
144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)shader
146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBindAttribLocation ( GLuint program, GLuint index, const char *name ) */
150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
151560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBindAttribLocation__IILjava_lang_String_2
152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint index, jstring name) {
153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    const char* _nativename = 0;
154560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
155560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!name) {
15624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "name == null");
157560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _nativename = _env->GetStringUTFChars(name, 0);
160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glBindAttribLocation(
162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index,
164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (char *)_nativename
165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
168560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_nativename) {
169560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleaseStringUTFChars(name, _nativename);
170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
172560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBindBuffer ( GLenum target, GLuint buffer ) */
175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBindBuffer__II
177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint buffer) {
178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glBindBuffer(
179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)buffer
181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBindFramebuffer ( GLenum target, GLuint framebuffer ) */
185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBindFramebuffer__II
187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint framebuffer) {
188560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glBindFramebuffer(
189560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)framebuffer
191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
193560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBindRenderbuffer ( GLenum target, GLuint renderbuffer ) */
195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBindRenderbuffer__II
197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint renderbuffer) {
198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glBindRenderbuffer(
199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)renderbuffer
201560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
202560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
203560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBindTexture ( GLenum target, GLuint texture ) */
205560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBindTexture__II
207560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint texture) {
208560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glBindTexture(
209560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)texture
211560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBlendColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */
215560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
216560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBlendColor__FFFF
217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
218560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glBlendColor(
219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)red,
220560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)green,
221560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)blue,
222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)alpha
223560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
224560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
225560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBlendEquation ( GLenum mode ) */
227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
228560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBlendEquation__I
229560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
23073108675c944ab4ee89631dced23566b12341b66Jack Palevich    glBlendEquation(
23173108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)mode
23273108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
233560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
234560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
235560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBlendEquationSeparate ( GLenum modeRGB, GLenum modeAlpha ) */
236560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
237560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBlendEquationSeparate__II
238560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint modeRGB, jint modeAlpha) {
23973108675c944ab4ee89631dced23566b12341b66Jack Palevich    glBlendEquationSeparate(
24073108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)modeRGB,
24173108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)modeAlpha
24273108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
243560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
244560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
245560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */
246560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
247560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBlendFunc__II
248560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) {
249560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glBlendFunc(
250560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)sfactor,
251560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)dfactor
252560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
253560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
254560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
255560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBlendFuncSeparate ( GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha ) */
256560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
257560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBlendFuncSeparate__IIII
258560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) {
25973108675c944ab4ee89631dced23566b12341b66Jack Palevich    glBlendFuncSeparate(
26073108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)srcRGB,
26173108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)dstRGB,
26273108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)srcAlpha,
26373108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)dstAlpha
26473108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
265560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
266560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
267560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */
268560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
269560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBufferData__IILjava_nio_Buffer_2I
270560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) {
271560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
272560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
273560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *data = (GLvoid *) 0;
274560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
275560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (data_buf) {
276560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
277560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        if (_remaining < size) {
27824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes            jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < size");
279560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            goto exit;
280560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        }
281560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
282560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glBufferData(
283560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
284560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizeiptr)size,
285560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)data,
286560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)usage
287560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
288560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
289560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
290560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
291560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
292560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
293560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
294560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
295560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */
296560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
297560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glBufferSubData__IIILjava_nio_Buffer_2
298560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) {
299560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
300560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
301560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *data = (GLvoid *) 0;
302560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
303560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
304560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < size) {
30524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < size");
306560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
307560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
308560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glBufferSubData(
309560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
310560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLintptr)offset,
311560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizeiptr)size,
312560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)data
313560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
314560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
315560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
316560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
317560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
318560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
320560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLenum glCheckFramebufferStatus ( GLenum target ) */
322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint
323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCheckFramebufferStatus__I
324560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target) {
325560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLenum _returnValue;
326560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glCheckFramebufferStatus(
327560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target
328560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
329560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
330560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
331560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
332560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glClear ( GLbitfield mask ) */
333560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
334560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glClear__I
335560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint mask) {
336560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glClear(
337560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLbitfield)mask
338560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
339560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
340560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */
342560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glClearColor__FFFF
344560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
345560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glClearColor(
346560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)red,
347560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)green,
348560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)blue,
349560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)alpha
350560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
351560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
352560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
353560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glClearDepthf ( GLclampf depth ) */
354560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
355560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glClearDepthf__F
356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jfloat depth) {
357560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glClearDepthf(
358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)depth
359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
361560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
362560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glClearStencil ( GLint s ) */
363560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
364560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glClearStencil__I
365560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint s) {
366560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glClearStencil(
367560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)s
368560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
369560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
370560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
371560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */
372560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
373560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glColorMask__ZZZZ
374560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) {
375560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glColorMask(
376560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)red,
377560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)green,
378560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)blue,
379560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)alpha
380560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
381560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
382560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
383560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCompileShader ( GLuint shader ) */
384560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
385560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCompileShader__I
386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint shader) {
387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glCompileShader(
388560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)shader
389560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
390560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */
393560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2
395560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) {
396560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
397560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
398560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *data = (GLvoid *) 0;
399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glCompressedTexImage2D(
402560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
403560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)level,
404560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)internalformat,
405560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)width,
406560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)height,
407560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)border,
408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)imageSize,
409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)data
410560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
411560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
412560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
413560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
414560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */
417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
418560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
419560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) {
420560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
421560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
422560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *data = (GLvoid *) 0;
423560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
424560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
425560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glCompressedTexSubImage2D(
426560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
427560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)level,
428560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)xoffset,
429560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)yoffset,
430560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)width,
431560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)height,
432560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)format,
433560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)imageSize,
434560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)data
435560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
436560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
437560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
438560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
439560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
440560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
441560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */
442560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
443560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCopyTexImage2D__IIIIIIII
444560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) {
445560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glCopyTexImage2D(
446560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
447560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)level,
448560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)internalformat,
449560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)x,
450560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)y,
451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)width,
452560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)height,
453560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)border
454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
456560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
457560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */
458560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCopyTexSubImage2D__IIIIIIII
460560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) {
461560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glCopyTexSubImage2D(
462560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
463560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)level,
464560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)xoffset,
465560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)yoffset,
466560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)x,
467560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)y,
468560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)width,
469560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)height
470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
472560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLuint glCreateProgram ( void ) */
474560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint
475560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCreateProgram__
476560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this) {
477560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint _returnValue;
478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glCreateProgram();
479560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
480560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
481560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
482560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLuint glCreateShader ( GLenum type ) */
483560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint
484560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCreateShader__I
485560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint type) {
486560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint _returnValue;
487560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glCreateShader(
488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)type
489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
491560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
492560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glCullFace ( GLenum mode ) */
494560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glCullFace__I
496560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glCullFace(
498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)mode
499560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
500560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
501560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
503560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
504560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteBuffers__I_3II
505560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
506560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *buffers_base = (GLuint *) 0;
507560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
508560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *buffers = (GLuint *) 0;
509560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
510560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!buffers_ref) {
51124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "buffers == null");
512560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
513560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
514560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
51524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
516560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
517560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
518560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(buffers_ref) - offset;
519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < n) {
52024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    buffers_base = (GLuint *)
524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
525560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    buffers = buffers_base + offset;
526560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDeleteBuffers(
528560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
529560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)buffers
530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
532560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (buffers_base) {
534560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
535560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
536560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
537560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
538560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
539560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
540560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
541560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteBuffers__ILjava_nio_IntBuffer_2
542560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
543560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
544560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
545560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *buffers = (GLuint *) 0;
546560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
547560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining);
548560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < n) {
54924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
550560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
551560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
552560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDeleteBuffers(
553560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
554560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)buffers
555560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
556560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
557560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
558560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
559560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, buffers, JNI_FALSE);
560560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
561560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
562560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
563560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteFramebuffers ( GLsizei n, const GLuint *framebuffers ) */
564560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
565560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteFramebuffers__I_3II
566560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
567560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *framebuffers_base = (GLuint *) 0;
568560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
569560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *framebuffers = (GLuint *) 0;
570560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
571560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!framebuffers_ref) {
57224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "framebuffers == null");
573560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
574560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
575560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
57624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
577560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
578560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
579560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
580560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    framebuffers_base = (GLuint *)
581560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0);
582560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    framebuffers = framebuffers_base + offset;
583560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
584560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDeleteFramebuffers(
585560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
586560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)framebuffers
587560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
588560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
589560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
590560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (framebuffers_base) {
591560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base,
592560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
593560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
594560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
595560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
596560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteFramebuffers ( GLsizei n, const GLuint *framebuffers ) */
597560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
598560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteFramebuffers__ILjava_nio_IntBuffer_2
599560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
600560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
601560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
602560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *framebuffers = (GLuint *) 0;
603560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
604560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining);
605560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDeleteFramebuffers(
606560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
607560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)framebuffers
608560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
609560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
610560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, framebuffers, JNI_FALSE);
611560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
612560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
613560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
614560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteProgram ( GLuint program ) */
615560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
616560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteProgram__I
617560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program) {
618560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDeleteProgram(
619560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program
620560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
621560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
622560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
623560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteRenderbuffers ( GLsizei n, const GLuint *renderbuffers ) */
624560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
625560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteRenderbuffers__I_3II
626560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
627560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *renderbuffers_base = (GLuint *) 0;
628560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
629560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *renderbuffers = (GLuint *) 0;
630560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
631560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!renderbuffers_ref) {
63224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "renderbuffers == null");
633560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
634560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
635560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
63624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
637560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
638560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
639560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
640560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    renderbuffers_base = (GLuint *)
641560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0);
642560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    renderbuffers = renderbuffers_base + offset;
643560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
644560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDeleteRenderbuffers(
645560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
646560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)renderbuffers
647560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
648560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
649560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
650560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (renderbuffers_base) {
651560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base,
652560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
653560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
654560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
655560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
656560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteRenderbuffers ( GLsizei n, const GLuint *renderbuffers ) */
657560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
658560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteRenderbuffers__ILjava_nio_IntBuffer_2
659560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
660560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
661560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
662560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *renderbuffers = (GLuint *) 0;
663560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
664560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining);
665560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDeleteRenderbuffers(
666560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
667560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)renderbuffers
668560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
669560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
670560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, renderbuffers, JNI_FALSE);
671560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
672560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
673560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
674560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteShader ( GLuint shader ) */
675560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
676560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteShader__I
677560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint shader) {
678560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDeleteShader(
679560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)shader
680560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
681560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
682560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
683560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
684560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
685560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteTextures__I_3II
686560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
687560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *textures_base = (GLuint *) 0;
688560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
689560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *textures = (GLuint *) 0;
690560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
691560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!textures_ref) {
69224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "textures == null");
693560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
694560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
695560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
69624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
697560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(textures_ref) - offset;
700560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < n) {
70124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
702560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
703560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    textures_base = (GLuint *)
705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    textures = textures_base + offset;
707560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
708560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDeleteTextures(
709560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)textures
711560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
713560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
714560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (textures_base) {
715560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
716560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
717560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
718560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
719560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
720560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
721560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
722560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDeleteTextures__ILjava_nio_IntBuffer_2
723560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
724560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
725560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *textures = (GLuint *) 0;
727560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining);
729560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < n) {
73024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
731560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
732560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
733560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDeleteTextures(
734560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
735560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)textures
736560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
738560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
739560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
740560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, textures, JNI_FALSE);
741560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
742560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
743560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
744560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDepthFunc ( GLenum func ) */
745560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
746560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDepthFunc__I
747560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint func) {
748560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDepthFunc(
749560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)func
750560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
751560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
752560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
753560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDepthMask ( GLboolean flag ) */
754560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
755560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDepthMask__Z
756560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jboolean flag) {
757560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDepthMask(
758560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)flag
759560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
760560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
762560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */
763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDepthRangef__FF
765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDepthRangef(
767560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)zNear,
768560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)zFar
769560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
770560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
771560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDetachShader ( GLuint program, GLuint shader ) */
773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
774560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDetachShader__II
775560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint shader) {
776560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDetachShader(
777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
778560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)shader
779560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
780560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
781560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
782560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDisable ( GLenum cap ) */
783560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
784560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDisable__I
785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint cap) {
786560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDisable(
787560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)cap
788560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
789560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
790560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
791560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDisableVertexAttribArray ( GLuint index ) */
792560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
793560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDisableVertexAttribArray__I
794560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint index) {
795560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDisableVertexAttribArray(
796560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index
797560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
798560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */
801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDrawArrays__III
803560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) {
804560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDrawArrays(
805560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)mode,
806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)first,
807560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count
808560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
809560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
810560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
811224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */
812224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevichstatic void
813224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevichandroid_glDrawElements__IIII
814224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) {
815224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich    glDrawElements(
816224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich        (GLenum)mode,
817224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich        (GLsizei)count,
818224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich        (GLenum)type,
819224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich        (const GLvoid *)offset
820224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich    );
821224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich}
822224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich
823560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */
824560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
825560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glDrawElements__IIILjava_nio_Buffer_2
826560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) {
827560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
828560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
829560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *indices = (GLvoid *) 0;
830560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
831560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining);
832560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < count) {
83324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/ArrayIndexOutOfBoundsException", "remaining() < count");
834560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
835560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
836560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glDrawElements(
837560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)mode,
838560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
839560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)type,
840560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)indices
841560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
842560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
843560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
844560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
845560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, indices, JNI_FALSE);
846560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
847560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
848560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
849560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glEnable ( GLenum cap ) */
850560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glEnable__I
852560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint cap) {
853560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glEnable(
854560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)cap
855560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
856560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
857560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
858560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glEnableVertexAttribArray ( GLuint index ) */
859560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
860560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glEnableVertexAttribArray__I
861560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint index) {
862560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glEnableVertexAttribArray(
863560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index
864560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
866560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
867560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glFinish ( void ) */
868560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
869560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glFinish__
870560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this) {
871560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glFinish();
872560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
873560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
874560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glFlush ( void ) */
875560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
876560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glFlush__
877560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this) {
878560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glFlush();
879560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
880560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
881560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glFramebufferRenderbuffer ( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) */
882560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
883560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glFramebufferRenderbuffer__IIII
884560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer) {
885560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glFramebufferRenderbuffer(
886560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
887560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)attachment,
888560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)renderbuffertarget,
889560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)renderbuffer
890560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
891560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
892560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
893560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glFramebufferTexture2D ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) */
894560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
895560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glFramebufferTexture2D__IIIII
896560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint textarget, jint texture, jint level) {
897560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glFramebufferTexture2D(
898560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
899560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)attachment,
900560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)textarget,
901560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)texture,
902560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)level
903560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
904560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
905560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
906560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glFrontFace ( GLenum mode ) */
907560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
908560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glFrontFace__I
909560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
910560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glFrontFace(
911560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)mode
912560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
913560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
914560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
915560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
916560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
917560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenBuffers__I_3II
918560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
919560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
920560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *buffers_base = (GLuint *) 0;
921560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
922560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *buffers = (GLuint *) 0;
923560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
924560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!buffers_ref) {
925560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
92624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "buffers == null");
927560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
928560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
929560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
930560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
93124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
932560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
933560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
934560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(buffers_ref) - offset;
935560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < n) {
936560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
93724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
938560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
939560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
940560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    buffers_base = (GLuint *)
941560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
942560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    buffers = buffers_base + offset;
943560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
944560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGenBuffers(
945560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
946560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)buffers
947560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
948560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
949560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
950560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (buffers_base) {
951560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
952560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
953560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
954560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
955560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
956560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
957560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
958560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenBuffers__ILjava_nio_IntBuffer_2
959560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
960560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
961560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
962560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
963560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *buffers = (GLuint *) 0;
964560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
965560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining);
966560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < n) {
967560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
96824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
969560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
970560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
971560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGenBuffers(
972560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
973560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)buffers
974560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
975560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
976560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
977560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
978560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE);
979560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
980560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
981560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
982560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenerateMipmap ( GLenum target ) */
983560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
984560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenerateMipmap__I
985560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target) {
986560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGenerateMipmap(
987560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target
988560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
989560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
990560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
991560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenFramebuffers ( GLsizei n, GLuint *framebuffers ) */
992560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
993560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenFramebuffers__I_3II
994560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
995560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
996560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *framebuffers_base = (GLuint *) 0;
997560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
998560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *framebuffers = (GLuint *) 0;
999560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1000560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!framebuffers_ref) {
1001560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
100224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "framebuffers == null");
1003560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1004560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1005560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
1006560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
100724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
1008560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1009560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1010560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
1011560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    framebuffers_base = (GLuint *)
1012560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0);
1013560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    framebuffers = framebuffers_base + offset;
1014560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1015560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGenFramebuffers(
1016560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
1017560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)framebuffers
1018560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1019560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1020560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1021560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (framebuffers_base) {
1022560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base,
1023560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1024560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1025560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenFramebuffers ( GLsizei n, GLuint *framebuffers ) */
1028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1029560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenFramebuffers__ILjava_nio_IntBuffer_2
1030560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
1031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1032560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
1033560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *framebuffers = (GLuint *) 0;
1035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining);
1037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGenFramebuffers(
1038560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
1039560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)framebuffers
1040560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1041560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
1042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, framebuffers, _exception ? JNI_FALSE : JNI_TRUE);
1043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1046560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenRenderbuffers ( GLsizei n, GLuint *renderbuffers ) */
1047560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1048560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenRenderbuffers__I_3II
1049560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
1050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *renderbuffers_base = (GLuint *) 0;
1052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1053560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *renderbuffers = (GLuint *) 0;
1054560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1055560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!renderbuffers_ref) {
1056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
105724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "renderbuffers == null");
1058560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1059560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1060560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
1061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
106224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
1063560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1064560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
1066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    renderbuffers_base = (GLuint *)
1067560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0);
1068560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    renderbuffers = renderbuffers_base + offset;
1069560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1070560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGenRenderbuffers(
1071560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
1072560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)renderbuffers
1073560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1074560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1075560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1076560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (renderbuffers_base) {
1077560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base,
1078560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1079560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1080560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1081560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1082560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenRenderbuffers ( GLsizei n, GLuint *renderbuffers ) */
1083560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1084560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenRenderbuffers__ILjava_nio_IntBuffer_2
1085560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
1086560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1087560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
1088560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1089560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *renderbuffers = (GLuint *) 0;
1090560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1091560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining);
1092560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGenRenderbuffers(
1093560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
1094560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)renderbuffers
1095560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1096560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
1097560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, renderbuffers, _exception ? JNI_FALSE : JNI_TRUE);
1098560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1099560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1100560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1101560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */
1102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenTextures__I_3II
1104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
1105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1106560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *textures_base = (GLuint *) 0;
1107560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1108560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *textures = (GLuint *) 0;
1109560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!textures_ref) {
1111560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
111224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "textures == null");
1113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1115560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
1116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
111724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
1118560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1119560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(textures_ref) - offset;
1121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < n) {
1122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
112324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < n");
1124560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1125560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1126560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    textures_base = (GLuint *)
1127560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
1128560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    textures = textures_base + offset;
1129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGenTextures(
1131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
1132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)textures
1133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1134560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1135560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1136560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (textures_base) {
1137560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
1138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1141560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1142560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */
1143560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGenTextures__ILjava_nio_IntBuffer_2
1145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
1146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
1148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *textures = (GLuint *) 0;
1150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1151560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining);
1152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < n) {
1153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
115424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < n");
1155560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1156560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1157560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGenTextures(
1158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
1159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)textures
1160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
1164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE);
1165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1168560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */
1169560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetActiveAttrib__III_3II_3II_3II_3BI
1171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jintArray length_ref, jint lengthOffset, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset, jbyteArray name_ref, jint nameOffset) {
1172560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *length_base = (GLsizei *) 0;
1174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _lengthRemaining;
1175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *length = (GLsizei *) 0;
1176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *size_base = (GLint *) 0;
1177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _sizeRemaining;
1178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *size = (GLint *) 0;
1179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLenum *type_base = (GLenum *) 0;
1180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _typeRemaining;
1181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLenum *type = (GLenum *) 0;
1182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    char *name_base = (char *) 0;
1183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _nameRemaining;
1184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    char *name = (char *) 0;
1185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!length_ref) {
1187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
118824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length == null");
1189560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (lengthOffset < 0) {
1192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
119324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "lengthOffset < 0");
1194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
1197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    length_base = (GLsizei *)
1198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0);
1199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    length = length_base + lengthOffset;
1200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1201560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!size_ref) {
1202560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
120324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "size == null");
1204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1205560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (sizeOffset < 0) {
1207560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
120824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "sizeOffset < 0");
1209560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1211560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset;
1212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    size_base = (GLint *)
1213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0);
1214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    size = size_base + sizeOffset;
1215560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1216560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!type_ref) {
1217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
121824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "type == null");
1219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1220560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1221560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (typeOffset < 0) {
1222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
122324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "typeOffset < 0");
1224560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1225560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset;
1227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    type_base = (GLenum *)
1228560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0);
1229560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    type = type_base + typeOffset;
1230560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1231560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!name_ref) {
1232560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
123324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "name == null");
1234560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1235560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1236560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (nameOffset < 0) {
1237560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
123824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "nameOffset < 0");
1239560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1240560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1241560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _nameRemaining = _env->GetArrayLength(name_ref) - nameOffset;
1242560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    name_base = (char *)
1243560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(name_ref, (jboolean *)0);
1244560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    name = name_base + nameOffset;
1245560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1246560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetActiveAttrib(
1247560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
1248560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index,
1249560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)bufsize,
1250560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei *)length,
1251560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)size,
1252560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum *)type,
1253560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (char *)name
1254560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1255560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1256560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1257560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (name_base) {
1258560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(name_ref, name_base,
1259560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1260560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1261560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (type_base) {
1262560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(type_ref, type_base,
1263560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1264560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1265560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (size_base) {
1266560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(size_ref, size_base,
1267560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1268560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1269560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (length_base) {
1270560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(length_ref, length_base,
1271560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1272560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1273560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1274560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1275560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */
1276560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1277560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetActiveAttrib__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B
1278560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jbyte name) {
1279560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1280560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _lengthArray = (jarray) 0;
1281560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _sizeArray = (jarray) 0;
1282560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _typeArray = (jarray) 0;
1283560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _lengthRemaining;
1284560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *length = (GLsizei *) 0;
1285560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _sizeRemaining;
1286560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *size = (GLint *) 0;
1287560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _typeRemaining;
1288560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLenum *type = (GLenum *) 0;
1289560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1290560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining);
1291560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining);
1292560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining);
1293560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetActiveAttrib(
1294560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
1295560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index,
1296560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)bufsize,
1297560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei *)length,
1298560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)size,
1299560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum *)type,
1300560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (char *)name
1301560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1302560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_lengthArray) {
1303560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _lengthArray, type, _exception ? JNI_FALSE : JNI_TRUE);
1304560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1305560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_sizeArray) {
1306560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _sizeArray, size, _exception ? JNI_FALSE : JNI_TRUE);
1307560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1308560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_typeArray) {
1309560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _typeArray, length, _exception ? JNI_FALSE : JNI_TRUE);
1310560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1311560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1312560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1313560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */
1314560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1315560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetActiveUniform__III_3II_3II_3II_3BI
1316560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jintArray length_ref, jint lengthOffset, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset, jbyteArray name_ref, jint nameOffset) {
1317560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1318560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *length_base = (GLsizei *) 0;
1319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _lengthRemaining;
1320560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *length = (GLsizei *) 0;
1321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *size_base = (GLint *) 0;
1322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _sizeRemaining;
1323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *size = (GLint *) 0;
1324560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLenum *type_base = (GLenum *) 0;
1325560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _typeRemaining;
1326560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLenum *type = (GLenum *) 0;
1327560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    char *name_base = (char *) 0;
1328560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _nameRemaining;
1329560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    char *name = (char *) 0;
1330560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1331560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!length_ref) {
1332560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
133324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length == null");
1334560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1335560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1336560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (lengthOffset < 0) {
1337560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
133824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "lengthOffset < 0");
1339560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1340560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
1342560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    length_base = (GLsizei *)
1343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0);
1344560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    length = length_base + lengthOffset;
1345560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1346560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!size_ref) {
1347560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
134824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "size == null");
1349560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1350560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1351560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (sizeOffset < 0) {
1352560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
135324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "sizeOffset < 0");
1354560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1355560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset;
1357560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    size_base = (GLint *)
1358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0);
1359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    size = size_base + sizeOffset;
1360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1361560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!type_ref) {
1362560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
136324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "type == null");
1364560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1365560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1366560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (typeOffset < 0) {
1367560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
136824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "typeOffset < 0");
1369560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1370560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1371560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset;
1372560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    type_base = (GLenum *)
1373560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0);
1374560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    type = type_base + typeOffset;
1375560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1376560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!name_ref) {
1377560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
137824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "name == null");
1379560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1380560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1381560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (nameOffset < 0) {
1382560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
138324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "nameOffset < 0");
1384560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1385560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _nameRemaining = _env->GetArrayLength(name_ref) - nameOffset;
1387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    name_base = (char *)
1388560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(name_ref, (jboolean *)0);
1389560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    name = name_base + nameOffset;
1390560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetActiveUniform(
1392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
1393560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index,
1394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)bufsize,
1395560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei *)length,
1396560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)size,
1397560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum *)type,
1398560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (char *)name
1399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1402560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (name_base) {
1403560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(name_ref, name_base,
1404560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1405560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1406560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (type_base) {
1407560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(type_ref, type_base,
1408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1410560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (size_base) {
1411560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(size_ref, size_base,
1412560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1413560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1414560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (length_base) {
1415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(length_ref, length_base,
1416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1418560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1419560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1420560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */
1421560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1422560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetActiveUniform__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B
1423560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jbyte name) {
1424560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1425560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _lengthArray = (jarray) 0;
1426560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _sizeArray = (jarray) 0;
1427560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _typeArray = (jarray) 0;
1428560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _lengthRemaining;
1429560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *length = (GLsizei *) 0;
1430560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _sizeRemaining;
1431560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *size = (GLint *) 0;
1432560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _typeRemaining;
1433560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLenum *type = (GLenum *) 0;
1434560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1435560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining);
1436560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining);
1437560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining);
1438560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetActiveUniform(
1439560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
1440560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index,
1441560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)bufsize,
1442560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei *)length,
1443560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)size,
1444560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum *)type,
1445560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (char *)name
1446560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1447560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_lengthArray) {
1448560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _lengthArray, type, _exception ? JNI_FALSE : JNI_TRUE);
1449560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1450560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_sizeArray) {
1451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _sizeArray, size, _exception ? JNI_FALSE : JNI_TRUE);
1452560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1453560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_typeArray) {
1454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _typeArray, length, _exception ? JNI_FALSE : JNI_TRUE);
1455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1456560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1457560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1458560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetAttachedShaders ( GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders ) */
1459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1460560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetAttachedShaders__II_3II_3II
1461560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint maxcount, jintArray count_ref, jint countOffset, jintArray shaders_ref, jint shadersOffset) {
1462560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1463560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *count_base = (GLsizei *) 0;
1464560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _countRemaining;
1465560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *count = (GLsizei *) 0;
1466560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *shaders_base = (GLuint *) 0;
1467560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _shadersRemaining;
1468560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *shaders = (GLuint *) 0;
1469560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!count_ref) {
1471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
147224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "count == null");
1473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1474560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1475560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (countOffset < 0) {
1476560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
147724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "countOffset < 0");
1478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1479560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1480560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _countRemaining = _env->GetArrayLength(count_ref) - countOffset;
1481560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    count_base = (GLsizei *)
1482560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(count_ref, (jboolean *)0);
1483560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    count = count_base + countOffset;
1484560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1485560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!shaders_ref) {
1486560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
148724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "shaders == null");
1488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (shadersOffset < 0) {
1491560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
149224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "shadersOffset < 0");
1493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1494560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _shadersRemaining = _env->GetArrayLength(shaders_ref) - shadersOffset;
1496560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    shaders_base = (GLuint *)
1497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(shaders_ref, (jboolean *)0);
1498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    shaders = shaders_base + shadersOffset;
1499560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1500560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetAttachedShaders(
1501560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
1502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)maxcount,
1503560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei *)count,
1504560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)shaders
1505560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1506560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1507560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1508560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (shaders_base) {
1509560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(shaders_ref, shaders_base,
1510560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1511560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1512560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (count_base) {
1513560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(count_ref, count_base,
1514560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1515560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1516560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1517560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1518560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetAttachedShaders ( GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders ) */
1519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1520560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2
1521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint maxcount, jobject count_buf, jobject shaders_buf) {
1522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _countArray = (jarray) 0;
1524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _shadersArray = (jarray) 0;
1525560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _countRemaining;
1526560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *count = (GLsizei *) 0;
1527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _shadersRemaining;
1528560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *shaders = (GLuint *) 0;
1529560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    count = (GLsizei *)getPointer(_env, count_buf, &_countArray, &_countRemaining);
1531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    shaders = (GLuint *)getPointer(_env, shaders_buf, &_shadersArray, &_shadersRemaining);
1532560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetAttachedShaders(
1533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
1534560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)maxcount,
1535560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei *)count,
1536560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)shaders
1537560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1538560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_countArray) {
1539560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _countArray, shaders, _exception ? JNI_FALSE : JNI_TRUE);
1540560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1541560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_shadersArray) {
1542560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _shadersArray, count, _exception ? JNI_FALSE : JNI_TRUE);
1543560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1544560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1545560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1546560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* int glGetAttribLocation ( GLuint program, const char *name ) */
1547560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint
1548560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetAttribLocation__ILjava_lang_String_2
1549560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jstring name) {
1550560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    int _returnValue = 0;
1551560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    const char* _nativename = 0;
1552560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1553560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!name) {
155424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "name == null");
1555560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1556560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1557560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _nativename = _env->GetStringUTFChars(name, 0);
1558560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1559560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glGetAttribLocation(
1560560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
1561560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (char *)_nativename
1562560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1563560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1564560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1565560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_nativename) {
1566560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleaseStringUTFChars(name, _nativename);
1567560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1568560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1569560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
1570560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1571560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1572560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
1573560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1574560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetBooleanv__I_3ZI
1575560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) {
1576560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1577560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLboolean *params_base = (GLboolean *) 0;
1578560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1579560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLboolean *params = (GLboolean *) 0;
1580560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1581560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
1582560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
158324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
1584560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1585560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1586560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
1587560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
158824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
1589560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1590560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1591560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1592560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLboolean *)
1593560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1594560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
1595560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1596560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetBooleanv(
1597560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
1598560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean *)params
1599560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1600560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1601560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1602560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
1603560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1604560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1605560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1606560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1607560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1608560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
1609560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1610560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetBooleanv__ILjava_nio_IntBuffer_2
1611560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
1612560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1613560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
1614560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1615560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLboolean *params = (GLboolean *) 0;
1616560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1617560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining);
1618560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetBooleanv(
1619560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
1620560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean *)params
1621560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1622560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
1623560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1624560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1625560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1626560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1627560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
1628560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1629560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetBufferParameteriv__II_3II
1630560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
163173108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
163273108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params_base = (GLint *) 0;
163373108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
163473108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params = (GLint *) 0;
163573108675c944ab4ee89631dced23566b12341b66Jack Palevich
163673108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (!params_ref) {
163773108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
163824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
163973108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
164073108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
164173108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (offset < 0) {
164273108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
164324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
164473108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
164573108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
164673108675c944ab4ee89631dced23566b12341b66Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
164773108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < 1) {
164873108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
164924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
165073108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
165173108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
165273108675c944ab4ee89631dced23566b12341b66Jack Palevich    params_base = (GLint *)
165373108675c944ab4ee89631dced23566b12341b66Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
165473108675c944ab4ee89631dced23566b12341b66Jack Palevich    params = params_base + offset;
165573108675c944ab4ee89631dced23566b12341b66Jack Palevich
165673108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGetBufferParameteriv(
165773108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
165873108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)pname,
165973108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLint *)params
166073108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
166173108675c944ab4ee89631dced23566b12341b66Jack Palevich
166273108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
166373108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (params_base) {
166473108675c944ab4ee89631dced23566b12341b66Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
166573108675c944ab4ee89631dced23566b12341b66Jack Palevich            _exception ? JNI_ABORT: 0);
166673108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
1667560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1668560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1669560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
1670560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1671560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetBufferParameteriv__IILjava_nio_IntBuffer_2
1672560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
167373108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _exception = 0;
167473108675c944ab4ee89631dced23566b12341b66Jack Palevich    jarray _array = (jarray) 0;
167573108675c944ab4ee89631dced23566b12341b66Jack Palevich    jint _remaining;
167673108675c944ab4ee89631dced23566b12341b66Jack Palevich    GLint *params = (GLint *) 0;
167773108675c944ab4ee89631dced23566b12341b66Jack Palevich
167873108675c944ab4ee89631dced23566b12341b66Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
167973108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_remaining < 1) {
168073108675c944ab4ee89631dced23566b12341b66Jack Palevich        _exception = 1;
168124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
168273108675c944ab4ee89631dced23566b12341b66Jack Palevich        goto exit;
168373108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
168473108675c944ab4ee89631dced23566b12341b66Jack Palevich    glGetBufferParameteriv(
168573108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)target,
168673108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLenum)pname,
168773108675c944ab4ee89631dced23566b12341b66Jack Palevich        (GLint *)params
168873108675c944ab4ee89631dced23566b12341b66Jack Palevich    );
168973108675c944ab4ee89631dced23566b12341b66Jack Palevich
169073108675c944ab4ee89631dced23566b12341b66Jack Palevichexit:
169173108675c944ab4ee89631dced23566b12341b66Jack Palevich    if (_array) {
169273108675c944ab4ee89631dced23566b12341b66Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
169373108675c944ab4ee89631dced23566b12341b66Jack Palevich    }
1694560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1695560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1696560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLenum glGetError ( void ) */
1697560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint
1698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetError__
1699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this) {
1700560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLenum _returnValue;
1701560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glGetError();
1702560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
1703560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */
1706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1707560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetFloatv__I_3FI
1708560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
1709560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
1711560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params = (GLfloat *) 0;
1713560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1714560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
1715560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
171624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
1717560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1718560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1719560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
1720560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
172124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
1722560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1723560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1724560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1725560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLfloat *)
1726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1727560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
1728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1729560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetFloatv(
1730560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
1731560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)params
1732560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1733560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1734560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1735560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
1736560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1738560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1739560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1740560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1741560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetFloatv ( GLenum pname, GLfloat *params ) */
1742560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1743560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetFloatv__ILjava_nio_FloatBuffer_2
1744560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
1745560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1746560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
1747560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1748560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params = (GLfloat *) 0;
1749560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1750560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
1751560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetFloatv(
1752560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
1753560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)params
1754560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1755560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
1756560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1757560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1758560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1759560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1760560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetFramebufferAttachmentParameteriv ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */
1761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1762560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetFramebufferAttachmentParameteriv__III_3II
1763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jintArray params_ref, jint offset) {
1764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params_base = (GLint *) 0;
1766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1767560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
1768560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1769560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
1770560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
177124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
1772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1774560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
1775560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
177624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
1777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1778560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1779560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1780560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLint *)
1781560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1782560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
1783560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1784560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetFramebufferAttachmentParameteriv(
1785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
1786560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)attachment,
1787560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
1788560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
1789560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1790560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1791560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
1792560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
1793560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1794560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
1795560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1796560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1797560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1798560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetFramebufferAttachmentParameteriv ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */
1799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2
1801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) {
1802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1803560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
1804560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1805560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
1806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1807560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
1808560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetFramebufferAttachmentParameteriv(
1809560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
1810560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)attachment,
1811560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
1812560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
1813560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
1814560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
1815560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1816560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1817560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
1818560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1819560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */
1820560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
1821560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetIntegerv__I_3II
1822560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
1823560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
1824560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params_base = (GLint *) 0;
1825560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
1826560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
1827560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
1828560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
1829560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
183024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
1831560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1832560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1833560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
1834560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
183524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
1836560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
1837560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
1838560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
1839560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    int _needed;
1840560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    switch (pname) {
1841560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_BITS)
1842560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_ALPHA_BITS:
1843560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_BITS)
1844560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_TEST_FUNC)
1845560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_ALPHA_TEST_FUNC:
1846560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_TEST_FUNC)
1847560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_TEST_REF)
1848560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_ALPHA_TEST_REF:
1849560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_TEST_REF)
1850560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_BLEND_DST)
1851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_BLEND_DST:
1852560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_BLEND_DST)
1853560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_BLUE_BITS)
1854560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_BLUE_BITS:
1855560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_BLUE_BITS)
1856560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
1857560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_ARRAY_BUFFER_BINDING:
1858560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
1859560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_SIZE)
1860560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_ARRAY_SIZE:
1861560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_SIZE)
1862560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_STRIDE)
1863560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_ARRAY_STRIDE:
1864560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_STRIDE)
1865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_TYPE)
1866560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_ARRAY_TYPE:
1867560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_TYPE)
1868560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_CULL_FACE)
1869560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_CULL_FACE:
1870560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_CULL_FACE)
1871560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_BITS)
1872560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_DEPTH_BITS:
1873560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_BITS)
1874560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_CLEAR_VALUE)
1875560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_DEPTH_CLEAR_VALUE:
1876560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_CLEAR_VALUE)
1877560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_FUNC)
1878560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_DEPTH_FUNC:
1879560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_FUNC)
1880560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_WRITEMASK)
1881560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_DEPTH_WRITEMASK:
1882560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_WRITEMASK)
1883560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_DENSITY)
1884560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FOG_DENSITY:
1885560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_DENSITY)
1886560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_END)
1887560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FOG_END:
1888560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_END)
1889560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_MODE)
1890560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FOG_MODE:
1891560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_MODE)
1892560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_START)
1893560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FOG_START:
1894560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_START)
1895560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FRONT_FACE)
1896560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FRONT_FACE:
1897560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FRONT_FACE)
1898560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_GREEN_BITS)
1899560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_GREEN_BITS:
1900560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_GREEN_BITS)
1901560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
1902560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
1903560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
1904560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1905560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
1906560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1907560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1908560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LIGHT_MODEL_COLOR_CONTROL:
1909560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
1910560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
1911560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LIGHT_MODEL_LOCAL_VIEWER:
1912560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
1913560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
1914560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
1915560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
1916560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LINE_SMOOTH_HINT)
1917560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LINE_SMOOTH_HINT:
1918560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LINE_SMOOTH_HINT)
1919560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LINE_WIDTH)
1920560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LINE_WIDTH:
1921560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LINE_WIDTH)
1922560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LOGIC_OP_MODE)
1923560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LOGIC_OP_MODE:
1924560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LOGIC_OP_MODE)
1925560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
1926560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
1927560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
1928560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
1929560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
1930560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
1931560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
1932560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
1933560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
1934560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
1935560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
1936560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
1937560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_MODE)
1938560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MATRIX_MODE:
1939560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_MODE)
1940560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_CLIP_PLANES)
1941560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_CLIP_PLANES:
1942560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_CLIP_PLANES)
1943560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_ELEMENTS_INDICES)
1944560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_ELEMENTS_INDICES:
1945560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_ELEMENTS_INDICES)
1946560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_ELEMENTS_VERTICES)
1947560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_ELEMENTS_VERTICES:
1948560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_ELEMENTS_VERTICES)
1949560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_LIGHTS)
1950560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_LIGHTS:
1951560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_LIGHTS)
1952560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
1953560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_MODELVIEW_STACK_DEPTH:
1954560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
1955560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_PALETTE_MATRICES_OES)
1956560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_PALETTE_MATRICES_OES:
1957560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
1958560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
1959560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_PROJECTION_STACK_DEPTH:
1960560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
1961560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_SIZE)
1962560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_TEXTURE_SIZE:
1963560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_SIZE)
1964560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
1965560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_TEXTURE_STACK_DEPTH:
1966560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
1967560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_UNITS)
1968560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_TEXTURE_UNITS:
1969560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_UNITS)
1970560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_VERTEX_UNITS_OES)
1971560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_VERTEX_UNITS_OES:
1972560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_VERTEX_UNITS_OES)
1973560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_STACK_DEPTH)
1974560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MODELVIEW_STACK_DEPTH:
1975560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_STACK_DEPTH)
1976560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
1977560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_NORMAL_ARRAY_BUFFER_BINDING:
1978560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
1979560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_STRIDE)
1980560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_NORMAL_ARRAY_STRIDE:
1981560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_STRIDE)
1982560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_TYPE)
1983560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_NORMAL_ARRAY_TYPE:
1984560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_TYPE)
1985560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
1986560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
1987560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
1988560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PACK_ALIGNMENT)
1989560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_PACK_ALIGNMENT:
1990560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PACK_ALIGNMENT)
1991560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
1992560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_PERSPECTIVE_CORRECTION_HINT:
1993560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
1994560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE)
1995560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POINT_SIZE:
1996560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE)
1997560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
1998560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
1999560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
2000560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
2001560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
2002560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
2003560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
2004560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POINT_SIZE_ARRAY_TYPE_OES:
2005560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
2006560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SMOOTH_HINT)
2007560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POINT_SMOOTH_HINT:
2008560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SMOOTH_HINT)
2009560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POLYGON_OFFSET_FACTOR)
2010560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POLYGON_OFFSET_FACTOR:
2011560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POLYGON_OFFSET_FACTOR)
2012560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POLYGON_OFFSET_UNITS)
2013560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POLYGON_OFFSET_UNITS:
2014560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POLYGON_OFFSET_UNITS)
2015560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_STACK_DEPTH)
2016560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_PROJECTION_STACK_DEPTH:
2017560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_STACK_DEPTH)
2018560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_RED_BITS)
2019560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_RED_BITS:
2020560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_RED_BITS)
2021560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SHADE_MODEL)
2022560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_SHADE_MODEL:
2023560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SHADE_MODEL)
2024560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_BITS)
2025560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_BITS:
2026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_BITS)
2027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_CLEAR_VALUE)
2028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_CLEAR_VALUE:
2029560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_CLEAR_VALUE)
2030560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_FAIL)
2031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_FAIL:
2032560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_FAIL)
2033560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_FUNC)
2034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_FUNC:
2035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_FUNC)
2036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
2037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_PASS_DEPTH_FAIL:
2038560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
2039560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_PASS)
2040560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_PASS_DEPTH_PASS:
2041560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
2042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_REF)
2043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_REF:
2044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_REF)
2045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_VALUE_MASK)
2046560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_VALUE_MASK:
2047560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_VALUE_MASK)
2048560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_WRITEMASK)
2049560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_WRITEMASK:
2050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_WRITEMASK)
2051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SUBPIXEL_BITS)
2052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_SUBPIXEL_BITS:
2053560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SUBPIXEL_BITS)
2054560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_BINDING_2D)
2055560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_BINDING_2D:
2056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_BINDING_2D)
2057560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
2058560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
2059560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
2060560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
2061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_COORD_ARRAY_SIZE:
2062560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
2063560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
2064560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_COORD_ARRAY_STRIDE:
2065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
2066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
2067560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_COORD_ARRAY_TYPE:
2068560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
2069560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_STACK_DEPTH)
2070560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_STACK_DEPTH:
2071560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_STACK_DEPTH)
2072560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_UNPACK_ALIGNMENT)
2073560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_UNPACK_ALIGNMENT:
2074560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_UNPACK_ALIGNMENT)
2075560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
2076560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_VERTEX_ARRAY_BUFFER_BINDING:
2077560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
2078560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_SIZE)
2079560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_VERTEX_ARRAY_SIZE:
2080560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_SIZE)
2081560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_STRIDE)
2082560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_VERTEX_ARRAY_STRIDE:
2083560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_STRIDE)
2084560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_TYPE)
2085560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_VERTEX_ARRAY_TYPE:
2086560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_TYPE)
2087560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
2088560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
2089560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
2090560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
2091560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_WEIGHT_ARRAY_SIZE_OES:
2092560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
2093560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
2094560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_WEIGHT_ARRAY_STRIDE_OES:
2095560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
2096560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
2097560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_WEIGHT_ARRAY_TYPE_OES:
2098560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
2099560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = 1;
2100560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2101560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALIASED_POINT_SIZE_RANGE)
2102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_ALIASED_POINT_SIZE_RANGE:
2103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
2104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
2105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_ALIASED_LINE_WIDTH_RANGE:
2106560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
2107560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_RANGE)
2108560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_DEPTH_RANGE:
2109560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_RANGE)
2110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_VIEWPORT_DIMS)
2111560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_VIEWPORT_DIMS:
2112560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_VIEWPORT_DIMS)
2113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
2114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_SMOOTH_LINE_WIDTH_RANGE:
2115560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
2116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
2117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_SMOOTH_POINT_SIZE_RANGE:
2118560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
2119560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = 2;
2120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_CLEAR_VALUE)
2122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_CLEAR_VALUE:
2123560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_CLEAR_VALUE)
2124560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_WRITEMASK)
2125560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_WRITEMASK:
2126560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_WRITEMASK)
2127560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_COLOR)
2128560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FOG_COLOR:
2129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_COLOR)
2130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
2131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
2132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
2133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SCISSOR_BOX)
2134560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_SCISSOR_BOX:
2135560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SCISSOR_BOX)
2136560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VIEWPORT)
2137560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_VIEWPORT:
2138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VIEWPORT)
2139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = 4;
2140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2141560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_MATRIX)
2142560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MODELVIEW_MATRIX:
2143560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX)
2144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
2145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
2146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
2147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_MATRIX)
2148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_PROJECTION_MATRIX:
2149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_MATRIX)
2150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
2151560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
2152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
2153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_MATRIX)
2154560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_MATRIX:
2155560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_MATRIX)
2156560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
2157560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
2158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
2159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = 16;
2160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
2162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COMPRESSED_TEXTURE_FORMATS:
2163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
2164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = getNumCompressedTextureFormats();
2165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        default:
2167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = 0;
2168560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2169560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < _needed) {
2171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
217224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < needed");
2173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLint *)
2176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
2178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetIntegerv(
2180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
2181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
2182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
2185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
2186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
2188560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2189560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */
2192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2193560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetIntegerv__ILjava_nio_IntBuffer_2
2194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
2195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
2197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
2198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
2199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
2201560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    int _needed;
2202560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    switch (pname) {
2203560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_BITS)
2204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_ALPHA_BITS:
2205560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_BITS)
2206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_TEST_FUNC)
2207560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_ALPHA_TEST_FUNC:
2208560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_TEST_FUNC)
2209560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALPHA_TEST_REF)
2210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_ALPHA_TEST_REF:
2211560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALPHA_TEST_REF)
2212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_BLEND_DST)
2213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_BLEND_DST:
2214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_BLEND_DST)
2215560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_BLUE_BITS)
2216560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_BLUE_BITS:
2217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_BLUE_BITS)
2218560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
2219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_ARRAY_BUFFER_BINDING:
2220560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
2221560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_SIZE)
2222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_ARRAY_SIZE:
2223560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_SIZE)
2224560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_STRIDE)
2225560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_ARRAY_STRIDE:
2226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_STRIDE)
2227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_ARRAY_TYPE)
2228560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_ARRAY_TYPE:
2229560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_ARRAY_TYPE)
2230560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_CULL_FACE)
2231560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_CULL_FACE:
2232560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_CULL_FACE)
2233560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_BITS)
2234560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_DEPTH_BITS:
2235560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_BITS)
2236560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_CLEAR_VALUE)
2237560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_DEPTH_CLEAR_VALUE:
2238560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_CLEAR_VALUE)
2239560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_FUNC)
2240560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_DEPTH_FUNC:
2241560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_FUNC)
2242560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_WRITEMASK)
2243560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_DEPTH_WRITEMASK:
2244560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_WRITEMASK)
2245560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_DENSITY)
2246560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FOG_DENSITY:
2247560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_DENSITY)
2248560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_END)
2249560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FOG_END:
2250560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_END)
2251560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_MODE)
2252560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FOG_MODE:
2253560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_MODE)
2254560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_START)
2255560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FOG_START:
2256560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_START)
2257560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FRONT_FACE)
2258560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FRONT_FACE:
2259560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FRONT_FACE)
2260560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_GREEN_BITS)
2261560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_GREEN_BITS:
2262560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_GREEN_BITS)
2263560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
2264560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
2265560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
2266560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
2267560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
2268560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
2269560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
2270560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LIGHT_MODEL_COLOR_CONTROL:
2271560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
2272560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
2273560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LIGHT_MODEL_LOCAL_VIEWER:
2274560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
2275560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_TWO_SIDE)
2276560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LIGHT_MODEL_TWO_SIDE:
2277560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
2278560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LINE_SMOOTH_HINT)
2279560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LINE_SMOOTH_HINT:
2280560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LINE_SMOOTH_HINT)
2281560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LINE_WIDTH)
2282560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LINE_WIDTH:
2283560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LINE_WIDTH)
2284560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LOGIC_OP_MODE)
2285560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LOGIC_OP_MODE:
2286560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LOGIC_OP_MODE)
2287560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
2288560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
2289560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
2290560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
2291560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
2292560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
2293560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
2294560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
2295560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
2296560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
2297560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
2298560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
2299560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MATRIX_MODE)
2300560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MATRIX_MODE:
2301560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MATRIX_MODE)
2302560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_CLIP_PLANES)
2303560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_CLIP_PLANES:
2304560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_CLIP_PLANES)
2305560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_ELEMENTS_INDICES)
2306560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_ELEMENTS_INDICES:
2307560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_ELEMENTS_INDICES)
2308560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_ELEMENTS_VERTICES)
2309560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_ELEMENTS_VERTICES:
2310560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_ELEMENTS_VERTICES)
2311560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_LIGHTS)
2312560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_LIGHTS:
2313560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_LIGHTS)
2314560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
2315560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_MODELVIEW_STACK_DEPTH:
2316560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
2317560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_PALETTE_MATRICES_OES)
2318560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_PALETTE_MATRICES_OES:
2319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
2320560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
2321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_PROJECTION_STACK_DEPTH:
2322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
2323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_SIZE)
2324560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_TEXTURE_SIZE:
2325560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_SIZE)
2326560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
2327560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_TEXTURE_STACK_DEPTH:
2328560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
2329560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_TEXTURE_UNITS)
2330560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_TEXTURE_UNITS:
2331560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_TEXTURE_UNITS)
2332560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_VERTEX_UNITS_OES)
2333560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_VERTEX_UNITS_OES:
2334560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_VERTEX_UNITS_OES)
2335560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_STACK_DEPTH)
2336560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MODELVIEW_STACK_DEPTH:
2337560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_STACK_DEPTH)
2338560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
2339560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_NORMAL_ARRAY_BUFFER_BINDING:
2340560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
2341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_STRIDE)
2342560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_NORMAL_ARRAY_STRIDE:
2343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_STRIDE)
2344560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NORMAL_ARRAY_TYPE)
2345560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_NORMAL_ARRAY_TYPE:
2346560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NORMAL_ARRAY_TYPE)
2347560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
2348560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
2349560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
2350560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PACK_ALIGNMENT)
2351560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_PACK_ALIGNMENT:
2352560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PACK_ALIGNMENT)
2353560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
2354560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_PERSPECTIVE_CORRECTION_HINT:
2355560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
2356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE)
2357560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POINT_SIZE:
2358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE)
2359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
2360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
2361560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
2362560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
2363560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
2364560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
2365560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
2366560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POINT_SIZE_ARRAY_TYPE_OES:
2367560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
2368560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POINT_SMOOTH_HINT)
2369560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POINT_SMOOTH_HINT:
2370560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POINT_SMOOTH_HINT)
2371560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POLYGON_OFFSET_FACTOR)
2372560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POLYGON_OFFSET_FACTOR:
2373560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POLYGON_OFFSET_FACTOR)
2374560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_POLYGON_OFFSET_UNITS)
2375560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_POLYGON_OFFSET_UNITS:
2376560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_POLYGON_OFFSET_UNITS)
2377560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_STACK_DEPTH)
2378560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_PROJECTION_STACK_DEPTH:
2379560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_STACK_DEPTH)
2380560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_RED_BITS)
2381560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_RED_BITS:
2382560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_RED_BITS)
2383560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SHADE_MODEL)
2384560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_SHADE_MODEL:
2385560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SHADE_MODEL)
2386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_BITS)
2387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_BITS:
2388560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_BITS)
2389560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_CLEAR_VALUE)
2390560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_CLEAR_VALUE:
2391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_CLEAR_VALUE)
2392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_FAIL)
2393560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_FAIL:
2394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_FAIL)
2395560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_FUNC)
2396560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_FUNC:
2397560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_FUNC)
2398560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
2399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_PASS_DEPTH_FAIL:
2400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
2401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_PASS_DEPTH_PASS)
2402560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_PASS_DEPTH_PASS:
2403560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
2404560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_REF)
2405560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_REF:
2406560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_REF)
2407560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_VALUE_MASK)
2408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_VALUE_MASK:
2409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_VALUE_MASK)
2410560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_STENCIL_WRITEMASK)
2411560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_STENCIL_WRITEMASK:
2412560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_STENCIL_WRITEMASK)
2413560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SUBPIXEL_BITS)
2414560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_SUBPIXEL_BITS:
2415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SUBPIXEL_BITS)
2416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_BINDING_2D)
2417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_BINDING_2D:
2418560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_BINDING_2D)
2419560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
2420560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
2421560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
2422560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
2423560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_COORD_ARRAY_SIZE:
2424560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
2425560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
2426560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_COORD_ARRAY_STRIDE:
2427560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
2428560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
2429560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_COORD_ARRAY_TYPE:
2430560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
2431560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_STACK_DEPTH)
2432560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_STACK_DEPTH:
2433560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_STACK_DEPTH)
2434560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_UNPACK_ALIGNMENT)
2435560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_UNPACK_ALIGNMENT:
2436560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_UNPACK_ALIGNMENT)
2437560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
2438560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_VERTEX_ARRAY_BUFFER_BINDING:
2439560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
2440560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_SIZE)
2441560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_VERTEX_ARRAY_SIZE:
2442560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_SIZE)
2443560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_STRIDE)
2444560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_VERTEX_ARRAY_STRIDE:
2445560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_STRIDE)
2446560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VERTEX_ARRAY_TYPE)
2447560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_VERTEX_ARRAY_TYPE:
2448560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VERTEX_ARRAY_TYPE)
2449560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
2450560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
2451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
2452560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
2453560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_WEIGHT_ARRAY_SIZE_OES:
2454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
2455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
2456560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_WEIGHT_ARRAY_STRIDE_OES:
2457560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
2458560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
2459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_WEIGHT_ARRAY_TYPE_OES:
2460560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
2461560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = 1;
2462560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2463560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALIASED_POINT_SIZE_RANGE)
2464560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_ALIASED_POINT_SIZE_RANGE:
2465560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
2466560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
2467560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_ALIASED_LINE_WIDTH_RANGE:
2468560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
2469560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_DEPTH_RANGE)
2470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_DEPTH_RANGE:
2471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_DEPTH_RANGE)
2472560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MAX_VIEWPORT_DIMS)
2473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MAX_VIEWPORT_DIMS:
2474560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MAX_VIEWPORT_DIMS)
2475560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
2476560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_SMOOTH_LINE_WIDTH_RANGE:
2477560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
2478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
2479560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_SMOOTH_POINT_SIZE_RANGE:
2480560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
2481560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = 2;
2482560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2483560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_CLEAR_VALUE)
2484560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_CLEAR_VALUE:
2485560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_CLEAR_VALUE)
2486560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COLOR_WRITEMASK)
2487560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COLOR_WRITEMASK:
2488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COLOR_WRITEMASK)
2489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_FOG_COLOR)
2490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_FOG_COLOR:
2491560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_FOG_COLOR)
2492560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
2493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
2494560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
2495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_SCISSOR_BOX)
2496560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_SCISSOR_BOX:
2497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_SCISSOR_BOX)
2498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_VIEWPORT)
2499560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_VIEWPORT:
2500560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_VIEWPORT)
2501560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = 4;
2502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2503560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_MATRIX)
2504560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MODELVIEW_MATRIX:
2505560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX)
2506560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
2507560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
2508560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
2509560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_MATRIX)
2510560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_PROJECTION_MATRIX:
2511560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_MATRIX)
2512560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
2513560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
2514560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
2515560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_MATRIX)
2516560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_MATRIX:
2517560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_MATRIX)
2518560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
2519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
2520560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
2521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = 16;
2522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
2524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        case GL_COMPRESSED_TEXTURE_FORMATS:
2525560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
2526560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = getNumCompressedTextureFormats();
2527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2528560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        default:
2529560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _needed = 0;
2530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            break;
2531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2532560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < _needed) {
2533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
253424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < needed");
2535560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2536560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2537560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetIntegerv(
2538560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
2539560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
2540560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2541560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2542560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
2543560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
2544560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
2545560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2546560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2547560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2548560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetProgramiv ( GLuint program, GLenum pname, GLint *params ) */
2549560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2550560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetProgramiv__II_3II
2551560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint pname, jintArray params_ref, jint offset) {
2552560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2553560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params_base = (GLint *) 0;
2554560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
2555560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
2556560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2557560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
2558560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
255924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
2560560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2561560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2562560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
2563560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
256424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
2565560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2566560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2567560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
2568560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLint *)
2569560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2570560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
2571560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2572560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetProgramiv(
2573560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
2574560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
2575560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
2576560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2577560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2578560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
2579560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
2580560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2581560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
2582560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2583560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2584560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2585560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetProgramiv ( GLuint program, GLenum pname, GLint *params ) */
2586560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2587560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetProgramiv__IILjava_nio_IntBuffer_2
2588560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint pname, jobject params_buf) {
2589560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2590560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
2591560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
2592560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
2593560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2594560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
2595560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetProgramiv(
2596560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
2597560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
2598560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
2599560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2600560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
2601560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
2602560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2603560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2604560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
260524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include <stdlib.h>
2606560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2607560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetProgramInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */
260824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetProgramInfoLog(JNIEnv *_env, jobject, jint shader) {
2609560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint infoLen = 0;
2610560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetProgramiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
261124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    if (!infoLen) {
261224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        return _env->NewStringUTF("");
2613560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
261424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    char* buf = (char*) malloc(infoLen);
261524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    if (buf == NULL) {
261624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory");
261724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        return NULL;
2618560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
261924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    glGetProgramInfoLog(shader, infoLen, NULL, buf);
262024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    jstring result = _env->NewStringUTF(buf);
262124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    free(buf);
262224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    return result;
2623560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2624560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetRenderbufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
2625560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2626560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetRenderbufferParameteriv__II_3II
2627560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
2628560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2629560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params_base = (GLint *) 0;
2630560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
2631560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
2632560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2633560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
2634560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
263524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
2636560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2637560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2638560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
2639560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
264024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
2641560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2642560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2643560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
2644560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLint *)
2645560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2646560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
2647560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2648560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetRenderbufferParameteriv(
2649560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
2650560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
2651560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
2652560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2653560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2654560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
2655560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
2656560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2657560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
2658560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2659560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2660560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2661560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetRenderbufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
2662560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2663560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetRenderbufferParameteriv__IILjava_nio_IntBuffer_2
2664560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
2665560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2666560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
2667560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
2668560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
2669560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2670560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
2671560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetRenderbufferParameteriv(
2672560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
2673560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
2674560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
2675560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2676560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
2677560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
2678560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2679560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2680560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2681560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderiv ( GLuint shader, GLenum pname, GLint *params ) */
2682560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2683560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderiv__II_3II
2684560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint shader, jint pname, jintArray params_ref, jint offset) {
2685560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2686560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params_base = (GLint *) 0;
2687560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
2688560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
2689560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2690560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
2691560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
269224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
2693560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2694560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2695560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
2696560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
269724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
2698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2700560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
2701560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLint *)
2702560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2703560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
2704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetShaderiv(
2706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)shader,
2707560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
2708560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
2709560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2711560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
2712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
2713560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2714560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
2715560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2716560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2717560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2718560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderiv ( GLuint shader, GLenum pname, GLint *params ) */
2719560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2720560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderiv__IILjava_nio_IntBuffer_2
2721560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint shader, jint pname, jobject params_buf) {
2722560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2723560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
2724560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
2725560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
2726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2727560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
2728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetShaderiv(
2729560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)shader,
2730560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
2731560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
2732560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2733560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
2734560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
2735560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2736560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
273824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include <stdlib.h>
2739560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2740560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */
274124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetShaderInfoLog(JNIEnv *_env, jobject, jint shader) {
2742560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint infoLen = 0;
2743560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
274424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    if (!infoLen) {
274524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        return _env->NewStringUTF("");
2746560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
274724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    char* buf = (char*) malloc(infoLen);
274824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    if (buf == NULL) {
274924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory");
275024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        return NULL;
2751560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
275224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    glGetShaderInfoLog(shader, infoLen, NULL, buf);
275324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    jstring result = _env->NewStringUTF(buf);
275424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    free(buf);
275524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    return result;
2756560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2757560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderPrecisionFormat ( GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision ) */
2758560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2759560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderPrecisionFormat__II_3II_3II
2760560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint shadertype, jint precisiontype, jintArray range_ref, jint rangeOffset, jintArray precision_ref, jint precisionOffset) {
2761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2762560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *range_base = (GLint *) 0;
2763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _rangeRemaining;
2764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *range = (GLint *) 0;
2765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *precision_base = (GLint *) 0;
2766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _precisionRemaining;
2767560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *precision = (GLint *) 0;
2768560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2769560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!range_ref) {
2770560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
277124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "range == null");
2772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2774560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (rangeOffset < 0) {
2775560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
277624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "rangeOffset < 0");
2777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2778560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2779560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _rangeRemaining = _env->GetArrayLength(range_ref) - rangeOffset;
2780560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    range_base = (GLint *)
2781560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(range_ref, (jboolean *)0);
2782560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    range = range_base + rangeOffset;
2783560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2784560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!precision_ref) {
2785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
278624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "precision == null");
2787560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2788560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2789560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (precisionOffset < 0) {
2790560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
279124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "precisionOffset < 0");
2792560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2793560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2794560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _precisionRemaining = _env->GetArrayLength(precision_ref) - precisionOffset;
2795560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    precision_base = (GLint *)
2796560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(precision_ref, (jboolean *)0);
2797560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    precision = precision_base + precisionOffset;
2798560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetShaderPrecisionFormat(
2800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)shadertype,
2801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)precisiontype,
2802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)range,
2803560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)precision
2804560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2805560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
2807560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (precision_base) {
2808560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(precision_ref, precision_base,
2809560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
2810560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2811560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (range_base) {
2812560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(range_ref, range_base,
2813560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
2814560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2815560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2816560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2817560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderPrecisionFormat ( GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision ) */
2818560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2819560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2
2820560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint shadertype, jint precisiontype, jobject range_buf, jobject precision_buf) {
2821560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2822560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _rangeArray = (jarray) 0;
2823560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _precisionArray = (jarray) 0;
2824560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _rangeRemaining;
2825560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *range = (GLint *) 0;
2826560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _precisionRemaining;
2827560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *precision = (GLint *) 0;
2828560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2829560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    range = (GLint *)getPointer(_env, range_buf, &_rangeArray, &_rangeRemaining);
2830560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    precision = (GLint *)getPointer(_env, precision_buf, &_precisionArray, &_precisionRemaining);
2831560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetShaderPrecisionFormat(
2832560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)shadertype,
2833560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)precisiontype,
2834560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)range,
2835560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)precision
2836560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2837560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_rangeArray) {
2838560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _rangeArray, precision, _exception ? JNI_FALSE : JNI_TRUE);
2839560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2840560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_precisionArray) {
2841560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _precisionArray, range, _exception ? JNI_FALSE : JNI_TRUE);
2842560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2843560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2844560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2845560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderSource ( GLuint shader, GLsizei bufsize, GLsizei *length, char *source ) */
2846560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2847560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderSource__II_3II_3BI
2848560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint shader, jint bufsize, jintArray length_ref, jint lengthOffset, jbyteArray source_ref, jint sourceOffset) {
2849560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2850560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *length_base = (GLsizei *) 0;
2851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _lengthRemaining;
2852560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *length = (GLsizei *) 0;
2853560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    char *source_base = (char *) 0;
2854560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _sourceRemaining;
2855560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    char *source = (char *) 0;
2856560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2857560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!length_ref) {
2858560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
285924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length == null");
2860560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2861560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2862560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (lengthOffset < 0) {
2863560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
286424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "lengthOffset < 0");
2865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2866560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2867560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
2868560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    length_base = (GLsizei *)
2869560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0);
2870560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    length = length_base + lengthOffset;
2871560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2872560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!source_ref) {
2873560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
287424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "source == null");
2875560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2876560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2877560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (sourceOffset < 0) {
2878560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
287924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "sourceOffset < 0");
2880560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2881560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2882560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _sourceRemaining = _env->GetArrayLength(source_ref) - sourceOffset;
2883560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    source_base = (char *)
2884560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(source_ref, (jboolean *)0);
2885560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    source = source_base + sourceOffset;
2886560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2887560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetShaderSource(
2888560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)shader,
2889560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)bufsize,
2890560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei *)length,
2891560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (char *)source
2892560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2893560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2894560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
2895560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (source_base) {
2896560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(source_ref, source_base,
2897560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
2898560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2899560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (length_base) {
2900560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(length_ref, length_base,
2901560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
2902560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2903560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2904560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2905560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetShaderSource ( GLuint shader, GLsizei bufsize, GLsizei *length, char *source ) */
2906560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2907560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetShaderSource__IILjava_nio_IntBuffer_2B
2908560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint shader, jint bufsize, jobject length_buf, jbyte source) {
2909560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2910560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
2911560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
2912560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLsizei *length = (GLsizei *) 0;
2913560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2914560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    length = (GLsizei *)getPointer(_env, length_buf, &_array, &_remaining);
2915560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetShaderSource(
2916560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)shader,
2917560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)bufsize,
2918560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei *)length,
2919560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (char *)source
2920560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2921560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
2922560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, length, _exception ? JNI_FALSE : JNI_TRUE);
2923560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2924560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2925560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2926560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* const GLubyte * glGetString ( GLenum name ) */
292724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetString(JNIEnv* _env, jobject, jint name) {
292824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    const char* chars = (const char*) glGetString((GLenum) name);
292924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    return _env->NewStringUTF(chars);
2930560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2931560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
2932560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2933560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetTexParameterfv__II_3FI
2934560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
2935560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2936560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
2937560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
2938560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params = (GLfloat *) 0;
2939560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2940560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
2941560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
294224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
2943560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2944560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2945560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
2946560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
294724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
2948560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2949560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2950560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
2951560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < 1) {
2952560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
295324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
2954560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2955560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2956560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLfloat *)
2957560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2958560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
2959560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2960560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetTexParameterfv(
2961560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
2962560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
2963560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)params
2964560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2965560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2966560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
2967560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
2968560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2969560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
2970560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2971560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2972560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2973560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
2974560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
2975560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetTexParameterfv__IILjava_nio_FloatBuffer_2
2976560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
2977560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
2978560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
2979560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
2980560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params = (GLfloat *) 0;
2981560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2982560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
2983560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < 1) {
2984560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
298524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
2986560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
2987560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2988560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetTexParameterfv(
2989560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
2990560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
2991560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)params
2992560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
2993560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
2994560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
2995560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
2996560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
2997560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
2998560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
2999560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3000560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
3001560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3002560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetTexParameteriv__II_3II
3003560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
3004560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3005560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params_base = (GLint *) 0;
3006560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3007560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
3008560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3009560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
3010560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
301124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
3012560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3013560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3014560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
3015560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
301624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
3017560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3018560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3019560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3020560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < 1) {
3021560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
302224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
3023560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3024560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3025560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLint *)
3026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
3027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
3028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3029560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetTexParameteriv(
3030560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3032560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
3033560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
3037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
3038560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
3039560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3040560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3041560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
3043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetTexParameteriv__IILjava_nio_IntBuffer_2
3045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
3046560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3047560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3048560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3049560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
3050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
3052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < 1) {
3053560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
305424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
3055560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3057560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetTexParameteriv(
3058560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3059560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3060560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
3061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3062560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3063560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3064560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
3066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3067560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3068560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3069560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetUniformfv ( GLuint program, GLint location, GLfloat *params ) */
3070560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3071560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetUniformfv__II_3FI
3072560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint location, jfloatArray params_ref, jint offset) {
3073560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3074560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
3075560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3076560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params = (GLfloat *) 0;
3077560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3078560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
3079560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
308024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
3081560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3082560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3083560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
3084560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
308524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
3086560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3087560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3088560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3089560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLfloat *)
3090560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
3091560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
3092560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3093560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetUniformfv(
3094560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
3095560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
3096560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)params
3097560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3098560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3099560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3100560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
3101560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
3102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
3103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3106560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetUniformfv ( GLuint program, GLint location, GLfloat *params ) */
3107560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3108560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetUniformfv__IILjava_nio_FloatBuffer_2
3109560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint location, jobject params_buf) {
3110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3111560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3112560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params = (GLfloat *) 0;
3114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3115560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
3116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetUniformfv(
3117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
3118560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
3119560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)params
3120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
3123560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3124560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3125560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3126560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetUniformiv ( GLuint program, GLint location, GLint *params ) */
3127560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3128560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetUniformiv__II_3II
3129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint location, jintArray params_ref, jint offset) {
3130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params_base = (GLint *) 0;
3132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
3134560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3135560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
3136560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
313724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
3138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
3141560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
314224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
3143560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLint *)
3147560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
3148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
3149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetUniformiv(
3151560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
3152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
3153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
3154560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3155560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3156560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3157560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
3158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
3159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
3160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetUniformiv ( GLuint program, GLint location, GLint *params ) */
3164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetUniformiv__IILjava_nio_IntBuffer_2
3166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jint location, jobject params_buf) {
3167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3168560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3169560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
3171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3172560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
3173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetUniformiv(
3174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
3175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
3176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
3177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
3180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* int glGetUniformLocation ( GLuint program, const char *name ) */
3184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jint
3185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetUniformLocation__ILjava_lang_String_2
3186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program, jstring name) {
3187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    int _returnValue = 0;
3188560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    const char* _nativename = 0;
3189560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!name) {
319124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "name == null");
3192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3193560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _nativename = _env->GetStringUTFChars(name, 0);
3195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glGetUniformLocation(
3197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program,
3198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (char *)_nativename
3199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3201560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3202560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_nativename) {
3203560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleaseStringUTFChars(name, _nativename);
3204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3205560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
3207560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3208560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3209560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetVertexAttribfv ( GLuint index, GLenum pname, GLfloat *params ) */
3210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3211560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetVertexAttribfv__II_3FI
3212560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint index, jint pname, jfloatArray params_ref, jint offset) {
3213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
3215560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3216560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params = (GLfloat *) 0;
3217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3218560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
3219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
322024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
3221560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3223560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
3224560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
322524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
3226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3228560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3229560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLfloat *)
3230560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
3231560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
3232560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3233560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetVertexAttribfv(
3234560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index,
3235560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3236560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)params
3237560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3238560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3239560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3240560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
3241560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
3242560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
3243560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3244560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3245560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3246560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetVertexAttribfv ( GLuint index, GLenum pname, GLfloat *params ) */
3247560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3248560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetVertexAttribfv__IILjava_nio_FloatBuffer_2
3249560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint index, jint pname, jobject params_buf) {
3250560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3251560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3252560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3253560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params = (GLfloat *) 0;
3254560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3255560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
3256560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetVertexAttribfv(
3257560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index,
3258560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3259560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)params
3260560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3261560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3262560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
3263560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3264560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3265560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3266560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetVertexAttribiv ( GLuint index, GLenum pname, GLint *params ) */
3267560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3268560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetVertexAttribiv__II_3II
3269560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint index, jint pname, jintArray params_ref, jint offset) {
3270560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3271560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params_base = (GLint *) 0;
3272560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3273560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
3274560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3275560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
3276560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
327724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
3278560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3279560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3280560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
3281560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _exception = 1;
328224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
3283560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3284560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3285560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3286560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLint *)
3287560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
3288560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
3289560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3290560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetVertexAttribiv(
3291560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index,
3292560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3293560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
3294560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3295560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3296560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3297560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
3298560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
3299560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            _exception ? JNI_ABORT: 0);
3300560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3301560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3302560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3303560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glGetVertexAttribiv ( GLuint index, GLenum pname, GLint *params ) */
3304560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3305560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glGetVertexAttribiv__IILjava_nio_IntBuffer_2
3306560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint index, jint pname, jobject params_buf) {
3307560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3308560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3309560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3310560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
3311560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3312560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
3313560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glGetVertexAttribiv(
3314560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)index,
3315560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3316560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
3317560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3318560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
3320560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glHint ( GLenum target, GLenum mode ) */
3324560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3325560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glHint__II
3326560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint mode) {
3327560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glHint(
3328560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3329560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)mode
3330560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3331560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3332560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3333560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsBuffer ( GLuint buffer ) */
3334560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean
3335560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsBuffer__I
3336560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint buffer) {
3337560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLboolean _returnValue;
3338560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glIsBuffer(
3339560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)buffer
3340560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
3342560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3344560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsEnabled ( GLenum cap ) */
3345560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean
3346560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsEnabled__I
3347560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint cap) {
3348560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLboolean _returnValue;
3349560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glIsEnabled(
3350560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)cap
3351560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3352560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
3353560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3354560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3355560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsFramebuffer ( GLuint framebuffer ) */
3356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean
3357560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsFramebuffer__I
3358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint framebuffer) {
3359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLboolean _returnValue;
3360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glIsFramebuffer(
3361560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)framebuffer
3362560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3363560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
3364560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3365560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3366560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsProgram ( GLuint program ) */
3367560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean
3368560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsProgram__I
3369560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program) {
3370560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLboolean _returnValue;
3371560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glIsProgram(
3372560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program
3373560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3374560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
3375560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3376560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3377560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsRenderbuffer ( GLuint renderbuffer ) */
3378560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean
3379560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsRenderbuffer__I
3380560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint renderbuffer) {
3381560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLboolean _returnValue;
3382560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glIsRenderbuffer(
3383560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)renderbuffer
3384560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3385560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
3386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3388560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsShader ( GLuint shader ) */
3389560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean
3390560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsShader__I
3391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint shader) {
3392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLboolean _returnValue;
3393560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glIsShader(
3394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)shader
3395560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3396560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
3397560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3398560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* GLboolean glIsTexture ( GLuint texture ) */
3400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic jboolean
3401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glIsTexture__I
3402560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint texture) {
3403560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLboolean _returnValue;
3404560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _returnValue = glIsTexture(
3405560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)texture
3406560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3407560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return _returnValue;
3408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3410560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glLineWidth ( GLfloat width ) */
3411560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3412560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glLineWidth__F
3413560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jfloat width) {
3414560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glLineWidth(
3415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)width
3416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3418560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3419560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glLinkProgram ( GLuint program ) */
3420560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3421560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glLinkProgram__I
3422560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program) {
3423560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glLinkProgram(
3424560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program
3425560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3426560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3427560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3428560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glPixelStorei ( GLenum pname, GLint param ) */
3429560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3430560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glPixelStorei__II
3431560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
3432560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glPixelStorei(
3433560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3434560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)param
3435560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3436560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3437560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3438560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */
3439560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3440560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glPolygonOffset__FF
3441560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) {
3442560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glPolygonOffset(
3443560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)factor,
3444560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)units
3445560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3446560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3447560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3448560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */
3449560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3450560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glReadPixels__IIIIIILjava_nio_Buffer_2
3451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) {
3452560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _exception = 0;
3453560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
3456560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3457560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
3458560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glReadPixels(
3459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)x,
3460560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)y,
3461560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)width,
3462560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)height,
3463560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)format,
3464560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)type,
3465560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)pixels
3466560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3467560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3468560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, pixels, _exception ? JNI_FALSE : JNI_TRUE);
3469560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3472560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glReleaseShaderCompiler ( void ) */
3473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3474560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glReleaseShaderCompiler__
3475560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this) {
3476560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glReleaseShaderCompiler();
3477560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3479560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glRenderbufferStorage ( GLenum target, GLenum internalformat, GLsizei width, GLsizei height ) */
3480560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3481560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glRenderbufferStorage__IIII
3482560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint width, jint height) {
3483560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glRenderbufferStorage(
3484560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3485560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)internalformat,
3486560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)width,
3487560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)height
3488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3491560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */
3492560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glSampleCoverage__FZ
3494560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) {
3495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glSampleCoverage(
3496560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLclampf)value,
3497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)invert
3498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3499560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3500560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3501560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */
3502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3503560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glScissor__IIII
3504560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
3505560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glScissor(
3506560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)x,
3507560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)y,
3508560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)width,
3509560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)height
3510560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3511560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3512560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3513560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glShaderBinary ( GLsizei n, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length ) */
3514560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3515560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glShaderBinary__I_3IIILjava_nio_Buffer_2I
3516560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray shaders_ref, jint offset, jint binaryformat, jobject binary_buf, jint length) {
3517560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3518560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *shaders_base = (GLuint *) 0;
3519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _shadersRemaining;
3520560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *shaders = (GLuint *) 0;
3521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _binaryRemaining;
3522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *binary = (GLvoid *) 0;
3523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!shaders_ref) {
352524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "shaders == null");
3526560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3528560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
352924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
3530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3532560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _shadersRemaining = _env->GetArrayLength(shaders_ref) - offset;
3533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    shaders_base = (GLuint *)
3534560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(shaders_ref, (jboolean *)0);
3535560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    shaders = shaders_base + offset;
3536560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3537560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    binary = (GLvoid *)getPointer(_env, binary_buf, &_array, &_binaryRemaining);
3538560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glShaderBinary(
3539560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
3540560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)shaders,
3541560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)binaryformat,
3542560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)binary,
3543560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)length
3544560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3545560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3546560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3547560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3548560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, binary, JNI_FALSE);
3549560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3550560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (shaders_base) {
3551560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(shaders_ref, shaders_base,
3552560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
3553560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3554560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3555560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3556560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glShaderBinary ( GLsizei n, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length ) */
3557560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3558560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glShaderBinary__ILjava_nio_IntBuffer_2ILjava_nio_Buffer_2I
3559560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject shaders_buf, jint binaryformat, jobject binary_buf, jint length) {
3560560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _shadersArray = (jarray) 0;
3561560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _binaryArray = (jarray) 0;
3562560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _shadersRemaining;
3563560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLuint *shaders = (GLuint *) 0;
3564560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _binaryRemaining;
3565560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *binary = (GLvoid *) 0;
3566560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3567560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    shaders = (GLuint *)getPointer(_env, shaders_buf, &_shadersArray, &_shadersRemaining);
3568560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    binary = (GLvoid *)getPointer(_env, binary_buf, &_binaryArray, &_binaryRemaining);
3569560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glShaderBinary(
3570560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)n,
3571560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint *)shaders,
3572560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)binaryformat,
3573560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)binary,
3574560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)length
3575560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3576560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_shadersArray) {
3577560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _shadersArray, binary, JNI_FALSE);
3578560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3579560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_binaryArray) {
3580560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _binaryArray, shaders, JNI_FALSE);
3581560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3582560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3583560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3584560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3585560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glShaderSource ( GLuint shader, GLsizei count, const GLchar ** string, const GLint * length ) */
3586560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic
3587560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichvoid
3588560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glShaderSource
3589560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    (JNIEnv *_env, jobject _this, jint shader, jstring string) {
3590560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3591560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!string) {
359224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "string == null");
3593560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        return;
3594560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3595560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3596560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    const char* nativeString = _env->GetStringUTFChars(string, 0);
3597560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    const char* strings[] = {nativeString};
3598560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glShaderSource(shader, 1, strings, 0);
3599560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _env->ReleaseStringUTFChars(string, nativeString);
3600560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3601560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */
3602560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3603560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilFunc__III
3604560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) {
3605560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glStencilFunc(
3606560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)func,
3607560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)ref,
3608560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)mask
3609560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3610560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3611560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3612560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilFuncSeparate ( GLenum face, GLenum func, GLint ref, GLuint mask ) */
3613560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3614560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilFuncSeparate__IIII
3615560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint func, jint ref, jint mask) {
3616560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glStencilFuncSeparate(
3617560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)face,
3618560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)func,
3619560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)ref,
3620560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)mask
3621560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3622560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3623560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3624560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilMask ( GLuint mask ) */
3625560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3626560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilMask__I
3627560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint mask) {
3628560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glStencilMask(
3629560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)mask
3630560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3631560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3632560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3633560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilMaskSeparate ( GLenum face, GLuint mask ) */
3634560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3635560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilMaskSeparate__II
3636560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint mask) {
3637560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glStencilMaskSeparate(
3638560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)face,
3639560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)mask
3640560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3641560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3642560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3643560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */
3644560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3645560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilOp__III
3646560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) {
3647560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glStencilOp(
3648560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)fail,
3649560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)zfail,
3650560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)zpass
3651560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3652560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3653560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3654560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glStencilOpSeparate ( GLenum face, GLenum fail, GLenum zfail, GLenum zpass ) */
3655560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3656560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glStencilOpSeparate__IIII
3657560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint fail, jint zfail, jint zpass) {
3658560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glStencilOpSeparate(
3659560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)face,
3660560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)fail,
3661560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)zfail,
3662560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)zpass
3663560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3664560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3665560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3666560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */
3667560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3668560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2
3669560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) {
3670560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3671560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3672560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
3673560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3674560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (pixels_buf) {
3675560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
3676560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3677560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glTexImage2D(
3678560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3679560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)level,
3680560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)internalformat,
3681560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)width,
3682560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)height,
3683560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)border,
3684560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)format,
3685560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)type,
3686560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)pixels
3687560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3688560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3689560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, pixels, JNI_FALSE);
3690560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3691560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3692560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3693560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */
3694560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3695560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameterf__IIF
3696560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
3697560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glTexParameterf(
3698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3700560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)param
3701560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3702560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3703560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
3705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameterfv__II_3FI
3707560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
3708560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
3709560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params = (GLfloat *) 0;
3711560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
371324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
3714560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3715560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3716560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
371724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
3718560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3719560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3720560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3721560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < 1) {
372224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
3723560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3724560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3725560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLfloat *)
3726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
3727560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
3728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3729560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glTexParameterfv(
3730560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3731560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3732560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)params
3733560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3734560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3735560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3736560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
3737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
3738560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
3739560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3740560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3741560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3742560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
3743560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3744560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameterfv__IILjava_nio_FloatBuffer_2
3745560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
3746560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3747560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3748560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *params = (GLfloat *) 0;
3749560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3750560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
3751560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < 1) {
375224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
3753560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3754560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3755560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glTexParameterfv(
3756560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3757560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3758560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)params
3759560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3760560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3762560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
3764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3767560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */
3768560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3769560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameteri__III
3770560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
3771560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glTexParameteri(
3772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3774560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)param
3775560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3776560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3778560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
3779560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3780560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameteriv__II_3II
3781560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
3782560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params_base = (GLint *) 0;
3783560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3784560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
3785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3786560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!params_ref) {
378724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "params == null");
3788560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3789560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3790560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
379124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
3792560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3793560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3794560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
3795560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < 1) {
379624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "length - offset < 1");
3797560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3798560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params_base = (GLint *)
3800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
3801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = params_base + offset;
3802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3803560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glTexParameteriv(
3804560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3805560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
3807560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3808560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3809560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3810560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (params_base) {
3811560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
3812560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
3813560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3814560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3815560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3816560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
3817560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3818560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexParameteriv__IILjava_nio_IntBuffer_2
3819560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
3820560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3821560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3822560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *params = (GLint *) 0;
3823560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3824560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
3825560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_remaining < 1) {
382624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "remaining() < 1");
3827560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3828560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3829560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glTexParameteriv(
3830560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3831560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)pname,
3832560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)params
3833560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3834560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3835560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3836560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3837560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
3838560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3839560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3840560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3841560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */
3842560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3843560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
3844560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) {
3845560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3846560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3847560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
3848560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3849560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (pixels_buf) {
3850560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
3851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3852560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glTexSubImage2D(
3853560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)target,
3854560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)level,
3855560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)xoffset,
3856560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)yoffset,
3857560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)width,
3858560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)height,
3859560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)format,
3860560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)type,
3861560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)pixels
3862560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3863560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3864560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, pixels, JNI_FALSE);
3865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3866560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3867560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3868560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1f ( GLint location, GLfloat x ) */
3869560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3870560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1f__IF
3871560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jfloat x) {
3872560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform1f(
3873560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
3874560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)x
3875560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3876560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3877560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3878560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1fv ( GLint location, GLsizei count, const GLfloat *v ) */
3879560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3880560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1fv__II_3FI
3881560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) {
3882560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v_base = (GLfloat *) 0;
3883560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3884560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v = (GLfloat *) 0;
3885560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3886560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!v_ref) {
388724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "v == null");
3888560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3889560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3890560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
389124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
3892560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3893560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3894560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(v_ref) - offset;
3895560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v_base = (GLfloat *)
3896560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0);
3897560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = v_base + offset;
3898560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3899560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform1fv(
3900560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
3901560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
3902560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)v
3903560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3904560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3905560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3906560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (v_base) {
3907560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(v_ref, v_base,
3908560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
3909560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3910560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3911560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3912560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1fv ( GLint location, GLsizei count, const GLfloat *v ) */
3913560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3914560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1fv__IILjava_nio_FloatBuffer_2
3915560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) {
3916560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3917560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3918560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v = (GLfloat *) 0;
3919560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3920560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining);
3921560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform1fv(
3922560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
3923560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
3924560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)v
3925560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3926560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3927560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, v, JNI_FALSE);
3928560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3929560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3930560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3931560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1i ( GLint location, GLint x ) */
3932560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3933560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1i__II
3934560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint x) {
3935560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform1i(
3936560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
3937560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)x
3938560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3939560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3940560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3941560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1iv ( GLint location, GLsizei count, const GLint *v ) */
3942560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3943560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1iv__II_3II
3944560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) {
3945560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v_base = (GLint *) 0;
3946560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3947560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v = (GLint *) 0;
3948560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3949560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!v_ref) {
395024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "v == null");
3951560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3952560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3953560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
395424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
3955560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
3956560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3957560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(v_ref) - offset;
3958560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v_base = (GLint *)
3959560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0);
3960560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = v_base + offset;
3961560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3962560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform1iv(
3963560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
3964560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
3965560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)v
3966560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3967560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3968560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
3969560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (v_base) {
3970560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(v_ref, v_base,
3971560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
3972560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3973560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3974560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3975560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform1iv ( GLint location, GLsizei count, const GLint *v ) */
3976560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3977560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform1iv__IILjava_nio_IntBuffer_2
3978560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) {
3979560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
3980560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
3981560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v = (GLint *) 0;
3982560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3983560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining);
3984560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform1iv(
3985560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
3986560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
3987560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)v
3988560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
3989560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
3990560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, v, JNI_FALSE);
3991560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
3992560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
3993560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
3994560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2f ( GLint location, GLfloat x, GLfloat y ) */
3995560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
3996560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2f__IFF
3997560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jfloat x, jfloat y) {
3998560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform2f(
3999560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4000560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)x,
4001560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)y
4002560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4003560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4004560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4005560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2fv ( GLint location, GLsizei count, const GLfloat *v ) */
4006560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4007560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2fv__II_3FI
4008560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) {
4009560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v_base = (GLfloat *) 0;
4010560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4011560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v = (GLfloat *) 0;
4012560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4013560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!v_ref) {
401424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "v == null");
4015560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4016560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4017560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
401824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4019560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4020560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4021560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(v_ref) - offset;
4022560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v_base = (GLfloat *)
4023560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0);
4024560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = v_base + offset;
4025560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform2fv(
4027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4029560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)v
4030560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4032560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4033560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (v_base) {
4034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(v_ref, v_base,
4035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4038560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4039560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2fv ( GLint location, GLsizei count, const GLfloat *v ) */
4040560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4041560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2fv__IILjava_nio_FloatBuffer_2
4042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) {
4043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v = (GLfloat *) 0;
4046560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4047560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining);
4048560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform2fv(
4049560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)v
4052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4053560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4054560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, v, JNI_FALSE);
4055560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4057560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4058560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2i ( GLint location, GLint x, GLint y ) */
4059560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4060560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2i__III
4061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint x, jint y) {
4062560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform2i(
4063560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4064560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)x,
4065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)y
4066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4067560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4068560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4069560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2iv ( GLint location, GLsizei count, const GLint *v ) */
4070560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4071560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2iv__II_3II
4072560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) {
4073560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v_base = (GLint *) 0;
4074560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4075560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v = (GLint *) 0;
4076560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4077560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!v_ref) {
407824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "v == null");
4079560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4080560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4081560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
408224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4083560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4084560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4085560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(v_ref) - offset;
4086560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v_base = (GLint *)
4087560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0);
4088560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = v_base + offset;
4089560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4090560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform2iv(
4091560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4092560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4093560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)v
4094560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4095560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4096560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4097560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (v_base) {
4098560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(v_ref, v_base,
4099560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4100560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4101560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4102560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4103560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform2iv ( GLint location, GLsizei count, const GLint *v ) */
4104560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4105560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform2iv__IILjava_nio_IntBuffer_2
4106560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) {
4107560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4108560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4109560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v = (GLint *) 0;
4110560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4111560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining);
4112560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform2iv(
4113560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4114560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4115560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)v
4116560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4117560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4118560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, v, JNI_FALSE);
4119560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4120560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4121560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4122560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3f ( GLint location, GLfloat x, GLfloat y, GLfloat z ) */
4123560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4124560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3f__IFFF
4125560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jfloat x, jfloat y, jfloat z) {
4126560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform3f(
4127560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4128560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)x,
4129560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)y,
4130560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)z
4131560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4132560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4133560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4134560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3fv ( GLint location, GLsizei count, const GLfloat *v ) */
4135560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4136560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3fv__II_3FI
4137560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) {
4138560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v_base = (GLfloat *) 0;
4139560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4140560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v = (GLfloat *) 0;
4141560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4142560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!v_ref) {
414324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "v == null");
4144560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4145560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4146560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
414724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4148560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4149560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4150560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(v_ref) - offset;
4151560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v_base = (GLfloat *)
4152560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0);
4153560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = v_base + offset;
4154560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4155560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform3fv(
4156560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4157560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4158560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)v
4159560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4160560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4161560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4162560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (v_base) {
4163560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(v_ref, v_base,
4164560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4165560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4166560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4167560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4168560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3fv ( GLint location, GLsizei count, const GLfloat *v ) */
4169560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4170560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3fv__IILjava_nio_FloatBuffer_2
4171560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) {
4172560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4173560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4174560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v = (GLfloat *) 0;
4175560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4176560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining);
4177560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform3fv(
4178560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4179560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4180560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)v
4181560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4182560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4183560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, v, JNI_FALSE);
4184560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4185560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4186560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4187560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3i ( GLint location, GLint x, GLint y, GLint z ) */
4188560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4189560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3i__IIII
4190560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint x, jint y, jint z) {
4191560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform3i(
4192560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4193560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)x,
4194560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)y,
4195560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)z
4196560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4197560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4198560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4199560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3iv ( GLint location, GLsizei count, const GLint *v ) */
4200560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4201560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3iv__II_3II
4202560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) {
4203560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v_base = (GLint *) 0;
4204560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4205560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v = (GLint *) 0;
4206560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4207560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!v_ref) {
420824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "v == null");
4209560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4210560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4211560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
421224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4213560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4214560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4215560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(v_ref) - offset;
4216560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v_base = (GLint *)
4217560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0);
4218560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = v_base + offset;
4219560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4220560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform3iv(
4221560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4222560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4223560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)v
4224560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4225560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4226560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4227560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (v_base) {
4228560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(v_ref, v_base,
4229560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4230560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4231560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4232560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4233560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform3iv ( GLint location, GLsizei count, const GLint *v ) */
4234560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4235560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform3iv__IILjava_nio_IntBuffer_2
4236560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) {
4237560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4238560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4239560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v = (GLint *) 0;
4240560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4241560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining);
4242560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform3iv(
4243560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4244560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4245560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)v
4246560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4247560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4248560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, v, JNI_FALSE);
4249560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4250560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4251560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4252560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4f ( GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) */
4253560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4254560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4f__IFFFF
4255560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jfloat x, jfloat y, jfloat z, jfloat w) {
4256560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform4f(
4257560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4258560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)x,
4259560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)y,
4260560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)z,
4261560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)w
4262560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4263560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4264560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4265560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4fv ( GLint location, GLsizei count, const GLfloat *v ) */
4266560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4267560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4fv__II_3FI
4268560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) {
4269560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v_base = (GLfloat *) 0;
4270560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4271560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v = (GLfloat *) 0;
4272560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4273560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!v_ref) {
427424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "v == null");
4275560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4276560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4277560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
427824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4279560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4280560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4281560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(v_ref) - offset;
4282560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v_base = (GLfloat *)
4283560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0);
4284560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = v_base + offset;
4285560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4286560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform4fv(
4287560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4288560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4289560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)v
4290560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4291560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4292560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4293560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (v_base) {
4294560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(v_ref, v_base,
4295560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4296560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4297560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4298560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4299560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4fv ( GLint location, GLsizei count, const GLfloat *v ) */
4300560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4301560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4fv__IILjava_nio_FloatBuffer_2
4302560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) {
4303560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4304560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4305560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *v = (GLfloat *) 0;
4306560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4307560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining);
4308560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform4fv(
4309560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4310560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4311560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)v
4312560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4313560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4314560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, v, JNI_FALSE);
4315560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4316560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4317560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4318560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4i ( GLint location, GLint x, GLint y, GLint z, GLint w ) */
4319560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4320560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4i__IIIII
4321560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint x, jint y, jint z, jint w) {
4322560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform4i(
4323560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4324560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)x,
4325560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)y,
4326560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)z,
4327560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)w
4328560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4329560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4330560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4331560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4iv ( GLint location, GLsizei count, const GLint *v ) */
4332560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4333560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4iv__II_3II
4334560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) {
4335560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v_base = (GLint *) 0;
4336560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4337560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v = (GLint *) 0;
4338560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4339560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!v_ref) {
434024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "v == null");
4341560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4342560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4343560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
434424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4345560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4346560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4347560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(v_ref) - offset;
4348560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v_base = (GLint *)
4349560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0);
4350560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = v_base + offset;
4351560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4352560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform4iv(
4353560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4354560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4355560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)v
4356560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4357560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4358560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4359560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (v_base) {
4360560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(v_ref, v_base,
4361560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4362560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4363560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4364560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4365560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniform4iv ( GLint location, GLsizei count, const GLint *v ) */
4366560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4367560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniform4iv__IILjava_nio_IntBuffer_2
4368560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) {
4369560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4370560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4371560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLint *v = (GLint *) 0;
4372560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4373560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining);
4374560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniform4iv(
4375560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4376560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4377560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint *)v
4378560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4379560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4380560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, v, JNI_FALSE);
4381560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4382560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4383560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4384560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */
4385560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4386560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix2fv__IIZ_3FI
4387560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) {
4388560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *value_base = (GLfloat *) 0;
4389560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4390560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *value = (GLfloat *) 0;
4391560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4392560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!value_ref) {
439324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "value == null");
4394560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4395560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4396560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
439724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4398560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4399560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4400560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(value_ref) - offset;
4401560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    value_base = (GLfloat *)
4402560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0);
4403560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    value = value_base + offset;
4404560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4405560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniformMatrix2fv(
4406560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4407560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4408560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)transpose,
4409560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)value
4410560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4411560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4412560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4413560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (value_base) {
4414560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(value_ref, value_base,
4415560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4416560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4417560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4418560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4419560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */
4420560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4421560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2
4422560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) {
4423560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4424560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4425560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *value = (GLfloat *) 0;
4426560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4427560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining);
4428560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniformMatrix2fv(
4429560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4430560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4431560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)transpose,
4432560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)value
4433560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4434560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4435560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, value, JNI_FALSE);
4436560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4437560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4438560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4439560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */
4440560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4441560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix3fv__IIZ_3FI
4442560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) {
4443560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *value_base = (GLfloat *) 0;
4444560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4445560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *value = (GLfloat *) 0;
4446560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4447560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!value_ref) {
444824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "value == null");
4449560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4450560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4451560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
445224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4453560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4454560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4455560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(value_ref) - offset;
4456560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    value_base = (GLfloat *)
4457560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0);
4458560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    value = value_base + offset;
4459560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4460560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniformMatrix3fv(
4461560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4462560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4463560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)transpose,
4464560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)value
4465560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4466560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4467560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4468560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (value_base) {
4469560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(value_ref, value_base,
4470560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4471560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4472560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4473560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4474560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */
4475560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4476560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2
4477560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) {
4478560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4479560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4480560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *value = (GLfloat *) 0;
4481560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4482560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining);
4483560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniformMatrix3fv(
4484560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4485560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4486560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)transpose,
4487560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)value
4488560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4489560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4490560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, value, JNI_FALSE);
4491560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4492560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4493560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4494560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */
4495560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4496560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix4fv__IIZ_3FI
4497560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) {
4498560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *value_base = (GLfloat *) 0;
4499560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4500560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *value = (GLfloat *) 0;
4501560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4502560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!value_ref) {
450324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "value == null");
4504560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4505560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4506560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
450724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4508560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4509560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4510560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(value_ref) - offset;
4511560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    value_base = (GLfloat *)
4512560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0);
4513560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    value = value_base + offset;
4514560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4515560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniformMatrix4fv(
4516560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4517560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4518560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)transpose,
4519560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)value
4520560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4521560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4522560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4523560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (value_base) {
4524560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(value_ref, value_base,
4525560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4526560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4527560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4528560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4529560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUniformMatrix4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */
4530560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4531560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2
4532560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) {
4533560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4534560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4535560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *value = (GLfloat *) 0;
4536560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4537560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining);
4538560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUniformMatrix4fv(
4539560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)location,
4540560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)count,
4541560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)transpose,
4542560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)value
4543560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4544560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4545560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, value, JNI_FALSE);
4546560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4547560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4548560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4549560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glUseProgram ( GLuint program ) */
4550560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4551560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glUseProgram__I
4552560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program) {
4553560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glUseProgram(
4554560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program
4555560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4556560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4557560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4558560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glValidateProgram ( GLuint program ) */
4559560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4560560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glValidateProgram__I
4561560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint program) {
4562560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glValidateProgram(
4563560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)program
4564560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4565560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4566560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4567560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib1f ( GLuint indx, GLfloat x ) */
4568560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4569560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib1f__IF
4570560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jfloat x) {
4571560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib1f(
4572560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4573560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)x
4574560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4575560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4576560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4577560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib1fv ( GLuint indx, const GLfloat *values ) */
4578560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4579560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib1fv__I_3FI
4580560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) {
4581560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values_base = (GLfloat *) 0;
4582560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4583560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values = (GLfloat *) 0;
4584560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4585560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!values_ref) {
458624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "values == null");
4587560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4588560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4589560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
459024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4591560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4592560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4593560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(values_ref) - offset;
4594560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values_base = (GLfloat *)
4595560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0);
4596560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values = values_base + offset;
4597560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4598560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib1fv(
4599560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4600560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)values
4601560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4602560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4603560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4604560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (values_base) {
4605560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(values_ref, values_base,
4606560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4607560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4608560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4609560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4610560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib1fv ( GLuint indx, const GLfloat *values ) */
4611560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4612560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib1fv__ILjava_nio_FloatBuffer_2
4613560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) {
4614560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4615560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4616560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values = (GLfloat *) 0;
4617560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4618560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining);
4619560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib1fv(
4620560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4621560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)values
4622560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4623560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4624560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, values, JNI_FALSE);
4625560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4626560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4627560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4628560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib2f ( GLuint indx, GLfloat x, GLfloat y ) */
4629560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4630560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib2f__IFF
4631560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jfloat x, jfloat y) {
4632560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib2f(
4633560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4634560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)x,
4635560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)y
4636560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4637560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4638560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4639560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib2fv ( GLuint indx, const GLfloat *values ) */
4640560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4641560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib2fv__I_3FI
4642560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) {
4643560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values_base = (GLfloat *) 0;
4644560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4645560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values = (GLfloat *) 0;
4646560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4647560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!values_ref) {
464824ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "values == null");
4649560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4650560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4651560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
465224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4653560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4654560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4655560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(values_ref) - offset;
4656560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values_base = (GLfloat *)
4657560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0);
4658560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values = values_base + offset;
4659560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4660560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib2fv(
4661560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4662560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)values
4663560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4664560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4665560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4666560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (values_base) {
4667560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(values_ref, values_base,
4668560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4669560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4670560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4671560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4672560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib2fv ( GLuint indx, const GLfloat *values ) */
4673560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4674560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib2fv__ILjava_nio_FloatBuffer_2
4675560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) {
4676560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4677560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4678560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values = (GLfloat *) 0;
4679560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4680560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining);
4681560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib2fv(
4682560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4683560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)values
4684560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4685560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4686560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, values, JNI_FALSE);
4687560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4688560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4689560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4690560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib3f ( GLuint indx, GLfloat x, GLfloat y, GLfloat z ) */
4691560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4692560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib3f__IFFF
4693560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jfloat x, jfloat y, jfloat z) {
4694560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib3f(
4695560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4696560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)x,
4697560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)y,
4698560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)z
4699560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4700560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4701560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4702560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib3fv ( GLuint indx, const GLfloat *values ) */
4703560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4704560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib3fv__I_3FI
4705560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) {
4706560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values_base = (GLfloat *) 0;
4707560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4708560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values = (GLfloat *) 0;
4709560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4710560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!values_ref) {
471124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "values == null");
4712560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4713560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4714560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
471524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4716560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4717560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4718560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(values_ref) - offset;
4719560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values_base = (GLfloat *)
4720560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0);
4721560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values = values_base + offset;
4722560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4723560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib3fv(
4724560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4725560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)values
4726560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4727560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4728560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4729560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (values_base) {
4730560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(values_ref, values_base,
4731560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4732560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4733560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4734560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4735560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib3fv ( GLuint indx, const GLfloat *values ) */
4736560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4737560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib3fv__ILjava_nio_FloatBuffer_2
4738560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) {
4739560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4740560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4741560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values = (GLfloat *) 0;
4742560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4743560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining);
4744560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib3fv(
4745560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4746560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)values
4747560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4748560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4749560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, values, JNI_FALSE);
4750560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4751560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4752560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4753560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib4f ( GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) */
4754560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4755560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib4f__IFFFF
4756560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jfloat x, jfloat y, jfloat z, jfloat w) {
4757560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib4f(
4758560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4759560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)x,
4760560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)y,
4761560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)z,
4762560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat)w
4763560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4764560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4765560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4766560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib4fv ( GLuint indx, const GLfloat *values ) */
4767560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4768560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib4fv__I_3FI
4769560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) {
4770560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values_base = (GLfloat *) 0;
4771560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4772560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values = (GLfloat *) 0;
4773560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4774560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (!values_ref) {
477524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "values == null");
4776560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4777560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4778560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (offset < 0) {
477924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException", "offset < 0");
4780560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        goto exit;
4781560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4782560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    _remaining = _env->GetArrayLength(values_ref) - offset;
4783560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values_base = (GLfloat *)
4784560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0);
4785560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values = values_base + offset;
4786560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4787560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib4fv(
4788560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4789560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)values
4790560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4791560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4792560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichexit:
4793560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (values_base) {
4794560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        _env->ReleasePrimitiveArrayCritical(values_ref, values_base,
4795560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            JNI_ABORT);
4796560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4797560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4798560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4799560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttrib4fv ( GLuint indx, const GLfloat *values ) */
4800560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4801560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttrib4fv__ILjava_nio_FloatBuffer_2
4802560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) {
4803560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4804560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4805560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLfloat *values = (GLfloat *) 0;
4806560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4807560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining);
4808560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttrib4fv(
4809560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4810560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLfloat *)values
4811560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4812560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (_array) {
4813560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        releasePointer(_env, _array, values, JNI_FALSE);
4814560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4815560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4816560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4817224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich/* void glVertexAttribPointer ( GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLint offset ) */
4818224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevichstatic void
4819224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevichandroid_glVertexAttribPointer__IIIZII
4820224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich  (JNIEnv *_env, jobject _this, jint indx, jint size, jint type, jboolean normalized, jint stride, jint offset) {
4821224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich    glVertexAttribPointer(
4822224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich        (GLuint)indx,
4823224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich        (GLint)size,
4824224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich        (GLenum)type,
4825224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich        (GLboolean)normalized,
4826224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich        (GLsizei)stride,
4827224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich        (const GLvoid *)offset
4828224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich    );
4829224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich}
4830224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich
4831560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glVertexAttribPointer ( GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *ptr ) */
4832560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4833560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glVertexAttribPointerBounds__IIIZILjava_nio_Buffer_2I
4834560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint indx, jint size, jint type, jboolean normalized, jint stride, jobject ptr_buf, jint remaining) {
4835560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jarray _array = (jarray) 0;
4836560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    jint _remaining;
4837560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    GLvoid *ptr = (GLvoid *) 0;
4838560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4839560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    if (ptr_buf) {
4840560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        ptr = (GLvoid *) getDirectBufferPointer(_env, ptr_buf);
4841560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        if ( ! ptr ) {
4842560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich            return;
4843560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        }
4844560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    }
4845560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glVertexAttribPointerBounds(
4846560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLuint)indx,
4847560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)size,
4848560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLenum)type,
4849560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLboolean)normalized,
4850560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)stride,
4851560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLvoid *)ptr,
4852560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)remaining
4853560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4854560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4855560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4856560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */
4857560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic void
4858560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichandroid_glViewport__IIII
4859560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
4860560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    glViewport(
4861560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)x,
4862560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLint)y,
4863560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)width,
4864560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich        (GLsizei)height
4865560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    );
4866560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
4867560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4868560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic const char *classPathName = "android/opengl/GLES20";
4869560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
4870560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichstatic JNINativeMethod methods[] = {
4871560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit },
4872560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I },
4873560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glAttachShader", "(II)V", (void *) android_glAttachShader__II },
4874560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBindAttribLocation", "(IILjava/lang/String;)V", (void *) android_glBindAttribLocation__IILjava_lang_String_2 },
4875560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II },
4876560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBindFramebuffer", "(II)V", (void *) android_glBindFramebuffer__II },
4877560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBindRenderbuffer", "(II)V", (void *) android_glBindRenderbuffer__II },
4878560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBindTexture", "(II)V", (void *) android_glBindTexture__II },
4879560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBlendColor", "(FFFF)V", (void *) android_glBlendColor__FFFF },
4880560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBlendEquation", "(I)V", (void *) android_glBlendEquation__I },
4881560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBlendEquationSeparate", "(II)V", (void *) android_glBlendEquationSeparate__II },
4882560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II },
4883560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBlendFuncSeparate", "(IIII)V", (void *) android_glBlendFuncSeparate__IIII },
4884560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I },
4885560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 },
4886560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCheckFramebufferStatus", "(I)I", (void *) android_glCheckFramebufferStatus__I },
4887560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glClear", "(I)V", (void *) android_glClear__I },
4888560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF },
4889560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F },
4890560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glClearStencil", "(I)V", (void *) android_glClearStencil__I },
4891560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ },
4892560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCompileShader", "(I)V", (void *) android_glCompileShader__I },
4893560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 },
4894560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
4895560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII },
4896560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII },
4897560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCreateProgram", "()I", (void *) android_glCreateProgram__ },
4898560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCreateShader", "(I)I", (void *) android_glCreateShader__I },
4899560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glCullFace", "(I)V", (void *) android_glCullFace__I },
4900560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II },
4901560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 },
4902560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteFramebuffers", "(I[II)V", (void *) android_glDeleteFramebuffers__I_3II },
4903560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteFramebuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteFramebuffers__ILjava_nio_IntBuffer_2 },
4904560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteProgram", "(I)V", (void *) android_glDeleteProgram__I },
4905560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteRenderbuffers", "(I[II)V", (void *) android_glDeleteRenderbuffers__I_3II },
4906560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteRenderbuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteRenderbuffers__ILjava_nio_IntBuffer_2 },
4907560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteShader", "(I)V", (void *) android_glDeleteShader__I },
4908560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II },
4909560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 },
4910560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I },
4911560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z },
4912560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF },
4913560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDetachShader", "(II)V", (void *) android_glDetachShader__II },
4914560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDisable", "(I)V", (void *) android_glDisable__I },
4915560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDisableVertexAttribArray", "(I)V", (void *) android_glDisableVertexAttribArray__I },
4916560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III },
4917224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich{"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII },
4918560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 },
4919560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glEnable", "(I)V", (void *) android_glEnable__I },
4920560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glEnableVertexAttribArray", "(I)V", (void *) android_glEnableVertexAttribArray__I },
4921560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glFinish", "()V", (void *) android_glFinish__ },
4922560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glFlush", "()V", (void *) android_glFlush__ },
4923560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glFramebufferRenderbuffer", "(IIII)V", (void *) android_glFramebufferRenderbuffer__IIII },
4924560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glFramebufferTexture2D", "(IIIII)V", (void *) android_glFramebufferTexture2D__IIIII },
4925560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glFrontFace", "(I)V", (void *) android_glFrontFace__I },
4926560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II },
4927560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 },
4928560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenerateMipmap", "(I)V", (void *) android_glGenerateMipmap__I },
4929560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenFramebuffers", "(I[II)V", (void *) android_glGenFramebuffers__I_3II },
4930560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenFramebuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenFramebuffers__ILjava_nio_IntBuffer_2 },
4931560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenRenderbuffers", "(I[II)V", (void *) android_glGenRenderbuffers__I_3II },
4932560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenRenderbuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenRenderbuffers__ILjava_nio_IntBuffer_2 },
4933560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II },
4934560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 },
4935560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetActiveAttrib", "(III[II[II[II[BI)V", (void *) android_glGetActiveAttrib__III_3II_3II_3II_3BI },
4936560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetActiveAttrib", "(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V", (void *) android_glGetActiveAttrib__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B },
4937560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetActiveUniform", "(III[II[II[II[BI)V", (void *) android_glGetActiveUniform__III_3II_3II_3II_3BI },
4938560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetActiveUniform", "(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V", (void *) android_glGetActiveUniform__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B },
4939560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetAttachedShaders", "(II[II[II)V", (void *) android_glGetAttachedShaders__II_3II_3II },
4940560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetAttachedShaders", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V", (void *) android_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 },
4941560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetAttribLocation", "(ILjava/lang/String;)I", (void *) android_glGetAttribLocation__ILjava_lang_String_2 },
4942560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI },
4943560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 },
4944560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II },
4945560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 },
4946560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetError", "()I", (void *) android_glGetError__ },
4947560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI },
4948560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 },
4949560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetFramebufferAttachmentParameteriv", "(III[II)V", (void *) android_glGetFramebufferAttachmentParameteriv__III_3II },
4950560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetFramebufferAttachmentParameteriv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2 },
4951560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II },
4952560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 },
4953560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetProgramiv", "(II[II)V", (void *) android_glGetProgramiv__II_3II },
4954560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetProgramiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetProgramiv__IILjava_nio_IntBuffer_2 },
4955560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetProgramInfoLog", "(I)Ljava/lang/String;", (void *) android_glGetProgramInfoLog },
4956560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetRenderbufferParameteriv", "(II[II)V", (void *) android_glGetRenderbufferParameteriv__II_3II },
4957560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetRenderbufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetRenderbufferParameteriv__IILjava_nio_IntBuffer_2 },
4958560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderiv", "(II[II)V", (void *) android_glGetShaderiv__II_3II },
4959560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetShaderiv__IILjava_nio_IntBuffer_2 },
4960560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderInfoLog", "(I)Ljava/lang/String;", (void *) android_glGetShaderInfoLog },
4961560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderPrecisionFormat", "(II[II[II)V", (void *) android_glGetShaderPrecisionFormat__II_3II_3II },
4962560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderPrecisionFormat", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V", (void *) android_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 },
4963560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderSource", "(II[II[BI)V", (void *) android_glGetShaderSource__II_3II_3BI },
4964560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetShaderSource", "(IILjava/nio/IntBuffer;B)V", (void *) android_glGetShaderSource__IILjava_nio_IntBuffer_2B },
4965560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },
4966560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI },
4967560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 },
4968560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II },
4969560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 },
4970560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetUniformfv", "(II[FI)V", (void *) android_glGetUniformfv__II_3FI },
4971560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetUniformfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetUniformfv__IILjava_nio_FloatBuffer_2 },
4972560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetUniformiv", "(II[II)V", (void *) android_glGetUniformiv__II_3II },
4973560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetUniformiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetUniformiv__IILjava_nio_IntBuffer_2 },
4974560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetUniformLocation", "(ILjava/lang/String;)I", (void *) android_glGetUniformLocation__ILjava_lang_String_2 },
4975560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetVertexAttribfv", "(II[FI)V", (void *) android_glGetVertexAttribfv__II_3FI },
4976560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetVertexAttribfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetVertexAttribfv__IILjava_nio_FloatBuffer_2 },
4977560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetVertexAttribiv", "(II[II)V", (void *) android_glGetVertexAttribiv__II_3II },
4978560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glGetVertexAttribiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetVertexAttribiv__IILjava_nio_IntBuffer_2 },
4979560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glHint", "(II)V", (void *) android_glHint__II },
4980560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I },
4981560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I },
4982560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsFramebuffer", "(I)Z", (void *) android_glIsFramebuffer__I },
4983560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsProgram", "(I)Z", (void *) android_glIsProgram__I },
4984560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsRenderbuffer", "(I)Z", (void *) android_glIsRenderbuffer__I },
4985560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsShader", "(I)Z", (void *) android_glIsShader__I },
4986560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glIsTexture", "(I)Z", (void *) android_glIsTexture__I },
4987560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glLineWidth", "(F)V", (void *) android_glLineWidth__F },
4988560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glLinkProgram", "(I)V", (void *) android_glLinkProgram__I },
4989560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II },
4990560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF },
4991560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 },
4992560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glReleaseShaderCompiler", "()V", (void *) android_glReleaseShaderCompiler__ },
4993560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glRenderbufferStorage", "(IIII)V", (void *) android_glRenderbufferStorage__IIII },
4994560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ },
4995560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glScissor", "(IIII)V", (void *) android_glScissor__IIII },
4996560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glShaderBinary", "(I[IIILjava/nio/Buffer;I)V", (void *) android_glShaderBinary__I_3IIILjava_nio_Buffer_2I },
4997560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glShaderBinary", "(ILjava/nio/IntBuffer;ILjava/nio/Buffer;I)V", (void *) android_glShaderBinary__ILjava_nio_IntBuffer_2ILjava_nio_Buffer_2I },
4998560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glShaderSource", "(ILjava/lang/String;)V", (void *) android_glShaderSource },
4999560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III },
5000560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilFuncSeparate", "(IIII)V", (void *) android_glStencilFuncSeparate__IIII },
5001560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilMask", "(I)V", (void *) android_glStencilMask__I },
5002560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilMaskSeparate", "(II)V", (void *) android_glStencilMaskSeparate__II },
5003560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilOp", "(III)V", (void *) android_glStencilOp__III },
5004560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glStencilOpSeparate", "(IIII)V", (void *) android_glStencilOpSeparate__IIII },
5005560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 },
5006560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF },
5007560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI },
5008560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 },
5009560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III },
5010560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II },
5011560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 },
5012560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
5013560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1f", "(IF)V", (void *) android_glUniform1f__IF },
5014560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1fv", "(II[FI)V", (void *) android_glUniform1fv__II_3FI },
5015560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform1fv__IILjava_nio_FloatBuffer_2 },
5016560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1i", "(II)V", (void *) android_glUniform1i__II },
5017560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1iv", "(II[II)V", (void *) android_glUniform1iv__II_3II },
5018560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform1iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform1iv__IILjava_nio_IntBuffer_2 },
5019560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2f", "(IFF)V", (void *) android_glUniform2f__IFF },
5020560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2fv", "(II[FI)V", (void *) android_glUniform2fv__II_3FI },
5021560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform2fv__IILjava_nio_FloatBuffer_2 },
5022560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2i", "(III)V", (void *) android_glUniform2i__III },
5023560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2iv", "(II[II)V", (void *) android_glUniform2iv__II_3II },
5024560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform2iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform2iv__IILjava_nio_IntBuffer_2 },
5025560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3f", "(IFFF)V", (void *) android_glUniform3f__IFFF },
5026560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3fv", "(II[FI)V", (void *) android_glUniform3fv__II_3FI },
5027560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform3fv__IILjava_nio_FloatBuffer_2 },
5028560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3i", "(IIII)V", (void *) android_glUniform3i__IIII },
5029560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3iv", "(II[II)V", (void *) android_glUniform3iv__II_3II },
5030560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform3iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform3iv__IILjava_nio_IntBuffer_2 },
5031560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4f", "(IFFFF)V", (void *) android_glUniform4f__IFFFF },
5032560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4fv", "(II[FI)V", (void *) android_glUniform4fv__II_3FI },
5033560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform4fv__IILjava_nio_FloatBuffer_2 },
5034560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4i", "(IIIII)V", (void *) android_glUniform4i__IIIII },
5035560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4iv", "(II[II)V", (void *) android_glUniform4iv__II_3II },
5036560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniform4iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform4iv__IILjava_nio_IntBuffer_2 },
5037560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix2fv", "(IIZ[FI)V", (void *) android_glUniformMatrix2fv__IIZ_3FI },
5038560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix2fv", "(IIZLjava/nio/FloatBuffer;)V", (void *) android_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2 },
5039560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix3fv", "(IIZ[FI)V", (void *) android_glUniformMatrix3fv__IIZ_3FI },
5040560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix3fv", "(IIZLjava/nio/FloatBuffer;)V", (void *) android_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2 },
5041560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix4fv", "(IIZ[FI)V", (void *) android_glUniformMatrix4fv__IIZ_3FI },
5042560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUniformMatrix4fv", "(IIZLjava/nio/FloatBuffer;)V", (void *) android_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2 },
5043560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glUseProgram", "(I)V", (void *) android_glUseProgram__I },
5044560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glValidateProgram", "(I)V", (void *) android_glValidateProgram__I },
5045560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib1f", "(IF)V", (void *) android_glVertexAttrib1f__IF },
5046560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib1fv", "(I[FI)V", (void *) android_glVertexAttrib1fv__I_3FI },
5047560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib1fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib1fv__ILjava_nio_FloatBuffer_2 },
5048560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib2f", "(IFF)V", (void *) android_glVertexAttrib2f__IFF },
5049560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib2fv", "(I[FI)V", (void *) android_glVertexAttrib2fv__I_3FI },
5050560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib2fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib2fv__ILjava_nio_FloatBuffer_2 },
5051560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib3f", "(IFFF)V", (void *) android_glVertexAttrib3f__IFFF },
5052560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib3fv", "(I[FI)V", (void *) android_glVertexAttrib3fv__I_3FI },
5053560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib3fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib3fv__ILjava_nio_FloatBuffer_2 },
5054560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib4f", "(IFFFF)V", (void *) android_glVertexAttrib4f__IFFFF },
5055560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib4fv", "(I[FI)V", (void *) android_glVertexAttrib4fv__I_3FI },
5056560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttrib4fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib4fv__ILjava_nio_FloatBuffer_2 },
5057224107a421e2611b15d1ec736df54bca9ee3e78dJack Palevich{"glVertexAttribPointer", "(IIIZII)V", (void *) android_glVertexAttribPointer__IIIZII },
5058560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glVertexAttribPointerBounds", "(IIIZILjava/nio/Buffer;I)V", (void *) android_glVertexAttribPointerBounds__IIIZILjava_nio_Buffer_2I },
5059560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{"glViewport", "(IIII)V", (void *) android_glViewport__IIII },
5060560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich};
5061560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich
5062560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevichint register_android_opengl_jni_GLES20(JNIEnv *_env)
5063560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich{
5064560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    int err;
5065560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
5066560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich    return err;
5067560814f6b11abe83ff0c4ed18cac015c276b3181Jack Palevich}
5068