android_opengl_GLES11Ext.cpp revision 73108675c944ab4ee89631dced23566b12341b66
1/*
2**
3** Copyright 2009, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9**     http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17
18// This source file is automatically generated
19
20#include <android_runtime/AndroidRuntime.h>
21#include <utils/misc.h>
22
23#include <assert.h>
24#include <GLES/gl.h>
25#include <GLES/glext.h>
26
27/* special calls implemented in Android's GLES wrapper used to more
28 * efficiently bound-check passed arrays */
29extern "C" {
30GL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type, GLsizei stride,
31        const GLvoid *ptr, GLsizei count);
32GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type, GLsizei stride,
33        const GLvoid *ptr, GLsizei count);
34}
35
36static int initialized = 0;
37
38static jclass nioAccessClass;
39static jclass bufferClass;
40static jclass OOMEClass;
41static jclass UOEClass;
42static jclass IAEClass;
43static jclass AIOOBEClass;
44static jmethodID getBasePointerID;
45static jmethodID getBaseArrayID;
46static jmethodID getBaseArrayOffsetID;
47static jfieldID positionID;
48static jfieldID limitID;
49static jfieldID elementSizeShiftID;
50
51/* Cache method IDs each time the class is loaded. */
52
53static void
54nativeClassInitBuffer(JNIEnv *_env)
55{
56    jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
57    nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
58
59    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
60    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
61
62    getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
63            "getBasePointer", "(Ljava/nio/Buffer;)J");
64    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
65            "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
66    getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
67            "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
68
69    positionID = _env->GetFieldID(bufferClass, "position", "I");
70    limitID = _env->GetFieldID(bufferClass, "limit", "I");
71    elementSizeShiftID =
72        _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
73}
74
75
76static void
77nativeClassInit(JNIEnv *_env, jclass glImplClass)
78{
79    nativeClassInitBuffer(_env);
80
81    jclass IAEClassLocal =
82        _env->FindClass("java/lang/IllegalArgumentException");
83    jclass OOMEClassLocal =
84         _env->FindClass("java/lang/OutOfMemoryError");
85    jclass UOEClassLocal =
86         _env->FindClass("java/lang/UnsupportedOperationException");
87    jclass AIOOBEClassLocal =
88         _env->FindClass("java/lang/ArrayIndexOutOfBoundsException");
89
90    IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
91    OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
92    UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
93    AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal);
94}
95
96static void *
97getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
98{
99    jint position;
100    jint limit;
101    jint elementSizeShift;
102    jlong pointer;
103    jint offset;
104    void *data;
105
106    position = _env->GetIntField(buffer, positionID);
107    limit = _env->GetIntField(buffer, limitID);
108    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
109    *remaining = (limit - position) << elementSizeShift;
110    pointer = _env->CallStaticLongMethod(nioAccessClass,
111            getBasePointerID, buffer);
112    if (pointer != 0L) {
113        *array = NULL;
114        return (void *) (jint) pointer;
115    }
116
117    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
118            getBaseArrayID, buffer);
119    offset = _env->CallStaticIntMethod(nioAccessClass,
120            getBaseArrayOffsetID, buffer);
121    data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
122
123    return (void *) ((char *) data + offset);
124}
125
126
127static void
128releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
129{
130    _env->ReleasePrimitiveArrayCritical(array, data,
131					   commit ? 0 : JNI_ABORT);
132}
133
134static void *
135getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
136    char* buf = (char*) _env->GetDirectBufferAddress(buffer);
137    if (buf) {
138        jint position = _env->GetIntField(buffer, positionID);
139        jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
140        buf += position << elementSizeShift;
141    } else {
142        _env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
143    }
144    return (void*) buf;
145}
146// --------------------------------------------------------------------------
147
148/* void glBlendEquationSeparateOES ( GLenum modeRGB, GLenum modeAlpha ) */
149static void
150android_glBlendEquationSeparateOES__II
151  (JNIEnv *_env, jobject _this, jint modeRGB, jint modeAlpha) {
152    glBlendEquationSeparateOES(
153        (GLenum)modeRGB,
154        (GLenum)modeAlpha
155    );
156}
157
158/* void glBlendFuncSeparateOES ( GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha ) */
159static void
160android_glBlendFuncSeparateOES__IIII
161  (JNIEnv *_env, jobject _this, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) {
162    glBlendFuncSeparateOES(
163        (GLenum)srcRGB,
164        (GLenum)dstRGB,
165        (GLenum)srcAlpha,
166        (GLenum)dstAlpha
167    );
168}
169
170/* void glBlendEquationOES ( GLenum mode ) */
171static void
172android_glBlendEquationOES__I
173  (JNIEnv *_env, jobject _this, jint mode) {
174    glBlendEquationOES(
175        (GLenum)mode
176    );
177}
178
179/* void glDrawTexsOES ( GLshort x, GLshort y, GLshort z, GLshort width, GLshort height ) */
180static void
181android_glDrawTexsOES__SSSSS
182  (JNIEnv *_env, jobject _this, jshort x, jshort y, jshort z, jshort width, jshort height) {
183    glDrawTexsOES(
184        (GLshort)x,
185        (GLshort)y,
186        (GLshort)z,
187        (GLshort)width,
188        (GLshort)height
189    );
190}
191
192/* void glDrawTexiOES ( GLint x, GLint y, GLint z, GLint width, GLint height ) */
193static void
194android_glDrawTexiOES__IIIII
195  (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
196    glDrawTexiOES(
197        (GLint)x,
198        (GLint)y,
199        (GLint)z,
200        (GLint)width,
201        (GLint)height
202    );
203}
204
205/* void glDrawTexxOES ( GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height ) */
206static void
207android_glDrawTexxOES__IIIII
208  (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
209    glDrawTexxOES(
210        (GLfixed)x,
211        (GLfixed)y,
212        (GLfixed)z,
213        (GLfixed)width,
214        (GLfixed)height
215    );
216}
217
218/* void glDrawTexsvOES ( const GLshort *coords ) */
219static void
220android_glDrawTexsvOES___3SI
221  (JNIEnv *_env, jobject _this, jshortArray coords_ref, jint offset) {
222    GLshort *coords_base = (GLshort *) 0;
223    jint _remaining;
224    GLshort *coords = (GLshort *) 0;
225
226    if (!coords_ref) {
227        _env->ThrowNew(IAEClass, "coords == null");
228        goto exit;
229    }
230    if (offset < 0) {
231        _env->ThrowNew(IAEClass, "offset < 0");
232        goto exit;
233    }
234    _remaining = _env->GetArrayLength(coords_ref) - offset;
235    if (_remaining < 5) {
236        _env->ThrowNew(IAEClass, "length - offset < 5");
237        goto exit;
238    }
239    coords_base = (GLshort *)
240        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
241    coords = coords_base + offset;
242
243    glDrawTexsvOES(
244        (GLshort *)coords
245    );
246
247exit:
248    if (coords_base) {
249        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
250            JNI_ABORT);
251    }
252}
253
254/* void glDrawTexsvOES ( const GLshort *coords ) */
255static void
256android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2
257  (JNIEnv *_env, jobject _this, jobject coords_buf) {
258    jarray _array = (jarray) 0;
259    jint _remaining;
260    GLshort *coords = (GLshort *) 0;
261
262    coords = (GLshort *)getPointer(_env, coords_buf, &_array, &_remaining);
263    if (_remaining < 5) {
264        _env->ThrowNew(IAEClass, "remaining() < 5");
265        goto exit;
266    }
267    glDrawTexsvOES(
268        (GLshort *)coords
269    );
270
271exit:
272    if (_array) {
273        releasePointer(_env, _array, coords, JNI_FALSE);
274    }
275}
276
277/* void glDrawTexivOES ( const GLint *coords ) */
278static void
279android_glDrawTexivOES___3II
280  (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
281    GLint *coords_base = (GLint *) 0;
282    jint _remaining;
283    GLint *coords = (GLint *) 0;
284
285    if (!coords_ref) {
286        _env->ThrowNew(IAEClass, "coords == null");
287        goto exit;
288    }
289    if (offset < 0) {
290        _env->ThrowNew(IAEClass, "offset < 0");
291        goto exit;
292    }
293    _remaining = _env->GetArrayLength(coords_ref) - offset;
294    if (_remaining < 5) {
295        _env->ThrowNew(IAEClass, "length - offset < 5");
296        goto exit;
297    }
298    coords_base = (GLint *)
299        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
300    coords = coords_base + offset;
301
302    glDrawTexivOES(
303        (GLint *)coords
304    );
305
306exit:
307    if (coords_base) {
308        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
309            JNI_ABORT);
310    }
311}
312
313/* void glDrawTexivOES ( const GLint *coords ) */
314static void
315android_glDrawTexivOES__Ljava_nio_IntBuffer_2
316  (JNIEnv *_env, jobject _this, jobject coords_buf) {
317    jarray _array = (jarray) 0;
318    jint _remaining;
319    GLint *coords = (GLint *) 0;
320
321    coords = (GLint *)getPointer(_env, coords_buf, &_array, &_remaining);
322    if (_remaining < 5) {
323        _env->ThrowNew(IAEClass, "remaining() < 5");
324        goto exit;
325    }
326    glDrawTexivOES(
327        (GLint *)coords
328    );
329
330exit:
331    if (_array) {
332        releasePointer(_env, _array, coords, JNI_FALSE);
333    }
334}
335
336/* void glDrawTexxvOES ( const GLfixed *coords ) */
337static void
338android_glDrawTexxvOES___3II
339  (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
340    GLfixed *coords_base = (GLfixed *) 0;
341    jint _remaining;
342    GLfixed *coords = (GLfixed *) 0;
343
344    if (!coords_ref) {
345        _env->ThrowNew(IAEClass, "coords == null");
346        goto exit;
347    }
348    if (offset < 0) {
349        _env->ThrowNew(IAEClass, "offset < 0");
350        goto exit;
351    }
352    _remaining = _env->GetArrayLength(coords_ref) - offset;
353    if (_remaining < 5) {
354        _env->ThrowNew(IAEClass, "length - offset < 5");
355        goto exit;
356    }
357    coords_base = (GLfixed *)
358        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
359    coords = coords_base + offset;
360
361    glDrawTexxvOES(
362        (GLfixed *)coords
363    );
364
365exit:
366    if (coords_base) {
367        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
368            JNI_ABORT);
369    }
370}
371
372/* void glDrawTexxvOES ( const GLfixed *coords ) */
373static void
374android_glDrawTexxvOES__Ljava_nio_IntBuffer_2
375  (JNIEnv *_env, jobject _this, jobject coords_buf) {
376    jarray _array = (jarray) 0;
377    jint _remaining;
378    GLfixed *coords = (GLfixed *) 0;
379
380    coords = (GLfixed *)getPointer(_env, coords_buf, &_array, &_remaining);
381    if (_remaining < 5) {
382        _env->ThrowNew(IAEClass, "remaining() < 5");
383        goto exit;
384    }
385    glDrawTexxvOES(
386        (GLfixed *)coords
387    );
388
389exit:
390    if (_array) {
391        releasePointer(_env, _array, coords, JNI_FALSE);
392    }
393}
394
395/* void glDrawTexfOES ( GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height ) */
396static void
397android_glDrawTexfOES__FFFFF
398  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z, jfloat width, jfloat height) {
399    glDrawTexfOES(
400        (GLfloat)x,
401        (GLfloat)y,
402        (GLfloat)z,
403        (GLfloat)width,
404        (GLfloat)height
405    );
406}
407
408/* void glDrawTexfvOES ( const GLfloat *coords ) */
409static void
410android_glDrawTexfvOES___3FI
411  (JNIEnv *_env, jobject _this, jfloatArray coords_ref, jint offset) {
412    GLfloat *coords_base = (GLfloat *) 0;
413    jint _remaining;
414    GLfloat *coords = (GLfloat *) 0;
415
416    if (!coords_ref) {
417        _env->ThrowNew(IAEClass, "coords == null");
418        goto exit;
419    }
420    if (offset < 0) {
421        _env->ThrowNew(IAEClass, "offset < 0");
422        goto exit;
423    }
424    _remaining = _env->GetArrayLength(coords_ref) - offset;
425    if (_remaining < 5) {
426        _env->ThrowNew(IAEClass, "length - offset < 5");
427        goto exit;
428    }
429    coords_base = (GLfloat *)
430        _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
431    coords = coords_base + offset;
432
433    glDrawTexfvOES(
434        (GLfloat *)coords
435    );
436
437exit:
438    if (coords_base) {
439        _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
440            JNI_ABORT);
441    }
442}
443
444/* void glDrawTexfvOES ( const GLfloat *coords ) */
445static void
446android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2
447  (JNIEnv *_env, jobject _this, jobject coords_buf) {
448    jarray _array = (jarray) 0;
449    jint _remaining;
450    GLfloat *coords = (GLfloat *) 0;
451
452    coords = (GLfloat *)getPointer(_env, coords_buf, &_array, &_remaining);
453    if (_remaining < 5) {
454        _env->ThrowNew(IAEClass, "remaining() < 5");
455        goto exit;
456    }
457    glDrawTexfvOES(
458        (GLfloat *)coords
459    );
460
461exit:
462    if (_array) {
463        releasePointer(_env, _array, coords, JNI_FALSE);
464    }
465}
466
467/* void glEGLImageTargetTexture2DOES ( GLenum target, GLeglImageOES image ) */
468static void
469android_glEGLImageTargetTexture2DOES__ILjava_nio_Buffer_2
470  (JNIEnv *_env, jobject _this, jint target, jobject image_buf) {
471    jint _exception = 0;
472    jarray _array = (jarray) 0;
473    jint _remaining;
474    GLeglImageOES image = (GLeglImageOES) 0;
475
476    image = (GLeglImageOES)getPointer(_env, image_buf, &_array, &_remaining);
477    glEGLImageTargetTexture2DOES(
478        (GLenum)target,
479        (GLeglImageOES)image
480    );
481    if (_array) {
482        releasePointer(_env, _array, image, _exception ? JNI_FALSE : JNI_TRUE);
483    }
484}
485
486/* void glEGLImageTargetRenderbufferStorageOES ( GLenum target, GLeglImageOES image ) */
487static void
488android_glEGLImageTargetRenderbufferStorageOES__ILjava_nio_Buffer_2
489  (JNIEnv *_env, jobject _this, jint target, jobject image_buf) {
490    jint _exception = 0;
491    jarray _array = (jarray) 0;
492    jint _remaining;
493    GLeglImageOES image = (GLeglImageOES) 0;
494
495    image = (GLeglImageOES)getPointer(_env, image_buf, &_array, &_remaining);
496    glEGLImageTargetRenderbufferStorageOES(
497        (GLenum)target,
498        (GLeglImageOES)image
499    );
500    if (_array) {
501        releasePointer(_env, _array, image, _exception ? JNI_FALSE : JNI_TRUE);
502    }
503}
504
505/* void glAlphaFuncxOES ( GLenum func, GLclampx ref ) */
506static void
507android_glAlphaFuncxOES__II
508  (JNIEnv *_env, jobject _this, jint func, jint ref) {
509    glAlphaFuncxOES(
510        (GLenum)func,
511        (GLclampx)ref
512    );
513}
514
515/* void glClearColorxOES ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */
516static void
517android_glClearColorxOES__IIII
518  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
519    glClearColorxOES(
520        (GLclampx)red,
521        (GLclampx)green,
522        (GLclampx)blue,
523        (GLclampx)alpha
524    );
525}
526
527/* void glClearDepthxOES ( GLclampx depth ) */
528static void
529android_glClearDepthxOES__I
530  (JNIEnv *_env, jobject _this, jint depth) {
531    glClearDepthxOES(
532        (GLclampx)depth
533    );
534}
535
536/* void glClipPlanexOES ( GLenum plane, const GLfixed *equation ) */
537static void
538android_glClipPlanexOES__I_3II
539  (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) {
540    GLfixed *equation_base = (GLfixed *) 0;
541    jint _remaining;
542    GLfixed *equation = (GLfixed *) 0;
543
544    if (!equation_ref) {
545        _env->ThrowNew(IAEClass, "equation == null");
546        goto exit;
547    }
548    if (offset < 0) {
549        _env->ThrowNew(IAEClass, "offset < 0");
550        goto exit;
551    }
552    _remaining = _env->GetArrayLength(equation_ref) - offset;
553    equation_base = (GLfixed *)
554        _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
555    equation = equation_base + offset;
556
557    glClipPlanexOES(
558        (GLenum)plane,
559        (GLfixed *)equation
560    );
561
562exit:
563    if (equation_base) {
564        _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
565            JNI_ABORT);
566    }
567}
568
569/* void glClipPlanexOES ( GLenum plane, const GLfixed *equation ) */
570static void
571android_glClipPlanexOES__ILjava_nio_IntBuffer_2
572  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
573    jarray _array = (jarray) 0;
574    jint _remaining;
575    GLfixed *equation = (GLfixed *) 0;
576
577    equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining);
578    glClipPlanexOES(
579        (GLenum)plane,
580        (GLfixed *)equation
581    );
582    if (_array) {
583        releasePointer(_env, _array, equation, JNI_FALSE);
584    }
585}
586
587/* void glColor4xOES ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */
588static void
589android_glColor4xOES__IIII
590  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
591    glColor4xOES(
592        (GLfixed)red,
593        (GLfixed)green,
594        (GLfixed)blue,
595        (GLfixed)alpha
596    );
597}
598
599/* void glDepthRangexOES ( GLclampx zNear, GLclampx zFar ) */
600static void
601android_glDepthRangexOES__II
602  (JNIEnv *_env, jobject _this, jint zNear, jint zFar) {
603    glDepthRangexOES(
604        (GLclampx)zNear,
605        (GLclampx)zFar
606    );
607}
608
609/* void glFogxOES ( GLenum pname, GLfixed param ) */
610static void
611android_glFogxOES__II
612  (JNIEnv *_env, jobject _this, jint pname, jint param) {
613    glFogxOES(
614        (GLenum)pname,
615        (GLfixed)param
616    );
617}
618
619/* void glFogxvOES ( GLenum pname, const GLfixed *params ) */
620static void
621android_glFogxvOES__I_3II
622  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
623    GLfixed *params_base = (GLfixed *) 0;
624    jint _remaining;
625    GLfixed *params = (GLfixed *) 0;
626
627    if (!params_ref) {
628        _env->ThrowNew(IAEClass, "params == null");
629        goto exit;
630    }
631    if (offset < 0) {
632        _env->ThrowNew(IAEClass, "offset < 0");
633        goto exit;
634    }
635    _remaining = _env->GetArrayLength(params_ref) - offset;
636    params_base = (GLfixed *)
637        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
638    params = params_base + offset;
639
640    glFogxvOES(
641        (GLenum)pname,
642        (GLfixed *)params
643    );
644
645exit:
646    if (params_base) {
647        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
648            JNI_ABORT);
649    }
650}
651
652/* void glFogxvOES ( GLenum pname, const GLfixed *params ) */
653static void
654android_glFogxvOES__ILjava_nio_IntBuffer_2
655  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
656    jarray _array = (jarray) 0;
657    jint _remaining;
658    GLfixed *params = (GLfixed *) 0;
659
660    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
661    glFogxvOES(
662        (GLenum)pname,
663        (GLfixed *)params
664    );
665    if (_array) {
666        releasePointer(_env, _array, params, JNI_FALSE);
667    }
668}
669
670/* void glFrustumxOES ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
671static void
672android_glFrustumxOES__IIIIII
673  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
674    glFrustumxOES(
675        (GLfixed)left,
676        (GLfixed)right,
677        (GLfixed)bottom,
678        (GLfixed)top,
679        (GLfixed)zNear,
680        (GLfixed)zFar
681    );
682}
683
684/* void glGetClipPlanexOES ( GLenum pname, GLfixed *eqn ) */
685static void
686android_glGetClipPlanexOES__I_3II
687  (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) {
688    jint _exception = 0;
689    GLfixed *eqn_base = (GLfixed *) 0;
690    jint _remaining;
691    GLfixed *eqn = (GLfixed *) 0;
692
693    if (!eqn_ref) {
694        _exception = 1;
695        _env->ThrowNew(IAEClass, "eqn == null");
696        goto exit;
697    }
698    if (offset < 0) {
699        _exception = 1;
700        _env->ThrowNew(IAEClass, "offset < 0");
701        goto exit;
702    }
703    _remaining = _env->GetArrayLength(eqn_ref) - offset;
704    if (_remaining < 4) {
705        _exception = 1;
706        _env->ThrowNew(IAEClass, "length - offset < 4");
707        goto exit;
708    }
709    eqn_base = (GLfixed *)
710        _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
711    eqn = eqn_base + offset;
712
713    glGetClipPlanexOES(
714        (GLenum)pname,
715        (GLfixed *)eqn
716    );
717
718exit:
719    if (eqn_base) {
720        _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
721            _exception ? JNI_ABORT: 0);
722    }
723}
724
725/* void glGetClipPlanexOES ( GLenum pname, GLfixed *eqn ) */
726static void
727android_glGetClipPlanexOES__ILjava_nio_IntBuffer_2
728  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
729    jint _exception = 0;
730    jarray _array = (jarray) 0;
731    jint _remaining;
732    GLfixed *eqn = (GLfixed *) 0;
733
734    eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining);
735    if (_remaining < 4) {
736        _exception = 1;
737        _env->ThrowNew(IAEClass, "remaining() < 4");
738        goto exit;
739    }
740    glGetClipPlanexOES(
741        (GLenum)pname,
742        (GLfixed *)eqn
743    );
744
745exit:
746    if (_array) {
747        releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE);
748    }
749}
750
751/* void glGetFixedvOES ( GLenum pname, GLfixed *params ) */
752static void
753android_glGetFixedvOES__I_3II
754  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
755    jint _exception = 0;
756    GLfixed *params_base = (GLfixed *) 0;
757    jint _remaining;
758    GLfixed *params = (GLfixed *) 0;
759
760    if (!params_ref) {
761        _exception = 1;
762        _env->ThrowNew(IAEClass, "params == null");
763        goto exit;
764    }
765    if (offset < 0) {
766        _exception = 1;
767        _env->ThrowNew(IAEClass, "offset < 0");
768        goto exit;
769    }
770    _remaining = _env->GetArrayLength(params_ref) - offset;
771    params_base = (GLfixed *)
772        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
773    params = params_base + offset;
774
775    glGetFixedvOES(
776        (GLenum)pname,
777        (GLfixed *)params
778    );
779
780exit:
781    if (params_base) {
782        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
783            _exception ? JNI_ABORT: 0);
784    }
785}
786
787/* void glGetFixedvOES ( GLenum pname, GLfixed *params ) */
788static void
789android_glGetFixedvOES__ILjava_nio_IntBuffer_2
790  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
791    jint _exception = 0;
792    jarray _array = (jarray) 0;
793    jint _remaining;
794    GLfixed *params = (GLfixed *) 0;
795
796    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
797    glGetFixedvOES(
798        (GLenum)pname,
799        (GLfixed *)params
800    );
801    if (_array) {
802        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
803    }
804}
805
806/* void glGetLightxvOES ( GLenum light, GLenum pname, GLfixed *params ) */
807static void
808android_glGetLightxvOES__II_3II
809  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
810    jint _exception = 0;
811    GLfixed *params_base = (GLfixed *) 0;
812    jint _remaining;
813    GLfixed *params = (GLfixed *) 0;
814
815    if (!params_ref) {
816        _exception = 1;
817        _env->ThrowNew(IAEClass, "params == null");
818        goto exit;
819    }
820    if (offset < 0) {
821        _exception = 1;
822        _env->ThrowNew(IAEClass, "offset < 0");
823        goto exit;
824    }
825    _remaining = _env->GetArrayLength(params_ref) - offset;
826    params_base = (GLfixed *)
827        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
828    params = params_base + offset;
829
830    glGetLightxvOES(
831        (GLenum)light,
832        (GLenum)pname,
833        (GLfixed *)params
834    );
835
836exit:
837    if (params_base) {
838        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
839            _exception ? JNI_ABORT: 0);
840    }
841}
842
843/* void glGetLightxvOES ( GLenum light, GLenum pname, GLfixed *params ) */
844static void
845android_glGetLightxvOES__IILjava_nio_IntBuffer_2
846  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
847    jint _exception = 0;
848    jarray _array = (jarray) 0;
849    jint _remaining;
850    GLfixed *params = (GLfixed *) 0;
851
852    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
853    glGetLightxvOES(
854        (GLenum)light,
855        (GLenum)pname,
856        (GLfixed *)params
857    );
858    if (_array) {
859        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
860    }
861}
862
863/* void glGetMaterialxvOES ( GLenum face, GLenum pname, GLfixed *params ) */
864static void
865android_glGetMaterialxvOES__II_3II
866  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
867    jint _exception = 0;
868    GLfixed *params_base = (GLfixed *) 0;
869    jint _remaining;
870    GLfixed *params = (GLfixed *) 0;
871
872    if (!params_ref) {
873        _exception = 1;
874        _env->ThrowNew(IAEClass, "params == null");
875        goto exit;
876    }
877    if (offset < 0) {
878        _exception = 1;
879        _env->ThrowNew(IAEClass, "offset < 0");
880        goto exit;
881    }
882    _remaining = _env->GetArrayLength(params_ref) - offset;
883    params_base = (GLfixed *)
884        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
885    params = params_base + offset;
886
887    glGetMaterialxvOES(
888        (GLenum)face,
889        (GLenum)pname,
890        (GLfixed *)params
891    );
892
893exit:
894    if (params_base) {
895        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
896            _exception ? JNI_ABORT: 0);
897    }
898}
899
900/* void glGetMaterialxvOES ( GLenum face, GLenum pname, GLfixed *params ) */
901static void
902android_glGetMaterialxvOES__IILjava_nio_IntBuffer_2
903  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
904    jint _exception = 0;
905    jarray _array = (jarray) 0;
906    jint _remaining;
907    GLfixed *params = (GLfixed *) 0;
908
909    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
910    glGetMaterialxvOES(
911        (GLenum)face,
912        (GLenum)pname,
913        (GLfixed *)params
914    );
915    if (_array) {
916        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
917    }
918}
919
920/* void glGetTexEnvxvOES ( GLenum env, GLenum pname, GLfixed *params ) */
921static void
922android_glGetTexEnvxvOES__II_3II
923  (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
924    jint _exception = 0;
925    GLfixed *params_base = (GLfixed *) 0;
926    jint _remaining;
927    GLfixed *params = (GLfixed *) 0;
928
929    if (!params_ref) {
930        _exception = 1;
931        _env->ThrowNew(IAEClass, "params == null");
932        goto exit;
933    }
934    if (offset < 0) {
935        _exception = 1;
936        _env->ThrowNew(IAEClass, "offset < 0");
937        goto exit;
938    }
939    _remaining = _env->GetArrayLength(params_ref) - offset;
940    params_base = (GLfixed *)
941        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
942    params = params_base + offset;
943
944    glGetTexEnvxvOES(
945        (GLenum)env,
946        (GLenum)pname,
947        (GLfixed *)params
948    );
949
950exit:
951    if (params_base) {
952        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
953            _exception ? JNI_ABORT: 0);
954    }
955}
956
957/* void glGetTexEnvxvOES ( GLenum env, GLenum pname, GLfixed *params ) */
958static void
959android_glGetTexEnvxvOES__IILjava_nio_IntBuffer_2
960  (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
961    jint _exception = 0;
962    jarray _array = (jarray) 0;
963    jint _remaining;
964    GLfixed *params = (GLfixed *) 0;
965
966    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
967    glGetTexEnvxvOES(
968        (GLenum)env,
969        (GLenum)pname,
970        (GLfixed *)params
971    );
972    if (_array) {
973        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
974    }
975}
976
977/* void glGetTexParameterxvOES ( GLenum target, GLenum pname, GLfixed *params ) */
978static void
979android_glGetTexParameterxvOES__II_3II
980  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
981    jint _exception = 0;
982    GLfixed *params_base = (GLfixed *) 0;
983    jint _remaining;
984    GLfixed *params = (GLfixed *) 0;
985
986    if (!params_ref) {
987        _exception = 1;
988        _env->ThrowNew(IAEClass, "params == null");
989        goto exit;
990    }
991    if (offset < 0) {
992        _exception = 1;
993        _env->ThrowNew(IAEClass, "offset < 0");
994        goto exit;
995    }
996    _remaining = _env->GetArrayLength(params_ref) - offset;
997    params_base = (GLfixed *)
998        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
999    params = params_base + offset;
1000
1001    glGetTexParameterxvOES(
1002        (GLenum)target,
1003        (GLenum)pname,
1004        (GLfixed *)params
1005    );
1006
1007exit:
1008    if (params_base) {
1009        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1010            _exception ? JNI_ABORT: 0);
1011    }
1012}
1013
1014/* void glGetTexParameterxvOES ( GLenum target, GLenum pname, GLfixed *params ) */
1015static void
1016android_glGetTexParameterxvOES__IILjava_nio_IntBuffer_2
1017  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1018    jint _exception = 0;
1019    jarray _array = (jarray) 0;
1020    jint _remaining;
1021    GLfixed *params = (GLfixed *) 0;
1022
1023    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1024    glGetTexParameterxvOES(
1025        (GLenum)target,
1026        (GLenum)pname,
1027        (GLfixed *)params
1028    );
1029    if (_array) {
1030        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1031    }
1032}
1033
1034/* void glLightModelxOES ( GLenum pname, GLfixed param ) */
1035static void
1036android_glLightModelxOES__II
1037  (JNIEnv *_env, jobject _this, jint pname, jint param) {
1038    glLightModelxOES(
1039        (GLenum)pname,
1040        (GLfixed)param
1041    );
1042}
1043
1044/* void glLightModelxvOES ( GLenum pname, const GLfixed *params ) */
1045static void
1046android_glLightModelxvOES__I_3II
1047  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
1048    GLfixed *params_base = (GLfixed *) 0;
1049    jint _remaining;
1050    GLfixed *params = (GLfixed *) 0;
1051
1052    if (!params_ref) {
1053        _env->ThrowNew(IAEClass, "params == null");
1054        goto exit;
1055    }
1056    if (offset < 0) {
1057        _env->ThrowNew(IAEClass, "offset < 0");
1058        goto exit;
1059    }
1060    _remaining = _env->GetArrayLength(params_ref) - offset;
1061    params_base = (GLfixed *)
1062        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1063    params = params_base + offset;
1064
1065    glLightModelxvOES(
1066        (GLenum)pname,
1067        (GLfixed *)params
1068    );
1069
1070exit:
1071    if (params_base) {
1072        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1073            JNI_ABORT);
1074    }
1075}
1076
1077/* void glLightModelxvOES ( GLenum pname, const GLfixed *params ) */
1078static void
1079android_glLightModelxvOES__ILjava_nio_IntBuffer_2
1080  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
1081    jarray _array = (jarray) 0;
1082    jint _remaining;
1083    GLfixed *params = (GLfixed *) 0;
1084
1085    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1086    glLightModelxvOES(
1087        (GLenum)pname,
1088        (GLfixed *)params
1089    );
1090    if (_array) {
1091        releasePointer(_env, _array, params, JNI_FALSE);
1092    }
1093}
1094
1095/* void glLightxOES ( GLenum light, GLenum pname, GLfixed param ) */
1096static void
1097android_glLightxOES__III
1098  (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) {
1099    glLightxOES(
1100        (GLenum)light,
1101        (GLenum)pname,
1102        (GLfixed)param
1103    );
1104}
1105
1106/* void glLightxvOES ( GLenum light, GLenum pname, const GLfixed *params ) */
1107static void
1108android_glLightxvOES__II_3II
1109  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
1110    GLfixed *params_base = (GLfixed *) 0;
1111    jint _remaining;
1112    GLfixed *params = (GLfixed *) 0;
1113
1114    if (!params_ref) {
1115        _env->ThrowNew(IAEClass, "params == null");
1116        goto exit;
1117    }
1118    if (offset < 0) {
1119        _env->ThrowNew(IAEClass, "offset < 0");
1120        goto exit;
1121    }
1122    _remaining = _env->GetArrayLength(params_ref) - offset;
1123    params_base = (GLfixed *)
1124        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1125    params = params_base + offset;
1126
1127    glLightxvOES(
1128        (GLenum)light,
1129        (GLenum)pname,
1130        (GLfixed *)params
1131    );
1132
1133exit:
1134    if (params_base) {
1135        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1136            JNI_ABORT);
1137    }
1138}
1139
1140/* void glLightxvOES ( GLenum light, GLenum pname, const GLfixed *params ) */
1141static void
1142android_glLightxvOES__IILjava_nio_IntBuffer_2
1143  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
1144    jarray _array = (jarray) 0;
1145    jint _remaining;
1146    GLfixed *params = (GLfixed *) 0;
1147
1148    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1149    glLightxvOES(
1150        (GLenum)light,
1151        (GLenum)pname,
1152        (GLfixed *)params
1153    );
1154    if (_array) {
1155        releasePointer(_env, _array, params, JNI_FALSE);
1156    }
1157}
1158
1159/* void glLineWidthxOES ( GLfixed width ) */
1160static void
1161android_glLineWidthxOES__I
1162  (JNIEnv *_env, jobject _this, jint width) {
1163    glLineWidthxOES(
1164        (GLfixed)width
1165    );
1166}
1167
1168/* void glLoadMatrixxOES ( const GLfixed *m ) */
1169static void
1170android_glLoadMatrixxOES___3II
1171  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
1172    GLfixed *m_base = (GLfixed *) 0;
1173    jint _remaining;
1174    GLfixed *m = (GLfixed *) 0;
1175
1176    if (!m_ref) {
1177        _env->ThrowNew(IAEClass, "m == null");
1178        goto exit;
1179    }
1180    if (offset < 0) {
1181        _env->ThrowNew(IAEClass, "offset < 0");
1182        goto exit;
1183    }
1184    _remaining = _env->GetArrayLength(m_ref) - offset;
1185    m_base = (GLfixed *)
1186        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
1187    m = m_base + offset;
1188
1189    glLoadMatrixxOES(
1190        (GLfixed *)m
1191    );
1192
1193exit:
1194    if (m_base) {
1195        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
1196            JNI_ABORT);
1197    }
1198}
1199
1200/* void glLoadMatrixxOES ( const GLfixed *m ) */
1201static void
1202android_glLoadMatrixxOES__Ljava_nio_IntBuffer_2
1203  (JNIEnv *_env, jobject _this, jobject m_buf) {
1204    jarray _array = (jarray) 0;
1205    jint _remaining;
1206    GLfixed *m = (GLfixed *) 0;
1207
1208    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining);
1209    glLoadMatrixxOES(
1210        (GLfixed *)m
1211    );
1212    if (_array) {
1213        releasePointer(_env, _array, m, JNI_FALSE);
1214    }
1215}
1216
1217/* void glMaterialxOES ( GLenum face, GLenum pname, GLfixed param ) */
1218static void
1219android_glMaterialxOES__III
1220  (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) {
1221    glMaterialxOES(
1222        (GLenum)face,
1223        (GLenum)pname,
1224        (GLfixed)param
1225    );
1226}
1227
1228/* void glMaterialxvOES ( GLenum face, GLenum pname, const GLfixed *params ) */
1229static void
1230android_glMaterialxvOES__II_3II
1231  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
1232    GLfixed *params_base = (GLfixed *) 0;
1233    jint _remaining;
1234    GLfixed *params = (GLfixed *) 0;
1235
1236    if (!params_ref) {
1237        _env->ThrowNew(IAEClass, "params == null");
1238        goto exit;
1239    }
1240    if (offset < 0) {
1241        _env->ThrowNew(IAEClass, "offset < 0");
1242        goto exit;
1243    }
1244    _remaining = _env->GetArrayLength(params_ref) - offset;
1245    params_base = (GLfixed *)
1246        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1247    params = params_base + offset;
1248
1249    glMaterialxvOES(
1250        (GLenum)face,
1251        (GLenum)pname,
1252        (GLfixed *)params
1253    );
1254
1255exit:
1256    if (params_base) {
1257        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1258            JNI_ABORT);
1259    }
1260}
1261
1262/* void glMaterialxvOES ( GLenum face, GLenum pname, const GLfixed *params ) */
1263static void
1264android_glMaterialxvOES__IILjava_nio_IntBuffer_2
1265  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
1266    jarray _array = (jarray) 0;
1267    jint _remaining;
1268    GLfixed *params = (GLfixed *) 0;
1269
1270    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1271    glMaterialxvOES(
1272        (GLenum)face,
1273        (GLenum)pname,
1274        (GLfixed *)params
1275    );
1276    if (_array) {
1277        releasePointer(_env, _array, params, JNI_FALSE);
1278    }
1279}
1280
1281/* void glMultMatrixxOES ( const GLfixed *m ) */
1282static void
1283android_glMultMatrixxOES___3II
1284  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
1285    GLfixed *m_base = (GLfixed *) 0;
1286    jint _remaining;
1287    GLfixed *m = (GLfixed *) 0;
1288
1289    if (!m_ref) {
1290        _env->ThrowNew(IAEClass, "m == null");
1291        goto exit;
1292    }
1293    if (offset < 0) {
1294        _env->ThrowNew(IAEClass, "offset < 0");
1295        goto exit;
1296    }
1297    _remaining = _env->GetArrayLength(m_ref) - offset;
1298    m_base = (GLfixed *)
1299        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
1300    m = m_base + offset;
1301
1302    glMultMatrixxOES(
1303        (GLfixed *)m
1304    );
1305
1306exit:
1307    if (m_base) {
1308        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
1309            JNI_ABORT);
1310    }
1311}
1312
1313/* void glMultMatrixxOES ( const GLfixed *m ) */
1314static void
1315android_glMultMatrixxOES__Ljava_nio_IntBuffer_2
1316  (JNIEnv *_env, jobject _this, jobject m_buf) {
1317    jarray _array = (jarray) 0;
1318    jint _remaining;
1319    GLfixed *m = (GLfixed *) 0;
1320
1321    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining);
1322    glMultMatrixxOES(
1323        (GLfixed *)m
1324    );
1325    if (_array) {
1326        releasePointer(_env, _array, m, JNI_FALSE);
1327    }
1328}
1329
1330/* void glMultiTexCoord4xOES ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */
1331static void
1332android_glMultiTexCoord4xOES__IIIII
1333  (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) {
1334    glMultiTexCoord4xOES(
1335        (GLenum)target,
1336        (GLfixed)s,
1337        (GLfixed)t,
1338        (GLfixed)r,
1339        (GLfixed)q
1340    );
1341}
1342
1343/* void glNormal3xOES ( GLfixed nx, GLfixed ny, GLfixed nz ) */
1344static void
1345android_glNormal3xOES__III
1346  (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) {
1347    glNormal3xOES(
1348        (GLfixed)nx,
1349        (GLfixed)ny,
1350        (GLfixed)nz
1351    );
1352}
1353
1354/* void glOrthoxOES ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
1355static void
1356android_glOrthoxOES__IIIIII
1357  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
1358    glOrthoxOES(
1359        (GLfixed)left,
1360        (GLfixed)right,
1361        (GLfixed)bottom,
1362        (GLfixed)top,
1363        (GLfixed)zNear,
1364        (GLfixed)zFar
1365    );
1366}
1367
1368/* void glPointParameterxOES ( GLenum pname, GLfixed param ) */
1369static void
1370android_glPointParameterxOES__II
1371  (JNIEnv *_env, jobject _this, jint pname, jint param) {
1372    glPointParameterxOES(
1373        (GLenum)pname,
1374        (GLfixed)param
1375    );
1376}
1377
1378/* void glPointParameterxvOES ( GLenum pname, const GLfixed *params ) */
1379static void
1380android_glPointParameterxvOES__I_3II
1381  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
1382    GLfixed *params_base = (GLfixed *) 0;
1383    jint _remaining;
1384    GLfixed *params = (GLfixed *) 0;
1385
1386    if (!params_ref) {
1387        _env->ThrowNew(IAEClass, "params == null");
1388        goto exit;
1389    }
1390    if (offset < 0) {
1391        _env->ThrowNew(IAEClass, "offset < 0");
1392        goto exit;
1393    }
1394    _remaining = _env->GetArrayLength(params_ref) - offset;
1395    params_base = (GLfixed *)
1396        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1397    params = params_base + offset;
1398
1399    glPointParameterxvOES(
1400        (GLenum)pname,
1401        (GLfixed *)params
1402    );
1403
1404exit:
1405    if (params_base) {
1406        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1407            JNI_ABORT);
1408    }
1409}
1410
1411/* void glPointParameterxvOES ( GLenum pname, const GLfixed *params ) */
1412static void
1413android_glPointParameterxvOES__ILjava_nio_IntBuffer_2
1414  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
1415    jarray _array = (jarray) 0;
1416    jint _remaining;
1417    GLfixed *params = (GLfixed *) 0;
1418
1419    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1420    glPointParameterxvOES(
1421        (GLenum)pname,
1422        (GLfixed *)params
1423    );
1424    if (_array) {
1425        releasePointer(_env, _array, params, JNI_FALSE);
1426    }
1427}
1428
1429/* void glPointSizexOES ( GLfixed size ) */
1430static void
1431android_glPointSizexOES__I
1432  (JNIEnv *_env, jobject _this, jint size) {
1433    glPointSizexOES(
1434        (GLfixed)size
1435    );
1436}
1437
1438/* void glPolygonOffsetxOES ( GLfixed factor, GLfixed units ) */
1439static void
1440android_glPolygonOffsetxOES__II
1441  (JNIEnv *_env, jobject _this, jint factor, jint units) {
1442    glPolygonOffsetxOES(
1443        (GLfixed)factor,
1444        (GLfixed)units
1445    );
1446}
1447
1448/* void glRotatexOES ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */
1449static void
1450android_glRotatexOES__IIII
1451  (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) {
1452    glRotatexOES(
1453        (GLfixed)angle,
1454        (GLfixed)x,
1455        (GLfixed)y,
1456        (GLfixed)z
1457    );
1458}
1459
1460/* void glSampleCoveragexOES ( GLclampx value, GLboolean invert ) */
1461static void
1462android_glSampleCoveragexOES__IZ
1463  (JNIEnv *_env, jobject _this, jint value, jboolean invert) {
1464    glSampleCoveragexOES(
1465        (GLclampx)value,
1466        (GLboolean)invert
1467    );
1468}
1469
1470/* void glScalexOES ( GLfixed x, GLfixed y, GLfixed z ) */
1471static void
1472android_glScalexOES__III
1473  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
1474    glScalexOES(
1475        (GLfixed)x,
1476        (GLfixed)y,
1477        (GLfixed)z
1478    );
1479}
1480
1481/* void glTexEnvxOES ( GLenum target, GLenum pname, GLfixed param ) */
1482static void
1483android_glTexEnvxOES__III
1484  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
1485    glTexEnvxOES(
1486        (GLenum)target,
1487        (GLenum)pname,
1488        (GLfixed)param
1489    );
1490}
1491
1492/* void glTexEnvxvOES ( GLenum target, GLenum pname, const GLfixed *params ) */
1493static void
1494android_glTexEnvxvOES__II_3II
1495  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1496    GLfixed *params_base = (GLfixed *) 0;
1497    jint _remaining;
1498    GLfixed *params = (GLfixed *) 0;
1499
1500    if (!params_ref) {
1501        _env->ThrowNew(IAEClass, "params == null");
1502        goto exit;
1503    }
1504    if (offset < 0) {
1505        _env->ThrowNew(IAEClass, "offset < 0");
1506        goto exit;
1507    }
1508    _remaining = _env->GetArrayLength(params_ref) - offset;
1509    params_base = (GLfixed *)
1510        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1511    params = params_base + offset;
1512
1513    glTexEnvxvOES(
1514        (GLenum)target,
1515        (GLenum)pname,
1516        (GLfixed *)params
1517    );
1518
1519exit:
1520    if (params_base) {
1521        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1522            JNI_ABORT);
1523    }
1524}
1525
1526/* void glTexEnvxvOES ( GLenum target, GLenum pname, const GLfixed *params ) */
1527static void
1528android_glTexEnvxvOES__IILjava_nio_IntBuffer_2
1529  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1530    jarray _array = (jarray) 0;
1531    jint _remaining;
1532    GLfixed *params = (GLfixed *) 0;
1533
1534    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1535    glTexEnvxvOES(
1536        (GLenum)target,
1537        (GLenum)pname,
1538        (GLfixed *)params
1539    );
1540    if (_array) {
1541        releasePointer(_env, _array, params, JNI_FALSE);
1542    }
1543}
1544
1545/* void glTexParameterxOES ( GLenum target, GLenum pname, GLfixed param ) */
1546static void
1547android_glTexParameterxOES__III
1548  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
1549    glTexParameterxOES(
1550        (GLenum)target,
1551        (GLenum)pname,
1552        (GLfixed)param
1553    );
1554}
1555
1556/* void glTexParameterxvOES ( GLenum target, GLenum pname, const GLfixed *params ) */
1557static void
1558android_glTexParameterxvOES__II_3II
1559  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1560    GLfixed *params_base = (GLfixed *) 0;
1561    jint _remaining;
1562    GLfixed *params = (GLfixed *) 0;
1563
1564    if (!params_ref) {
1565        _env->ThrowNew(IAEClass, "params == null");
1566        goto exit;
1567    }
1568    if (offset < 0) {
1569        _env->ThrowNew(IAEClass, "offset < 0");
1570        goto exit;
1571    }
1572    _remaining = _env->GetArrayLength(params_ref) - offset;
1573    params_base = (GLfixed *)
1574        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1575    params = params_base + offset;
1576
1577    glTexParameterxvOES(
1578        (GLenum)target,
1579        (GLenum)pname,
1580        (GLfixed *)params
1581    );
1582
1583exit:
1584    if (params_base) {
1585        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1586            JNI_ABORT);
1587    }
1588}
1589
1590/* void glTexParameterxvOES ( GLenum target, GLenum pname, const GLfixed *params ) */
1591static void
1592android_glTexParameterxvOES__IILjava_nio_IntBuffer_2
1593  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1594    jarray _array = (jarray) 0;
1595    jint _remaining;
1596    GLfixed *params = (GLfixed *) 0;
1597
1598    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1599    glTexParameterxvOES(
1600        (GLenum)target,
1601        (GLenum)pname,
1602        (GLfixed *)params
1603    );
1604    if (_array) {
1605        releasePointer(_env, _array, params, JNI_FALSE);
1606    }
1607}
1608
1609/* void glTranslatexOES ( GLfixed x, GLfixed y, GLfixed z ) */
1610static void
1611android_glTranslatexOES__III
1612  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
1613    glTranslatexOES(
1614        (GLfixed)x,
1615        (GLfixed)y,
1616        (GLfixed)z
1617    );
1618}
1619
1620/* GLboolean glIsRenderbufferOES ( GLuint renderbuffer ) */
1621static jboolean
1622android_glIsRenderbufferOES__I
1623  (JNIEnv *_env, jobject _this, jint renderbuffer) {
1624    GLboolean _returnValue;
1625    _returnValue = glIsRenderbufferOES(
1626        (GLuint)renderbuffer
1627    );
1628    return _returnValue;
1629}
1630
1631/* void glBindRenderbufferOES ( GLenum target, GLuint renderbuffer ) */
1632static void
1633android_glBindRenderbufferOES__II
1634  (JNIEnv *_env, jobject _this, jint target, jint renderbuffer) {
1635    glBindRenderbufferOES(
1636        (GLenum)target,
1637        (GLuint)renderbuffer
1638    );
1639}
1640
1641/* void glDeleteRenderbuffersOES ( GLsizei n, const GLuint *renderbuffers ) */
1642static void
1643android_glDeleteRenderbuffersOES__I_3II
1644  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
1645    GLuint *renderbuffers_base = (GLuint *) 0;
1646    jint _remaining;
1647    GLuint *renderbuffers = (GLuint *) 0;
1648
1649    if (!renderbuffers_ref) {
1650        _env->ThrowNew(IAEClass, "renderbuffers == null");
1651        goto exit;
1652    }
1653    if (offset < 0) {
1654        _env->ThrowNew(IAEClass, "offset < 0");
1655        goto exit;
1656    }
1657    _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
1658    if (_remaining < n) {
1659        _env->ThrowNew(IAEClass, "length - offset < n");
1660        goto exit;
1661    }
1662    renderbuffers_base = (GLuint *)
1663        _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0);
1664    renderbuffers = renderbuffers_base + offset;
1665
1666    glDeleteRenderbuffersOES(
1667        (GLsizei)n,
1668        (GLuint *)renderbuffers
1669    );
1670
1671exit:
1672    if (renderbuffers_base) {
1673        _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base,
1674            JNI_ABORT);
1675    }
1676}
1677
1678/* void glDeleteRenderbuffersOES ( GLsizei n, const GLuint *renderbuffers ) */
1679static void
1680android_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2
1681  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
1682    jarray _array = (jarray) 0;
1683    jint _remaining;
1684    GLuint *renderbuffers = (GLuint *) 0;
1685
1686    renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining);
1687    if (_remaining < n) {
1688        _env->ThrowNew(IAEClass, "remaining() < n");
1689        goto exit;
1690    }
1691    glDeleteRenderbuffersOES(
1692        (GLsizei)n,
1693        (GLuint *)renderbuffers
1694    );
1695
1696exit:
1697    if (_array) {
1698        releasePointer(_env, _array, renderbuffers, JNI_FALSE);
1699    }
1700}
1701
1702/* void glGenRenderbuffersOES ( GLsizei n, GLuint *renderbuffers ) */
1703static void
1704android_glGenRenderbuffersOES__I_3II
1705  (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
1706    jint _exception = 0;
1707    GLuint *renderbuffers_base = (GLuint *) 0;
1708    jint _remaining;
1709    GLuint *renderbuffers = (GLuint *) 0;
1710
1711    if (!renderbuffers_ref) {
1712        _exception = 1;
1713        _env->ThrowNew(IAEClass, "renderbuffers == null");
1714        goto exit;
1715    }
1716    if (offset < 0) {
1717        _exception = 1;
1718        _env->ThrowNew(IAEClass, "offset < 0");
1719        goto exit;
1720    }
1721    _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
1722    if (_remaining < n) {
1723        _exception = 1;
1724        _env->ThrowNew(IAEClass, "length - offset < n");
1725        goto exit;
1726    }
1727    renderbuffers_base = (GLuint *)
1728        _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0);
1729    renderbuffers = renderbuffers_base + offset;
1730
1731    glGenRenderbuffersOES(
1732        (GLsizei)n,
1733        (GLuint *)renderbuffers
1734    );
1735
1736exit:
1737    if (renderbuffers_base) {
1738        _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base,
1739            _exception ? JNI_ABORT: 0);
1740    }
1741}
1742
1743/* void glGenRenderbuffersOES ( GLsizei n, GLuint *renderbuffers ) */
1744static void
1745android_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2
1746  (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
1747    jint _exception = 0;
1748    jarray _array = (jarray) 0;
1749    jint _remaining;
1750    GLuint *renderbuffers = (GLuint *) 0;
1751
1752    renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining);
1753    if (_remaining < n) {
1754        _exception = 1;
1755        _env->ThrowNew(IAEClass, "remaining() < n");
1756        goto exit;
1757    }
1758    glGenRenderbuffersOES(
1759        (GLsizei)n,
1760        (GLuint *)renderbuffers
1761    );
1762
1763exit:
1764    if (_array) {
1765        releasePointer(_env, _array, renderbuffers, _exception ? JNI_FALSE : JNI_TRUE);
1766    }
1767}
1768
1769/* void glRenderbufferStorageOES ( GLenum target, GLenum internalformat, GLsizei width, GLsizei height ) */
1770static void
1771android_glRenderbufferStorageOES__IIII
1772  (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint width, jint height) {
1773    glRenderbufferStorageOES(
1774        (GLenum)target,
1775        (GLenum)internalformat,
1776        (GLsizei)width,
1777        (GLsizei)height
1778    );
1779}
1780
1781/* void glGetRenderbufferParameterivOES ( GLenum target, GLenum pname, GLint *params ) */
1782static void
1783android_glGetRenderbufferParameterivOES__II_3II
1784  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1785    jint _exception = 0;
1786    GLint *params_base = (GLint *) 0;
1787    jint _remaining;
1788    GLint *params = (GLint *) 0;
1789
1790    if (!params_ref) {
1791        _exception = 1;
1792        _env->ThrowNew(IAEClass, "params == null");
1793        goto exit;
1794    }
1795    if (offset < 0) {
1796        _exception = 1;
1797        _env->ThrowNew(IAEClass, "offset < 0");
1798        goto exit;
1799    }
1800    _remaining = _env->GetArrayLength(params_ref) - offset;
1801    if (_remaining < 1) {
1802        _exception = 1;
1803        _env->ThrowNew(IAEClass, "length - offset < 1");
1804        goto exit;
1805    }
1806    params_base = (GLint *)
1807        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1808    params = params_base + offset;
1809
1810    glGetRenderbufferParameterivOES(
1811        (GLenum)target,
1812        (GLenum)pname,
1813        (GLint *)params
1814    );
1815
1816exit:
1817    if (params_base) {
1818        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1819            _exception ? JNI_ABORT: 0);
1820    }
1821}
1822
1823/* void glGetRenderbufferParameterivOES ( GLenum target, GLenum pname, GLint *params ) */
1824static void
1825android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2
1826  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1827    jint _exception = 0;
1828    jarray _array = (jarray) 0;
1829    jint _remaining;
1830    GLint *params = (GLint *) 0;
1831
1832    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
1833    if (_remaining < 1) {
1834        _exception = 1;
1835        _env->ThrowNew(IAEClass, "remaining() < 1");
1836        goto exit;
1837    }
1838    glGetRenderbufferParameterivOES(
1839        (GLenum)target,
1840        (GLenum)pname,
1841        (GLint *)params
1842    );
1843
1844exit:
1845    if (_array) {
1846        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1847    }
1848}
1849
1850/* GLboolean glIsFramebufferOES ( GLuint framebuffer ) */
1851static jboolean
1852android_glIsFramebufferOES__I
1853  (JNIEnv *_env, jobject _this, jint framebuffer) {
1854    GLboolean _returnValue;
1855    _returnValue = glIsFramebufferOES(
1856        (GLuint)framebuffer
1857    );
1858    return _returnValue;
1859}
1860
1861/* void glBindFramebufferOES ( GLenum target, GLuint framebuffer ) */
1862static void
1863android_glBindFramebufferOES__II
1864  (JNIEnv *_env, jobject _this, jint target, jint framebuffer) {
1865    glBindFramebufferOES(
1866        (GLenum)target,
1867        (GLuint)framebuffer
1868    );
1869}
1870
1871/* void glDeleteFramebuffersOES ( GLsizei n, const GLuint *framebuffers ) */
1872static void
1873android_glDeleteFramebuffersOES__I_3II
1874  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
1875    GLuint *framebuffers_base = (GLuint *) 0;
1876    jint _remaining;
1877    GLuint *framebuffers = (GLuint *) 0;
1878
1879    if (!framebuffers_ref) {
1880        _env->ThrowNew(IAEClass, "framebuffers == null");
1881        goto exit;
1882    }
1883    if (offset < 0) {
1884        _env->ThrowNew(IAEClass, "offset < 0");
1885        goto exit;
1886    }
1887    _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
1888    if (_remaining < n) {
1889        _env->ThrowNew(IAEClass, "length - offset < n");
1890        goto exit;
1891    }
1892    framebuffers_base = (GLuint *)
1893        _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0);
1894    framebuffers = framebuffers_base + offset;
1895
1896    glDeleteFramebuffersOES(
1897        (GLsizei)n,
1898        (GLuint *)framebuffers
1899    );
1900
1901exit:
1902    if (framebuffers_base) {
1903        _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base,
1904            JNI_ABORT);
1905    }
1906}
1907
1908/* void glDeleteFramebuffersOES ( GLsizei n, const GLuint *framebuffers ) */
1909static void
1910android_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2
1911  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
1912    jarray _array = (jarray) 0;
1913    jint _remaining;
1914    GLuint *framebuffers = (GLuint *) 0;
1915
1916    framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining);
1917    if (_remaining < n) {
1918        _env->ThrowNew(IAEClass, "remaining() < n");
1919        goto exit;
1920    }
1921    glDeleteFramebuffersOES(
1922        (GLsizei)n,
1923        (GLuint *)framebuffers
1924    );
1925
1926exit:
1927    if (_array) {
1928        releasePointer(_env, _array, framebuffers, JNI_FALSE);
1929    }
1930}
1931
1932/* void glGenFramebuffersOES ( GLsizei n, GLuint *framebuffers ) */
1933static void
1934android_glGenFramebuffersOES__I_3II
1935  (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
1936    jint _exception = 0;
1937    GLuint *framebuffers_base = (GLuint *) 0;
1938    jint _remaining;
1939    GLuint *framebuffers = (GLuint *) 0;
1940
1941    if (!framebuffers_ref) {
1942        _exception = 1;
1943        _env->ThrowNew(IAEClass, "framebuffers == null");
1944        goto exit;
1945    }
1946    if (offset < 0) {
1947        _exception = 1;
1948        _env->ThrowNew(IAEClass, "offset < 0");
1949        goto exit;
1950    }
1951    _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
1952    if (_remaining < n) {
1953        _exception = 1;
1954        _env->ThrowNew(IAEClass, "length - offset < n");
1955        goto exit;
1956    }
1957    framebuffers_base = (GLuint *)
1958        _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0);
1959    framebuffers = framebuffers_base + offset;
1960
1961    glGenFramebuffersOES(
1962        (GLsizei)n,
1963        (GLuint *)framebuffers
1964    );
1965
1966exit:
1967    if (framebuffers_base) {
1968        _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base,
1969            _exception ? JNI_ABORT: 0);
1970    }
1971}
1972
1973/* void glGenFramebuffersOES ( GLsizei n, GLuint *framebuffers ) */
1974static void
1975android_glGenFramebuffersOES__ILjava_nio_IntBuffer_2
1976  (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
1977    jint _exception = 0;
1978    jarray _array = (jarray) 0;
1979    jint _remaining;
1980    GLuint *framebuffers = (GLuint *) 0;
1981
1982    framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining);
1983    if (_remaining < n) {
1984        _exception = 1;
1985        _env->ThrowNew(IAEClass, "remaining() < n");
1986        goto exit;
1987    }
1988    glGenFramebuffersOES(
1989        (GLsizei)n,
1990        (GLuint *)framebuffers
1991    );
1992
1993exit:
1994    if (_array) {
1995        releasePointer(_env, _array, framebuffers, _exception ? JNI_FALSE : JNI_TRUE);
1996    }
1997}
1998
1999/* GLenum glCheckFramebufferStatusOES ( GLenum target ) */
2000static jint
2001android_glCheckFramebufferStatusOES__I
2002  (JNIEnv *_env, jobject _this, jint target) {
2003    GLenum _returnValue;
2004    _returnValue = glCheckFramebufferStatusOES(
2005        (GLenum)target
2006    );
2007    return _returnValue;
2008}
2009
2010/* void glFramebufferRenderbufferOES ( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) */
2011static void
2012android_glFramebufferRenderbufferOES__IIII
2013  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer) {
2014    glFramebufferRenderbufferOES(
2015        (GLenum)target,
2016        (GLenum)attachment,
2017        (GLenum)renderbuffertarget,
2018        (GLuint)renderbuffer
2019    );
2020}
2021
2022/* void glFramebufferTexture2DOES ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) */
2023static void
2024android_glFramebufferTexture2DOES__IIIII
2025  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint textarget, jint texture, jint level) {
2026    glFramebufferTexture2DOES(
2027        (GLenum)target,
2028        (GLenum)attachment,
2029        (GLenum)textarget,
2030        (GLuint)texture,
2031        (GLint)level
2032    );
2033}
2034
2035/* void glGetFramebufferAttachmentParameterivOES ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */
2036static void
2037android_glGetFramebufferAttachmentParameterivOES__III_3II
2038  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jintArray params_ref, jint offset) {
2039    jint _exception = 0;
2040    GLint *params_base = (GLint *) 0;
2041    jint _remaining;
2042    GLint *params = (GLint *) 0;
2043
2044    if (!params_ref) {
2045        _exception = 1;
2046        _env->ThrowNew(IAEClass, "params == null");
2047        goto exit;
2048    }
2049    if (offset < 0) {
2050        _exception = 1;
2051        _env->ThrowNew(IAEClass, "offset < 0");
2052        goto exit;
2053    }
2054    _remaining = _env->GetArrayLength(params_ref) - offset;
2055    if (_remaining < 1) {
2056        _exception = 1;
2057        _env->ThrowNew(IAEClass, "length - offset < 1");
2058        goto exit;
2059    }
2060    params_base = (GLint *)
2061        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2062    params = params_base + offset;
2063
2064    glGetFramebufferAttachmentParameterivOES(
2065        (GLenum)target,
2066        (GLenum)attachment,
2067        (GLenum)pname,
2068        (GLint *)params
2069    );
2070
2071exit:
2072    if (params_base) {
2073        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2074            _exception ? JNI_ABORT: 0);
2075    }
2076}
2077
2078/* void glGetFramebufferAttachmentParameterivOES ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */
2079static void
2080android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2
2081  (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) {
2082    jint _exception = 0;
2083    jarray _array = (jarray) 0;
2084    jint _remaining;
2085    GLint *params = (GLint *) 0;
2086
2087    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
2088    if (_remaining < 1) {
2089        _exception = 1;
2090        _env->ThrowNew(IAEClass, "remaining() < 1");
2091        goto exit;
2092    }
2093    glGetFramebufferAttachmentParameterivOES(
2094        (GLenum)target,
2095        (GLenum)attachment,
2096        (GLenum)pname,
2097        (GLint *)params
2098    );
2099
2100exit:
2101    if (_array) {
2102        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
2103    }
2104}
2105
2106/* void glGenerateMipmapOES ( GLenum target ) */
2107static void
2108android_glGenerateMipmapOES__I
2109  (JNIEnv *_env, jobject _this, jint target) {
2110    glGenerateMipmapOES(
2111        (GLenum)target
2112    );
2113}
2114
2115/* void glCurrentPaletteMatrixOES ( GLuint matrixpaletteindex ) */
2116static void
2117android_glCurrentPaletteMatrixOES__I
2118  (JNIEnv *_env, jobject _this, jint matrixpaletteindex) {
2119    glCurrentPaletteMatrixOES(
2120        (GLuint)matrixpaletteindex
2121    );
2122}
2123
2124/* void glLoadPaletteFromModelViewMatrixOES ( void ) */
2125static void
2126android_glLoadPaletteFromModelViewMatrixOES__
2127  (JNIEnv *_env, jobject _this) {
2128    glLoadPaletteFromModelViewMatrixOES();
2129}
2130
2131/* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
2132static void
2133android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I
2134  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
2135    jarray _array = (jarray) 0;
2136    jint _remaining;
2137    GLvoid *pointer = (GLvoid *) 0;
2138
2139    if (pointer_buf) {
2140        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
2141        if ( ! pointer ) {
2142            return;
2143        }
2144    }
2145    glMatrixIndexPointerOESBounds(
2146        (GLint)size,
2147        (GLenum)type,
2148        (GLsizei)stride,
2149        (GLvoid *)pointer,
2150        (GLsizei)remaining
2151    );
2152}
2153
2154/* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
2155static void
2156android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I
2157  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
2158    jarray _array = (jarray) 0;
2159    jint _remaining;
2160    GLvoid *pointer = (GLvoid *) 0;
2161
2162    if (pointer_buf) {
2163        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
2164        if ( ! pointer ) {
2165            return;
2166        }
2167    }
2168    glWeightPointerOESBounds(
2169        (GLint)size,
2170        (GLenum)type,
2171        (GLsizei)stride,
2172        (GLvoid *)pointer,
2173        (GLsizei)remaining
2174    );
2175}
2176
2177/* void glDepthRangefOES ( GLclampf zNear, GLclampf zFar ) */
2178static void
2179android_glDepthRangefOES__FF
2180  (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
2181    glDepthRangefOES(
2182        (GLclampf)zNear,
2183        (GLclampf)zFar
2184    );
2185}
2186
2187/* void glFrustumfOES ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
2188static void
2189android_glFrustumfOES__FFFFFF
2190  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
2191    glFrustumfOES(
2192        (GLfloat)left,
2193        (GLfloat)right,
2194        (GLfloat)bottom,
2195        (GLfloat)top,
2196        (GLfloat)zNear,
2197        (GLfloat)zFar
2198    );
2199}
2200
2201/* void glOrthofOES ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
2202static void
2203android_glOrthofOES__FFFFFF
2204  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
2205    glOrthofOES(
2206        (GLfloat)left,
2207        (GLfloat)right,
2208        (GLfloat)bottom,
2209        (GLfloat)top,
2210        (GLfloat)zNear,
2211        (GLfloat)zFar
2212    );
2213}
2214
2215/* void glClipPlanefOES ( GLenum plane, const GLfloat *equation ) */
2216static void
2217android_glClipPlanefOES__I_3FI
2218  (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) {
2219    GLfloat *equation_base = (GLfloat *) 0;
2220    jint _remaining;
2221    GLfloat *equation = (GLfloat *) 0;
2222
2223    if (!equation_ref) {
2224        _env->ThrowNew(IAEClass, "equation == null");
2225        goto exit;
2226    }
2227    if (offset < 0) {
2228        _env->ThrowNew(IAEClass, "offset < 0");
2229        goto exit;
2230    }
2231    _remaining = _env->GetArrayLength(equation_ref) - offset;
2232    equation_base = (GLfloat *)
2233        _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
2234    equation = equation_base + offset;
2235
2236    glClipPlanefOES(
2237        (GLenum)plane,
2238        (GLfloat *)equation
2239    );
2240
2241exit:
2242    if (equation_base) {
2243        _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
2244            JNI_ABORT);
2245    }
2246}
2247
2248/* void glClipPlanefOES ( GLenum plane, const GLfloat *equation ) */
2249static void
2250android_glClipPlanefOES__ILjava_nio_FloatBuffer_2
2251  (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
2252    jarray _array = (jarray) 0;
2253    jint _remaining;
2254    GLfloat *equation = (GLfloat *) 0;
2255
2256    equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining);
2257    glClipPlanefOES(
2258        (GLenum)plane,
2259        (GLfloat *)equation
2260    );
2261    if (_array) {
2262        releasePointer(_env, _array, equation, JNI_FALSE);
2263    }
2264}
2265
2266/* void glGetClipPlanefOES ( GLenum pname, GLfloat *eqn ) */
2267static void
2268android_glGetClipPlanefOES__I_3FI
2269  (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) {
2270    jint _exception = 0;
2271    GLfloat *eqn_base = (GLfloat *) 0;
2272    jint _remaining;
2273    GLfloat *eqn = (GLfloat *) 0;
2274
2275    if (!eqn_ref) {
2276        _exception = 1;
2277        _env->ThrowNew(IAEClass, "eqn == null");
2278        goto exit;
2279    }
2280    if (offset < 0) {
2281        _exception = 1;
2282        _env->ThrowNew(IAEClass, "offset < 0");
2283        goto exit;
2284    }
2285    _remaining = _env->GetArrayLength(eqn_ref) - offset;
2286    if (_remaining < 4) {
2287        _exception = 1;
2288        _env->ThrowNew(IAEClass, "length - offset < 4");
2289        goto exit;
2290    }
2291    eqn_base = (GLfloat *)
2292        _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
2293    eqn = eqn_base + offset;
2294
2295    glGetClipPlanefOES(
2296        (GLenum)pname,
2297        (GLfloat *)eqn
2298    );
2299
2300exit:
2301    if (eqn_base) {
2302        _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
2303            _exception ? JNI_ABORT: 0);
2304    }
2305}
2306
2307/* void glGetClipPlanefOES ( GLenum pname, GLfloat *eqn ) */
2308static void
2309android_glGetClipPlanefOES__ILjava_nio_FloatBuffer_2
2310  (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
2311    jint _exception = 0;
2312    jarray _array = (jarray) 0;
2313    jint _remaining;
2314    GLfloat *eqn = (GLfloat *) 0;
2315
2316    eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining);
2317    if (_remaining < 4) {
2318        _exception = 1;
2319        _env->ThrowNew(IAEClass, "remaining() < 4");
2320        goto exit;
2321    }
2322    glGetClipPlanefOES(
2323        (GLenum)pname,
2324        (GLfloat *)eqn
2325    );
2326
2327exit:
2328    if (_array) {
2329        releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE);
2330    }
2331}
2332
2333/* void glClearDepthfOES ( GLclampf depth ) */
2334static void
2335android_glClearDepthfOES__F
2336  (JNIEnv *_env, jobject _this, jfloat depth) {
2337    glClearDepthfOES(
2338        (GLclampf)depth
2339    );
2340}
2341
2342/* void glTexGenfOES ( GLenum coord, GLenum pname, GLfloat param ) */
2343static void
2344android_glTexGenfOES__IIF
2345  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloat param) {
2346    glTexGenfOES(
2347        (GLenum)coord,
2348        (GLenum)pname,
2349        (GLfloat)param
2350    );
2351}
2352
2353/* void glTexGenfvOES ( GLenum coord, GLenum pname, const GLfloat *params ) */
2354static void
2355android_glTexGenfvOES__II_3FI
2356  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
2357    GLfloat *params_base = (GLfloat *) 0;
2358    jint _remaining;
2359    GLfloat *params = (GLfloat *) 0;
2360
2361    if (!params_ref) {
2362        _env->ThrowNew(IAEClass, "params == null");
2363        goto exit;
2364    }
2365    if (offset < 0) {
2366        _env->ThrowNew(IAEClass, "offset < 0");
2367        goto exit;
2368    }
2369    _remaining = _env->GetArrayLength(params_ref) - offset;
2370    params_base = (GLfloat *)
2371        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2372    params = params_base + offset;
2373
2374    glTexGenfvOES(
2375        (GLenum)coord,
2376        (GLenum)pname,
2377        (GLfloat *)params
2378    );
2379
2380exit:
2381    if (params_base) {
2382        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2383            JNI_ABORT);
2384    }
2385}
2386
2387/* void glTexGenfvOES ( GLenum coord, GLenum pname, const GLfloat *params ) */
2388static void
2389android_glTexGenfvOES__IILjava_nio_FloatBuffer_2
2390  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
2391    jarray _array = (jarray) 0;
2392    jint _remaining;
2393    GLfloat *params = (GLfloat *) 0;
2394
2395    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
2396    glTexGenfvOES(
2397        (GLenum)coord,
2398        (GLenum)pname,
2399        (GLfloat *)params
2400    );
2401    if (_array) {
2402        releasePointer(_env, _array, params, JNI_FALSE);
2403    }
2404}
2405
2406/* void glTexGeniOES ( GLenum coord, GLenum pname, GLint param ) */
2407static void
2408android_glTexGeniOES__III
2409  (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
2410    glTexGeniOES(
2411        (GLenum)coord,
2412        (GLenum)pname,
2413        (GLint)param
2414    );
2415}
2416
2417/* void glTexGenivOES ( GLenum coord, GLenum pname, const GLint *params ) */
2418static void
2419android_glTexGenivOES__II_3II
2420  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
2421    GLint *params_base = (GLint *) 0;
2422    jint _remaining;
2423    GLint *params = (GLint *) 0;
2424
2425    if (!params_ref) {
2426        _env->ThrowNew(IAEClass, "params == null");
2427        goto exit;
2428    }
2429    if (offset < 0) {
2430        _env->ThrowNew(IAEClass, "offset < 0");
2431        goto exit;
2432    }
2433    _remaining = _env->GetArrayLength(params_ref) - offset;
2434    params_base = (GLint *)
2435        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2436    params = params_base + offset;
2437
2438    glTexGenivOES(
2439        (GLenum)coord,
2440        (GLenum)pname,
2441        (GLint *)params
2442    );
2443
2444exit:
2445    if (params_base) {
2446        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2447            JNI_ABORT);
2448    }
2449}
2450
2451/* void glTexGenivOES ( GLenum coord, GLenum pname, const GLint *params ) */
2452static void
2453android_glTexGenivOES__IILjava_nio_IntBuffer_2
2454  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
2455    jarray _array = (jarray) 0;
2456    jint _remaining;
2457    GLint *params = (GLint *) 0;
2458
2459    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
2460    glTexGenivOES(
2461        (GLenum)coord,
2462        (GLenum)pname,
2463        (GLint *)params
2464    );
2465    if (_array) {
2466        releasePointer(_env, _array, params, JNI_FALSE);
2467    }
2468}
2469
2470/* void glTexGenxOES ( GLenum coord, GLenum pname, GLfixed param ) */
2471static void
2472android_glTexGenxOES__III
2473  (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
2474    glTexGenxOES(
2475        (GLenum)coord,
2476        (GLenum)pname,
2477        (GLfixed)param
2478    );
2479}
2480
2481/* void glTexGenxvOES ( GLenum coord, GLenum pname, const GLfixed *params ) */
2482static void
2483android_glTexGenxvOES__II_3II
2484  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
2485    GLfixed *params_base = (GLfixed *) 0;
2486    jint _remaining;
2487    GLfixed *params = (GLfixed *) 0;
2488
2489    if (!params_ref) {
2490        _env->ThrowNew(IAEClass, "params == null");
2491        goto exit;
2492    }
2493    if (offset < 0) {
2494        _env->ThrowNew(IAEClass, "offset < 0");
2495        goto exit;
2496    }
2497    _remaining = _env->GetArrayLength(params_ref) - offset;
2498    params_base = (GLfixed *)
2499        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2500    params = params_base + offset;
2501
2502    glTexGenxvOES(
2503        (GLenum)coord,
2504        (GLenum)pname,
2505        (GLfixed *)params
2506    );
2507
2508exit:
2509    if (params_base) {
2510        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2511            JNI_ABORT);
2512    }
2513}
2514
2515/* void glTexGenxvOES ( GLenum coord, GLenum pname, const GLfixed *params ) */
2516static void
2517android_glTexGenxvOES__IILjava_nio_IntBuffer_2
2518  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
2519    jarray _array = (jarray) 0;
2520    jint _remaining;
2521    GLfixed *params = (GLfixed *) 0;
2522
2523    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
2524    glTexGenxvOES(
2525        (GLenum)coord,
2526        (GLenum)pname,
2527        (GLfixed *)params
2528    );
2529    if (_array) {
2530        releasePointer(_env, _array, params, JNI_FALSE);
2531    }
2532}
2533
2534/* void glGetTexGenfvOES ( GLenum coord, GLenum pname, GLfloat *params ) */
2535static void
2536android_glGetTexGenfvOES__II_3FI
2537  (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
2538    jint _exception = 0;
2539    GLfloat *params_base = (GLfloat *) 0;
2540    jint _remaining;
2541    GLfloat *params = (GLfloat *) 0;
2542
2543    if (!params_ref) {
2544        _exception = 1;
2545        _env->ThrowNew(IAEClass, "params == null");
2546        goto exit;
2547    }
2548    if (offset < 0) {
2549        _exception = 1;
2550        _env->ThrowNew(IAEClass, "offset < 0");
2551        goto exit;
2552    }
2553    _remaining = _env->GetArrayLength(params_ref) - offset;
2554    params_base = (GLfloat *)
2555        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2556    params = params_base + offset;
2557
2558    glGetTexGenfvOES(
2559        (GLenum)coord,
2560        (GLenum)pname,
2561        (GLfloat *)params
2562    );
2563
2564exit:
2565    if (params_base) {
2566        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2567            _exception ? JNI_ABORT: 0);
2568    }
2569}
2570
2571/* void glGetTexGenfvOES ( GLenum coord, GLenum pname, GLfloat *params ) */
2572static void
2573android_glGetTexGenfvOES__IILjava_nio_FloatBuffer_2
2574  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
2575    jint _exception = 0;
2576    jarray _array = (jarray) 0;
2577    jint _remaining;
2578    GLfloat *params = (GLfloat *) 0;
2579
2580    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
2581    glGetTexGenfvOES(
2582        (GLenum)coord,
2583        (GLenum)pname,
2584        (GLfloat *)params
2585    );
2586    if (_array) {
2587        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
2588    }
2589}
2590
2591/* void glGetTexGenivOES ( GLenum coord, GLenum pname, GLint *params ) */
2592static void
2593android_glGetTexGenivOES__II_3II
2594  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
2595    jint _exception = 0;
2596    GLint *params_base = (GLint *) 0;
2597    jint _remaining;
2598    GLint *params = (GLint *) 0;
2599
2600    if (!params_ref) {
2601        _exception = 1;
2602        _env->ThrowNew(IAEClass, "params == null");
2603        goto exit;
2604    }
2605    if (offset < 0) {
2606        _exception = 1;
2607        _env->ThrowNew(IAEClass, "offset < 0");
2608        goto exit;
2609    }
2610    _remaining = _env->GetArrayLength(params_ref) - offset;
2611    params_base = (GLint *)
2612        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2613    params = params_base + offset;
2614
2615    glGetTexGenivOES(
2616        (GLenum)coord,
2617        (GLenum)pname,
2618        (GLint *)params
2619    );
2620
2621exit:
2622    if (params_base) {
2623        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2624            _exception ? JNI_ABORT: 0);
2625    }
2626}
2627
2628/* void glGetTexGenivOES ( GLenum coord, GLenum pname, GLint *params ) */
2629static void
2630android_glGetTexGenivOES__IILjava_nio_IntBuffer_2
2631  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
2632    jint _exception = 0;
2633    jarray _array = (jarray) 0;
2634    jint _remaining;
2635    GLint *params = (GLint *) 0;
2636
2637    params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
2638    glGetTexGenivOES(
2639        (GLenum)coord,
2640        (GLenum)pname,
2641        (GLint *)params
2642    );
2643    if (_array) {
2644        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
2645    }
2646}
2647
2648/* void glGetTexGenxvOES ( GLenum coord, GLenum pname, GLfixed *params ) */
2649static void
2650android_glGetTexGenxvOES__II_3II
2651  (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
2652    jint _exception = 0;
2653    GLfixed *params_base = (GLfixed *) 0;
2654    jint _remaining;
2655    GLfixed *params = (GLfixed *) 0;
2656
2657    if (!params_ref) {
2658        _exception = 1;
2659        _env->ThrowNew(IAEClass, "params == null");
2660        goto exit;
2661    }
2662    if (offset < 0) {
2663        _exception = 1;
2664        _env->ThrowNew(IAEClass, "offset < 0");
2665        goto exit;
2666    }
2667    _remaining = _env->GetArrayLength(params_ref) - offset;
2668    params_base = (GLfixed *)
2669        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2670    params = params_base + offset;
2671
2672    glGetTexGenxvOES(
2673        (GLenum)coord,
2674        (GLenum)pname,
2675        (GLfixed *)params
2676    );
2677
2678exit:
2679    if (params_base) {
2680        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2681            _exception ? JNI_ABORT: 0);
2682    }
2683}
2684
2685/* void glGetTexGenxvOES ( GLenum coord, GLenum pname, GLfixed *params ) */
2686static void
2687android_glGetTexGenxvOES__IILjava_nio_IntBuffer_2
2688  (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
2689    jint _exception = 0;
2690    jarray _array = (jarray) 0;
2691    jint _remaining;
2692    GLfixed *params = (GLfixed *) 0;
2693
2694    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
2695    glGetTexGenxvOES(
2696        (GLenum)coord,
2697        (GLenum)pname,
2698        (GLfixed *)params
2699    );
2700    if (_array) {
2701        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
2702    }
2703}
2704
2705static const char *classPathName = "android/opengl/GLES11Ext";
2706
2707static JNINativeMethod methods[] = {
2708{"_nativeClassInit", "()V", (void*)nativeClassInit },
2709{"glBlendEquationSeparateOES", "(II)V", (void *) android_glBlendEquationSeparateOES__II },
2710{"glBlendFuncSeparateOES", "(IIII)V", (void *) android_glBlendFuncSeparateOES__IIII },
2711{"glBlendEquationOES", "(I)V", (void *) android_glBlendEquationOES__I },
2712{"glDrawTexsOES", "(SSSSS)V", (void *) android_glDrawTexsOES__SSSSS },
2713{"glDrawTexiOES", "(IIIII)V", (void *) android_glDrawTexiOES__IIIII },
2714{"glDrawTexxOES", "(IIIII)V", (void *) android_glDrawTexxOES__IIIII },
2715{"glDrawTexsvOES", "([SI)V", (void *) android_glDrawTexsvOES___3SI },
2716{"glDrawTexsvOES", "(Ljava/nio/ShortBuffer;)V", (void *) android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 },
2717{"glDrawTexivOES", "([II)V", (void *) android_glDrawTexivOES___3II },
2718{"glDrawTexivOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexivOES__Ljava_nio_IntBuffer_2 },
2719{"glDrawTexxvOES", "([II)V", (void *) android_glDrawTexxvOES___3II },
2720{"glDrawTexxvOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 },
2721{"glDrawTexfOES", "(FFFFF)V", (void *) android_glDrawTexfOES__FFFFF },
2722{"glDrawTexfvOES", "([FI)V", (void *) android_glDrawTexfvOES___3FI },
2723{"glDrawTexfvOES", "(Ljava/nio/FloatBuffer;)V", (void *) android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 },
2724{"glEGLImageTargetTexture2DOES", "(ILjava/nio/Buffer;)V", (void *) android_glEGLImageTargetTexture2DOES__ILjava_nio_Buffer_2 },
2725{"glEGLImageTargetRenderbufferStorageOES", "(ILjava/nio/Buffer;)V", (void *) android_glEGLImageTargetRenderbufferStorageOES__ILjava_nio_Buffer_2 },
2726{"glAlphaFuncxOES", "(II)V", (void *) android_glAlphaFuncxOES__II },
2727{"glClearColorxOES", "(IIII)V", (void *) android_glClearColorxOES__IIII },
2728{"glClearDepthxOES", "(I)V", (void *) android_glClearDepthxOES__I },
2729{"glClipPlanexOES", "(I[II)V", (void *) android_glClipPlanexOES__I_3II },
2730{"glClipPlanexOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanexOES__ILjava_nio_IntBuffer_2 },
2731{"glColor4xOES", "(IIII)V", (void *) android_glColor4xOES__IIII },
2732{"glDepthRangexOES", "(II)V", (void *) android_glDepthRangexOES__II },
2733{"glFogxOES", "(II)V", (void *) android_glFogxOES__II },
2734{"glFogxvOES", "(I[II)V", (void *) android_glFogxvOES__I_3II },
2735{"glFogxvOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxvOES__ILjava_nio_IntBuffer_2 },
2736{"glFrustumxOES", "(IIIIII)V", (void *) android_glFrustumxOES__IIIIII },
2737{"glGetClipPlanexOES", "(I[II)V", (void *) android_glGetClipPlanexOES__I_3II },
2738{"glGetClipPlanexOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanexOES__ILjava_nio_IntBuffer_2 },
2739{"glGetFixedvOES", "(I[II)V", (void *) android_glGetFixedvOES__I_3II },
2740{"glGetFixedvOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedvOES__ILjava_nio_IntBuffer_2 },
2741{"glGetLightxvOES", "(II[II)V", (void *) android_glGetLightxvOES__II_3II },
2742{"glGetLightxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxvOES__IILjava_nio_IntBuffer_2 },
2743{"glGetMaterialxvOES", "(II[II)V", (void *) android_glGetMaterialxvOES__II_3II },
2744{"glGetMaterialxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxvOES__IILjava_nio_IntBuffer_2 },
2745{"glGetTexEnvxvOES", "(II[II)V", (void *) android_glGetTexEnvxvOES__II_3II },
2746{"glGetTexEnvxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxvOES__IILjava_nio_IntBuffer_2 },
2747{"glGetTexParameterxvOES", "(II[II)V", (void *) android_glGetTexParameterxvOES__II_3II },
2748{"glGetTexParameterxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxvOES__IILjava_nio_IntBuffer_2 },
2749{"glLightModelxOES", "(II)V", (void *) android_glLightModelxOES__II },
2750{"glLightModelxvOES", "(I[II)V", (void *) android_glLightModelxvOES__I_3II },
2751{"glLightModelxvOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxvOES__ILjava_nio_IntBuffer_2 },
2752{"glLightxOES", "(III)V", (void *) android_glLightxOES__III },
2753{"glLightxvOES", "(II[II)V", (void *) android_glLightxvOES__II_3II },
2754{"glLightxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxvOES__IILjava_nio_IntBuffer_2 },
2755{"glLineWidthxOES", "(I)V", (void *) android_glLineWidthxOES__I },
2756{"glLoadMatrixxOES", "([II)V", (void *) android_glLoadMatrixxOES___3II },
2757{"glLoadMatrixxOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixxOES__Ljava_nio_IntBuffer_2 },
2758{"glMaterialxOES", "(III)V", (void *) android_glMaterialxOES__III },
2759{"glMaterialxvOES", "(II[II)V", (void *) android_glMaterialxvOES__II_3II },
2760{"glMaterialxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxvOES__IILjava_nio_IntBuffer_2 },
2761{"glMultMatrixxOES", "([II)V", (void *) android_glMultMatrixxOES___3II },
2762{"glMultMatrixxOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixxOES__Ljava_nio_IntBuffer_2 },
2763{"glMultiTexCoord4xOES", "(IIIII)V", (void *) android_glMultiTexCoord4xOES__IIIII },
2764{"glNormal3xOES", "(III)V", (void *) android_glNormal3xOES__III },
2765{"glOrthoxOES", "(IIIIII)V", (void *) android_glOrthoxOES__IIIIII },
2766{"glPointParameterxOES", "(II)V", (void *) android_glPointParameterxOES__II },
2767{"glPointParameterxvOES", "(I[II)V", (void *) android_glPointParameterxvOES__I_3II },
2768{"glPointParameterxvOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxvOES__ILjava_nio_IntBuffer_2 },
2769{"glPointSizexOES", "(I)V", (void *) android_glPointSizexOES__I },
2770{"glPolygonOffsetxOES", "(II)V", (void *) android_glPolygonOffsetxOES__II },
2771{"glRotatexOES", "(IIII)V", (void *) android_glRotatexOES__IIII },
2772{"glSampleCoveragexOES", "(IZ)V", (void *) android_glSampleCoveragexOES__IZ },
2773{"glScalexOES", "(III)V", (void *) android_glScalexOES__III },
2774{"glTexEnvxOES", "(III)V", (void *) android_glTexEnvxOES__III },
2775{"glTexEnvxvOES", "(II[II)V", (void *) android_glTexEnvxvOES__II_3II },
2776{"glTexEnvxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxvOES__IILjava_nio_IntBuffer_2 },
2777{"glTexParameterxOES", "(III)V", (void *) android_glTexParameterxOES__III },
2778{"glTexParameterxvOES", "(II[II)V", (void *) android_glTexParameterxvOES__II_3II },
2779{"glTexParameterxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxvOES__IILjava_nio_IntBuffer_2 },
2780{"glTranslatexOES", "(III)V", (void *) android_glTranslatexOES__III },
2781{"glIsRenderbufferOES", "(I)Z", (void *) android_glIsRenderbufferOES__I },
2782{"glBindRenderbufferOES", "(II)V", (void *) android_glBindRenderbufferOES__II },
2783{"glDeleteRenderbuffersOES", "(I[II)V", (void *) android_glDeleteRenderbuffersOES__I_3II },
2784{"glDeleteRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2 },
2785{"glGenRenderbuffersOES", "(I[II)V", (void *) android_glGenRenderbuffersOES__I_3II },
2786{"glGenRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2 },
2787{"glRenderbufferStorageOES", "(IIII)V", (void *) android_glRenderbufferStorageOES__IIII },
2788{"glGetRenderbufferParameterivOES", "(II[II)V", (void *) android_glGetRenderbufferParameterivOES__II_3II },
2789{"glGetRenderbufferParameterivOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 },
2790{"glIsFramebufferOES", "(I)Z", (void *) android_glIsFramebufferOES__I },
2791{"glBindFramebufferOES", "(II)V", (void *) android_glBindFramebufferOES__II },
2792{"glDeleteFramebuffersOES", "(I[II)V", (void *) android_glDeleteFramebuffersOES__I_3II },
2793{"glDeleteFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2 },
2794{"glGenFramebuffersOES", "(I[II)V", (void *) android_glGenFramebuffersOES__I_3II },
2795{"glGenFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenFramebuffersOES__ILjava_nio_IntBuffer_2 },
2796{"glCheckFramebufferStatusOES", "(I)I", (void *) android_glCheckFramebufferStatusOES__I },
2797{"glFramebufferRenderbufferOES", "(IIII)V", (void *) android_glFramebufferRenderbufferOES__IIII },
2798{"glFramebufferTexture2DOES", "(IIIII)V", (void *) android_glFramebufferTexture2DOES__IIIII },
2799{"glGetFramebufferAttachmentParameterivOES", "(III[II)V", (void *) android_glGetFramebufferAttachmentParameterivOES__III_3II },
2800{"glGetFramebufferAttachmentParameterivOES", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 },
2801{"glGenerateMipmapOES", "(I)V", (void *) android_glGenerateMipmapOES__I },
2802{"glCurrentPaletteMatrixOES", "(I)V", (void *) android_glCurrentPaletteMatrixOES__I },
2803{"glLoadPaletteFromModelViewMatrixOES", "()V", (void *) android_glLoadPaletteFromModelViewMatrixOES__ },
2804{"glMatrixIndexPointerOESBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I },
2805{"glWeightPointerOESBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I },
2806{"glDepthRangefOES", "(FF)V", (void *) android_glDepthRangefOES__FF },
2807{"glFrustumfOES", "(FFFFFF)V", (void *) android_glFrustumfOES__FFFFFF },
2808{"glOrthofOES", "(FFFFFF)V", (void *) android_glOrthofOES__FFFFFF },
2809{"glClipPlanefOES", "(I[FI)V", (void *) android_glClipPlanefOES__I_3FI },
2810{"glClipPlanefOES", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanefOES__ILjava_nio_FloatBuffer_2 },
2811{"glGetClipPlanefOES", "(I[FI)V", (void *) android_glGetClipPlanefOES__I_3FI },
2812{"glGetClipPlanefOES", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanefOES__ILjava_nio_FloatBuffer_2 },
2813{"glClearDepthfOES", "(F)V", (void *) android_glClearDepthfOES__F },
2814{"glTexGenfOES", "(IIF)V", (void *) android_glTexGenfOES__IIF },
2815{"glTexGenfvOES", "(II[FI)V", (void *) android_glTexGenfvOES__II_3FI },
2816{"glTexGenfvOES", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexGenfvOES__IILjava_nio_FloatBuffer_2 },
2817{"glTexGeniOES", "(III)V", (void *) android_glTexGeniOES__III },
2818{"glTexGenivOES", "(II[II)V", (void *) android_glTexGenivOES__II_3II },
2819{"glTexGenivOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGenivOES__IILjava_nio_IntBuffer_2 },
2820{"glTexGenxOES", "(III)V", (void *) android_glTexGenxOES__III },
2821{"glTexGenxvOES", "(II[II)V", (void *) android_glTexGenxvOES__II_3II },
2822{"glTexGenxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGenxvOES__IILjava_nio_IntBuffer_2 },
2823{"glGetTexGenfvOES", "(II[FI)V", (void *) android_glGetTexGenfvOES__II_3FI },
2824{"glGetTexGenfvOES", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexGenfvOES__IILjava_nio_FloatBuffer_2 },
2825{"glGetTexGenivOES", "(II[II)V", (void *) android_glGetTexGenivOES__II_3II },
2826{"glGetTexGenivOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGenivOES__IILjava_nio_IntBuffer_2 },
2827{"glGetTexGenxvOES", "(II[II)V", (void *) android_glGetTexGenxvOES__II_3II },
2828{"glGetTexGenxvOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGenxvOES__IILjava_nio_IntBuffer_2 },
2829};
2830
2831int register_android_opengl_jni_GLES11Ext(JNIEnv *_env)
2832{
2833    int err;
2834    err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
2835    return err;
2836}
2837