Home | History | Annotate | Download | only in jni
      1 /* //device/libs/android_runtime/com_google_android_gles_jni_GLImpl.cpp
      2 **
      3 ** Copyright 2006, 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 "jni.h"
     21 #include "JNIHelp.h"
     22 #include <android_runtime/AndroidRuntime.h>
     23 #include <utils/misc.h>
     24 
     25 #include <assert.h>
     26 #include <GLES/gl.h>
     27 #include <GLES/glext.h>
     28 
     29 // Work around differences between the generated name and the actual name.
     30 
     31 #define glBlendEquation glBlendEquationOES
     32 #define glBlendEquationSeparate glBlendEquationSeparateOES
     33 #define glBlendFuncSeparate glBlendFuncSeparateOES
     34 #define glGetTexGenfv glGetTexGenfvOES
     35 #define glGetTexGeniv glGetTexGenivOES
     36 #define glGetTexGenxv glGetTexGenxvOES
     37 #define glTexGenf glTexGenfOES
     38 #define glTexGenfv glTexGenfvOES
     39 #define glTexGeni glTexGeniOES
     40 #define glTexGeniv glTexGenivOES
     41 #define glTexGenx glTexGenxOES
     42 #define glTexGenxv glTexGenxvOES
     43 
     44 
     45 
     46 /* special calls implemented in Android's GLES wrapper used to more
     47  * efficiently bound-check passed arrays */
     48 extern "C" {
     49 GL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride,
     50         const GLvoid *ptr, GLsizei count);
     51 GL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride,
     52         const GLvoid *pointer, GLsizei count);
     53 GL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type,
     54         GLsizei stride, const GLvoid *pointer, GLsizei count);
     55 GL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type,
     56         GLsizei stride, const GLvoid *pointer, GLsizei count);
     57 GL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type,
     58         GLsizei stride, const GLvoid *pointer, GLsizei count);
     59 GL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type,
     60         GLsizei stride, const GLvoid *pointer, GLsizei count);
     61 GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type,
     62         GLsizei stride, const GLvoid *pointer, GLsizei count);
     63 }
     64 
     65 static int initialized = 0;
     66 
     67 static jclass nioAccessClass;
     68 static jclass bufferClass;
     69 static jclass G11ImplClass;
     70 static jmethodID getBasePointerID;
     71 static jmethodID getBaseArrayID;
     72 static jmethodID getBaseArrayOffsetID;
     73 static jmethodID allowIndirectBuffersID;
     74 static jfieldID positionID;
     75 static jfieldID limitID;
     76 static jfieldID elementSizeShiftID;
     77 static jfieldID haveCheckedExtensionsID;
     78 static jfieldID have_OES_blend_equation_separateID;
     79 static jfieldID have_OES_blend_subtractID;
     80 static jfieldID have_OES_framebuffer_objectID;
     81 static jfieldID have_OES_texture_cube_mapID;
     82 
     83 /* Cache method IDs each time the class is loaded. */
     84 
     85 static void
     86 nativeClassInit(JNIEnv *_env, jclass glImplClass)
     87 {
     88     jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
     89     nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
     90 
     91     jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
     92     bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
     93 
     94     jclass g11impClassLocal = _env->FindClass("com/google/android/gles_jni/GLImpl");
     95     G11ImplClass = (jclass) _env->NewGlobalRef(g11impClassLocal);
     96     haveCheckedExtensionsID =  _env->GetFieldID(G11ImplClass, "haveCheckedExtensions", "Z");
     97     have_OES_blend_equation_separateID =  _env->GetFieldID(G11ImplClass, "have_OES_blend_equation_separate", "Z");
     98     have_OES_blend_subtractID =  _env->GetFieldID(G11ImplClass, "have_OES_blend_subtract", "Z");
     99     have_OES_framebuffer_objectID =  _env->GetFieldID(G11ImplClass, "have_OES_framebuffer_object", "Z");
    100     have_OES_texture_cube_mapID =  _env->GetFieldID(G11ImplClass, "have_OES_texture_cube_map", "Z");
    101 
    102     getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
    103             "getBasePointer", "(Ljava/nio/Buffer;)J");
    104     getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
    105             "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
    106     getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
    107             "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
    108     allowIndirectBuffersID = _env->GetStaticMethodID(g11impClassLocal,
    109             "allowIndirectBuffers", "(Ljava/lang/String;)Z");
    110     positionID = _env->GetFieldID(bufferClass, "position", "I");
    111     limitID = _env->GetFieldID(bufferClass, "limit", "I");
    112     elementSizeShiftID =
    113         _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
    114 }
    115 
    116 static void *
    117 getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset)
    118 {
    119     jint position;
    120     jint limit;
    121     jint elementSizeShift;
    122     jlong pointer;
    123 
    124     position = _env->GetIntField(buffer, positionID);
    125     limit = _env->GetIntField(buffer, limitID);
    126     elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
    127     *remaining = (limit - position) << elementSizeShift;
    128     pointer = _env->CallStaticLongMethod(nioAccessClass,
    129             getBasePointerID, buffer);
    130     if (pointer != 0L) {
    131         *array = NULL;
    132         return (void *) (jint) pointer;
    133     }
    134 
    135     *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
    136             getBaseArrayID, buffer);
    137     if (*array == NULL) {
    138         return (void*) NULL;
    139     }
    140     *offset = _env->CallStaticIntMethod(nioAccessClass,
    141             getBaseArrayOffsetID, buffer);
    142 
    143     return NULL;
    144 }
    145 
    146 static void
    147 releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
    148 {
    149     _env->ReleasePrimitiveArrayCritical(array, data,
    150 					   commit ? 0 : JNI_ABORT);
    151 }
    152 
    153 extern "C" {
    154 extern char*  __progname;
    155 }
    156 
    157 static bool
    158 allowIndirectBuffers(JNIEnv *_env) {
    159     static jint sIndirectBufferCompatability;
    160     if (sIndirectBufferCompatability == 0) {
    161         jobject appName = _env->NewStringUTF(::__progname);
    162         sIndirectBufferCompatability = _env->CallStaticBooleanMethod(G11ImplClass, allowIndirectBuffersID, appName) ? 2 : 1;
    163     }
    164     return sIndirectBufferCompatability == 2;
    165 }
    166 
    167 static void *
    168 getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
    169     if (!buffer) {
    170         return NULL;
    171     }
    172     void* buf = _env->GetDirectBufferAddress(buffer);
    173     if (buf) {
    174         jint position = _env->GetIntField(buffer, positionID);
    175         jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
    176         buf = ((char*) buf) + (position << elementSizeShift);
    177     } else {
    178         if (allowIndirectBuffers(_env)) {
    179             jarray array = 0;
    180             jint remaining;
    181             jint offset;
    182             buf = getPointer(_env, buffer, &array, &remaining, &offset);
    183             if (array) {
    184                 releasePointer(_env, array, buf, 0);
    185             }
    186             buf = buf + offset;
    187         } else {
    188             jniThrowException(_env, "java/lang/IllegalArgumentException",
    189                               "Must use a native order direct Buffer");
    190         }
    191     }
    192     return buf;
    193 }
    194 
    195 static int
    196 getNumCompressedTextureFormats() {
    197     int numCompressedTextureFormats = 0;
    198     glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats);
    199     return numCompressedTextureFormats;
    200 }
    201 
    202 // Check if the extension at the head of pExtensions is pExtension. Note that pExtensions is
    203 // terminated by either 0 or space, while pExtension is terminated by 0.
    204 
    205 static bool
    206 extensionEqual(const GLubyte* pExtensions, const GLubyte* pExtension) {
    207     while (true) {
    208         char a = *pExtensions++;
    209         char b = *pExtension++;
    210         bool aEnd = a == '\0' || a == ' ';
    211         bool bEnd = b == '\0';
    212         if ( aEnd || bEnd) {
    213             return aEnd == bEnd;
    214         }
    215         if ( a != b ) {
    216             return false;
    217         }
    218     }
    219 }
    220 
    221 static const GLubyte*
    222 nextExtension(const GLubyte* pExtensions) {
    223     while (true) {
    224         char a = *pExtensions++;
    225         if ( a == '\0') {
    226             return pExtensions-1;
    227         } else if ( a == ' ') {
    228             return pExtensions;
    229         }
    230     }
    231 }
    232 
    233 static bool
    234 checkForExtension(const GLubyte* pExtensions, const GLubyte* pExtension) {
    235     for (;*pExtensions != '\0'; pExtensions = nextExtension(pExtensions)) {
    236         if (extensionEqual(pExtensions, pExtension)) {
    237             return true;
    238         }
    239     }
    240     return false;
    241 }
    242 
    243 static bool
    244 supportsExtension(JNIEnv *_env, jobject impl, jfieldID fieldId) {
    245     if (!_env->GetBooleanField(impl, haveCheckedExtensionsID)) {
    246         _env->SetBooleanField(impl, haveCheckedExtensionsID, true);
    247         const GLubyte* sExtensions = glGetString(GL_EXTENSIONS);
    248         _env->SetBooleanField(impl, have_OES_blend_equation_separateID,
    249             checkForExtension(sExtensions, (const GLubyte*) "GL_OES_blend_equation_separate"));
    250         _env->SetBooleanField(impl, have_OES_blend_subtractID,
    251             checkForExtension(sExtensions, (const GLubyte*) "GL_OES_blend_subtract"));
    252         _env->SetBooleanField(impl, have_OES_framebuffer_objectID,
    253             checkForExtension(sExtensions, (const GLubyte*) "GL_OES_framebuffer_object"));
    254         _env->SetBooleanField(impl, have_OES_texture_cube_mapID,
    255             checkForExtension(sExtensions, (const GLubyte*) "GL_OES_texture_cube_map"));
    256     }
    257     return _env->GetBooleanField(impl, fieldId);
    258 }
    259 
    260 // --------------------------------------------------------------------------
    261 /* void glActiveTexture ( GLenum texture ) */
    262 static void
    263 android_glActiveTexture__I
    264   (JNIEnv *_env, jobject _this, jint texture) {
    265     glActiveTexture(
    266         (GLenum)texture
    267     );
    268 }
    269 
    270 /* void glAlphaFunc ( GLenum func, GLclampf ref ) */
    271 static void
    272 android_glAlphaFunc__IF
    273   (JNIEnv *_env, jobject _this, jint func, jfloat ref) {
    274     glAlphaFunc(
    275         (GLenum)func,
    276         (GLclampf)ref
    277     );
    278 }
    279 
    280 /* void glAlphaFuncx ( GLenum func, GLclampx ref ) */
    281 static void
    282 android_glAlphaFuncx__II
    283   (JNIEnv *_env, jobject _this, jint func, jint ref) {
    284     glAlphaFuncx(
    285         (GLenum)func,
    286         (GLclampx)ref
    287     );
    288 }
    289 
    290 /* void glBindTexture ( GLenum target, GLuint texture ) */
    291 static void
    292 android_glBindTexture__II
    293   (JNIEnv *_env, jobject _this, jint target, jint texture) {
    294     glBindTexture(
    295         (GLenum)target,
    296         (GLuint)texture
    297     );
    298 }
    299 
    300 /* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */
    301 static void
    302 android_glBlendFunc__II
    303   (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) {
    304     glBlendFunc(
    305         (GLenum)sfactor,
    306         (GLenum)dfactor
    307     );
    308 }
    309 
    310 /* void glClear ( GLbitfield mask ) */
    311 static void
    312 android_glClear__I
    313   (JNIEnv *_env, jobject _this, jint mask) {
    314     glClear(
    315         (GLbitfield)mask
    316     );
    317 }
    318 
    319 /* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */
    320 static void
    321 android_glClearColor__FFFF
    322   (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
    323     glClearColor(
    324         (GLclampf)red,
    325         (GLclampf)green,
    326         (GLclampf)blue,
    327         (GLclampf)alpha
    328     );
    329 }
    330 
    331 /* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */
    332 static void
    333 android_glClearColorx__IIII
    334   (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
    335     glClearColorx(
    336         (GLclampx)red,
    337         (GLclampx)green,
    338         (GLclampx)blue,
    339         (GLclampx)alpha
    340     );
    341 }
    342 
    343 /* void glClearDepthf ( GLclampf depth ) */
    344 static void
    345 android_glClearDepthf__F
    346   (JNIEnv *_env, jobject _this, jfloat depth) {
    347     glClearDepthf(
    348         (GLclampf)depth
    349     );
    350 }
    351 
    352 /* void glClearDepthx ( GLclampx depth ) */
    353 static void
    354 android_glClearDepthx__I
    355   (JNIEnv *_env, jobject _this, jint depth) {
    356     glClearDepthx(
    357         (GLclampx)depth
    358     );
    359 }
    360 
    361 /* void glClearStencil ( GLint s ) */
    362 static void
    363 android_glClearStencil__I
    364   (JNIEnv *_env, jobject _this, jint s) {
    365     glClearStencil(
    366         (GLint)s
    367     );
    368 }
    369 
    370 /* void glClientActiveTexture ( GLenum texture ) */
    371 static void
    372 android_glClientActiveTexture__I
    373   (JNIEnv *_env, jobject _this, jint texture) {
    374     glClientActiveTexture(
    375         (GLenum)texture
    376     );
    377 }
    378 
    379 /* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */
    380 static void
    381 android_glColor4f__FFFF
    382   (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
    383     glColor4f(
    384         (GLfloat)red,
    385         (GLfloat)green,
    386         (GLfloat)blue,
    387         (GLfloat)alpha
    388     );
    389 }
    390 
    391 /* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */
    392 static void
    393 android_glColor4x__IIII
    394   (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
    395     glColor4x(
    396         (GLfixed)red,
    397         (GLfixed)green,
    398         (GLfixed)blue,
    399         (GLfixed)alpha
    400     );
    401 }
    402 
    403 /* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */
    404 static void
    405 android_glColorMask__ZZZZ
    406   (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) {
    407     glColorMask(
    408         (GLboolean)red,
    409         (GLboolean)green,
    410         (GLboolean)blue,
    411         (GLboolean)alpha
    412     );
    413 }
    414 
    415 /* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
    416 static void
    417 android_glColorPointerBounds__IIILjava_nio_Buffer_2I
    418   (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
    419     jarray _array = (jarray) 0;
    420     jint _bufferOffset = (jint) 0;
    421     jint _remaining;
    422     GLvoid *pointer = (GLvoid *) 0;
    423 
    424     if (pointer_buf) {
    425         pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
    426         if ( ! pointer ) {
    427             return;
    428         }
    429     }
    430     glColorPointerBounds(
    431         (GLint)size,
    432         (GLenum)type,
    433         (GLsizei)stride,
    434         (GLvoid *)pointer,
    435         (GLsizei)remaining
    436     );
    437 }
    438 
    439 /* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */
    440 static void
    441 android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2
    442   (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) {
    443     jarray _array = (jarray) 0;
    444     jint _bufferOffset = (jint) 0;
    445     jint _remaining;
    446     GLvoid *data = (GLvoid *) 0;
    447 
    448     data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
    449     if (data == NULL) {
    450         char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
    451         data = (GLvoid *) (_dataBase + _bufferOffset);
    452     }
    453     glCompressedTexImage2D(
    454         (GLenum)target,
    455         (GLint)level,
    456         (GLenum)internalformat,
    457         (GLsizei)width,
    458         (GLsizei)height,
    459         (GLint)border,
    460         (GLsizei)imageSize,
    461         (GLvoid *)data
    462     );
    463     if (_array) {
    464         releasePointer(_env, _array, data, JNI_FALSE);
    465     }
    466 }
    467 
    468 /* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */
    469 static void
    470 android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
    471   (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) {
    472     jarray _array = (jarray) 0;
    473     jint _bufferOffset = (jint) 0;
    474     jint _remaining;
    475     GLvoid *data = (GLvoid *) 0;
    476 
    477     data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
    478     if (data == NULL) {
    479         char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
    480         data = (GLvoid *) (_dataBase + _bufferOffset);
    481     }
    482     glCompressedTexSubImage2D(
    483         (GLenum)target,
    484         (GLint)level,
    485         (GLint)xoffset,
    486         (GLint)yoffset,
    487         (GLsizei)width,
    488         (GLsizei)height,
    489         (GLenum)format,
    490         (GLsizei)imageSize,
    491         (GLvoid *)data
    492     );
    493     if (_array) {
    494         releasePointer(_env, _array, data, JNI_FALSE);
    495     }
    496 }
    497 
    498 /* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */
    499 static void
    500 android_glCopyTexImage2D__IIIIIIII
    501   (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) {
    502     glCopyTexImage2D(
    503         (GLenum)target,
    504         (GLint)level,
    505         (GLenum)internalformat,
    506         (GLint)x,
    507         (GLint)y,
    508         (GLsizei)width,
    509         (GLsizei)height,
    510         (GLint)border
    511     );
    512 }
    513 
    514 /* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */
    515 static void
    516 android_glCopyTexSubImage2D__IIIIIIII
    517   (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) {
    518     glCopyTexSubImage2D(
    519         (GLenum)target,
    520         (GLint)level,
    521         (GLint)xoffset,
    522         (GLint)yoffset,
    523         (GLint)x,
    524         (GLint)y,
    525         (GLsizei)width,
    526         (GLsizei)height
    527     );
    528 }
    529 
    530 /* void glCullFace ( GLenum mode ) */
    531 static void
    532 android_glCullFace__I
    533   (JNIEnv *_env, jobject _this, jint mode) {
    534     glCullFace(
    535         (GLenum)mode
    536     );
    537 }
    538 
    539 /* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
    540 static void
    541 android_glDeleteTextures__I_3II
    542   (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
    543     jint _exception = 0;
    544     const char * _exceptionType = NULL;
    545     const char * _exceptionMessage = NULL;
    546     GLuint *textures_base = (GLuint *) 0;
    547     jint _remaining;
    548     GLuint *textures = (GLuint *) 0;
    549 
    550     if (!textures_ref) {
    551         _exception = 1;
    552         _exceptionType = "java/lang/IllegalArgumentException";
    553         _exceptionMessage = "textures == null";
    554         goto exit;
    555     }
    556     if (offset < 0) {
    557         _exception = 1;
    558         _exceptionType = "java/lang/IllegalArgumentException";
    559         _exceptionMessage = "offset < 0";
    560         goto exit;
    561     }
    562     _remaining = _env->GetArrayLength(textures_ref) - offset;
    563     if (_remaining < n) {
    564         _exception = 1;
    565         _exceptionType = "java/lang/IllegalArgumentException";
    566         _exceptionMessage = "length - offset < n < needed";
    567         goto exit;
    568     }
    569     textures_base = (GLuint *)
    570         _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
    571     textures = textures_base + offset;
    572 
    573     glDeleteTextures(
    574         (GLsizei)n,
    575         (GLuint *)textures
    576     );
    577 
    578 exit:
    579     if (textures_base) {
    580         _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
    581             JNI_ABORT);
    582     }
    583     if (_exception) {
    584         jniThrowException(_env, _exceptionType, _exceptionMessage);
    585     }
    586 }
    587 
    588 /* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
    589 static void
    590 android_glDeleteTextures__ILjava_nio_IntBuffer_2
    591   (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
    592     jint _exception = 0;
    593     const char * _exceptionType = NULL;
    594     const char * _exceptionMessage = NULL;
    595     jarray _array = (jarray) 0;
    596     jint _bufferOffset = (jint) 0;
    597     jint _remaining;
    598     GLuint *textures = (GLuint *) 0;
    599 
    600     textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset);
    601     if (_remaining < n) {
    602         _exception = 1;
    603         _exceptionType = "java/lang/IllegalArgumentException";
    604         _exceptionMessage = "remaining() < n < needed";
    605         goto exit;
    606     }
    607     if (textures == NULL) {
    608         char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
    609         textures = (GLuint *) (_texturesBase + _bufferOffset);
    610     }
    611     glDeleteTextures(
    612         (GLsizei)n,
    613         (GLuint *)textures
    614     );
    615 
    616 exit:
    617     if (_array) {
    618         releasePointer(_env, _array, textures, JNI_FALSE);
    619     }
    620     if (_exception) {
    621         jniThrowException(_env, _exceptionType, _exceptionMessage);
    622     }
    623 }
    624 
    625 /* void glDepthFunc ( GLenum func ) */
    626 static void
    627 android_glDepthFunc__I
    628   (JNIEnv *_env, jobject _this, jint func) {
    629     glDepthFunc(
    630         (GLenum)func
    631     );
    632 }
    633 
    634 /* void glDepthMask ( GLboolean flag ) */
    635 static void
    636 android_glDepthMask__Z
    637   (JNIEnv *_env, jobject _this, jboolean flag) {
    638     glDepthMask(
    639         (GLboolean)flag
    640     );
    641 }
    642 
    643 /* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */
    644 static void
    645 android_glDepthRangef__FF
    646   (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
    647     glDepthRangef(
    648         (GLclampf)zNear,
    649         (GLclampf)zFar
    650     );
    651 }
    652 
    653 /* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */
    654 static void
    655 android_glDepthRangex__II
    656   (JNIEnv *_env, jobject _this, jint zNear, jint zFar) {
    657     glDepthRangex(
    658         (GLclampx)zNear,
    659         (GLclampx)zFar
    660     );
    661 }
    662 
    663 /* void glDisable ( GLenum cap ) */
    664 static void
    665 android_glDisable__I
    666   (JNIEnv *_env, jobject _this, jint cap) {
    667     glDisable(
    668         (GLenum)cap
    669     );
    670 }
    671 
    672 /* void glDisableClientState ( GLenum array ) */
    673 static void
    674 android_glDisableClientState__I
    675   (JNIEnv *_env, jobject _this, jint array) {
    676     glDisableClientState(
    677         (GLenum)array
    678     );
    679 }
    680 
    681 /* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */
    682 static void
    683 android_glDrawArrays__III
    684   (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) {
    685     glDrawArrays(
    686         (GLenum)mode,
    687         (GLint)first,
    688         (GLsizei)count
    689     );
    690 }
    691 
    692 /* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */
    693 static void
    694 android_glDrawElements__IIILjava_nio_Buffer_2
    695   (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) {
    696     jint _exception = 0;
    697     const char * _exceptionType = NULL;
    698     const char * _exceptionMessage = NULL;
    699     jarray _array = (jarray) 0;
    700     jint _bufferOffset = (jint) 0;
    701     jint _remaining;
    702     GLvoid *indices = (GLvoid *) 0;
    703 
    704     indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset);
    705     if (_remaining < count) {
    706         _exception = 1;
    707         _exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
    708         _exceptionMessage = "remaining() < count < needed";
    709         goto exit;
    710     }
    711     if (indices == NULL) {
    712         char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
    713         indices = (GLvoid *) (_indicesBase + _bufferOffset);
    714     }
    715     glDrawElements(
    716         (GLenum)mode,
    717         (GLsizei)count,
    718         (GLenum)type,
    719         (GLvoid *)indices
    720     );
    721 
    722 exit:
    723     if (_array) {
    724         releasePointer(_env, _array, indices, JNI_FALSE);
    725     }
    726     if (_exception) {
    727         jniThrowException(_env, _exceptionType, _exceptionMessage);
    728     }
    729 }
    730 
    731 /* void glEnable ( GLenum cap ) */
    732 static void
    733 android_glEnable__I
    734   (JNIEnv *_env, jobject _this, jint cap) {
    735     glEnable(
    736         (GLenum)cap
    737     );
    738 }
    739 
    740 /* void glEnableClientState ( GLenum array ) */
    741 static void
    742 android_glEnableClientState__I
    743   (JNIEnv *_env, jobject _this, jint array) {
    744     glEnableClientState(
    745         (GLenum)array
    746     );
    747 }
    748 
    749 /* void glFinish ( void ) */
    750 static void
    751 android_glFinish__
    752   (JNIEnv *_env, jobject _this) {
    753     glFinish();
    754 }
    755 
    756 /* void glFlush ( void ) */
    757 static void
    758 android_glFlush__
    759   (JNIEnv *_env, jobject _this) {
    760     glFlush();
    761 }
    762 
    763 /* void glFogf ( GLenum pname, GLfloat param ) */
    764 static void
    765 android_glFogf__IF
    766   (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
    767     glFogf(
    768         (GLenum)pname,
    769         (GLfloat)param
    770     );
    771 }
    772 
    773 /* void glFogfv ( GLenum pname, const GLfloat *params ) */
    774 static void
    775 android_glFogfv__I_3FI
    776   (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
    777     jint _exception = 0;
    778     const char * _exceptionType = NULL;
    779     const char * _exceptionMessage = NULL;
    780     GLfloat *params_base = (GLfloat *) 0;
    781     jint _remaining;
    782     GLfloat *params = (GLfloat *) 0;
    783 
    784     if (!params_ref) {
    785         _exception = 1;
    786         _exceptionType = "java/lang/IllegalArgumentException";
    787         _exceptionMessage = "params == null";
    788         goto exit;
    789     }
    790     if (offset < 0) {
    791         _exception = 1;
    792         _exceptionType = "java/lang/IllegalArgumentException";
    793         _exceptionMessage = "offset < 0";
    794         goto exit;
    795     }
    796     _remaining = _env->GetArrayLength(params_ref) - offset;
    797     int _needed;
    798     switch (pname) {
    799 #if defined(GL_FOG_MODE)
    800         case GL_FOG_MODE:
    801 #endif // defined(GL_FOG_MODE)
    802 #if defined(GL_FOG_DENSITY)
    803         case GL_FOG_DENSITY:
    804 #endif // defined(GL_FOG_DENSITY)
    805 #if defined(GL_FOG_START)
    806         case GL_FOG_START:
    807 #endif // defined(GL_FOG_START)
    808 #if defined(GL_FOG_END)
    809         case GL_FOG_END:
    810 #endif // defined(GL_FOG_END)
    811             _needed = 1;
    812             break;
    813 #if defined(GL_FOG_COLOR)
    814         case GL_FOG_COLOR:
    815 #endif // defined(GL_FOG_COLOR)
    816             _needed = 4;
    817             break;
    818         default:
    819             _needed = 1;
    820             break;
    821     }
    822     if (_remaining < _needed) {
    823         _exception = 1;
    824         _exceptionType = "java/lang/IllegalArgumentException";
    825         _exceptionMessage = "length - offset < needed";
    826         goto exit;
    827     }
    828     params_base = (GLfloat *)
    829         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
    830     params = params_base + offset;
    831 
    832     glFogfv(
    833         (GLenum)pname,
    834         (GLfloat *)params
    835     );
    836 
    837 exit:
    838     if (params_base) {
    839         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
    840             JNI_ABORT);
    841     }
    842     if (_exception) {
    843         jniThrowException(_env, _exceptionType, _exceptionMessage);
    844     }
    845 }
    846 
    847 /* void glFogfv ( GLenum pname, const GLfloat *params ) */
    848 static void
    849 android_glFogfv__ILjava_nio_FloatBuffer_2
    850   (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
    851     jint _exception = 0;
    852     const char * _exceptionType = NULL;
    853     const char * _exceptionMessage = NULL;
    854     jarray _array = (jarray) 0;
    855     jint _bufferOffset = (jint) 0;
    856     jint _remaining;
    857     GLfloat *params = (GLfloat *) 0;
    858 
    859     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
    860     int _needed;
    861     switch (pname) {
    862 #if defined(GL_FOG_MODE)
    863         case GL_FOG_MODE:
    864 #endif // defined(GL_FOG_MODE)
    865 #if defined(GL_FOG_DENSITY)
    866         case GL_FOG_DENSITY:
    867 #endif // defined(GL_FOG_DENSITY)
    868 #if defined(GL_FOG_START)
    869         case GL_FOG_START:
    870 #endif // defined(GL_FOG_START)
    871 #if defined(GL_FOG_END)
    872         case GL_FOG_END:
    873 #endif // defined(GL_FOG_END)
    874             _needed = 1;
    875             break;
    876 #if defined(GL_FOG_COLOR)
    877         case GL_FOG_COLOR:
    878 #endif // defined(GL_FOG_COLOR)
    879             _needed = 4;
    880             break;
    881         default:
    882             _needed = 1;
    883             break;
    884     }
    885     if (_remaining < _needed) {
    886         _exception = 1;
    887         _exceptionType = "java/lang/IllegalArgumentException";
    888         _exceptionMessage = "remaining() < needed";
    889         goto exit;
    890     }
    891     if (params == NULL) {
    892         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
    893         params = (GLfloat *) (_paramsBase + _bufferOffset);
    894     }
    895     glFogfv(
    896         (GLenum)pname,
    897         (GLfloat *)params
    898     );
    899 
    900 exit:
    901     if (_array) {
    902         releasePointer(_env, _array, params, JNI_FALSE);
    903     }
    904     if (_exception) {
    905         jniThrowException(_env, _exceptionType, _exceptionMessage);
    906     }
    907 }
    908 
    909 /* void glFogx ( GLenum pname, GLfixed param ) */
    910 static void
    911 android_glFogx__II
    912   (JNIEnv *_env, jobject _this, jint pname, jint param) {
    913     glFogx(
    914         (GLenum)pname,
    915         (GLfixed)param
    916     );
    917 }
    918 
    919 /* void glFogxv ( GLenum pname, const GLfixed *params ) */
    920 static void
    921 android_glFogxv__I_3II
    922   (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
    923     jint _exception = 0;
    924     const char * _exceptionType = NULL;
    925     const char * _exceptionMessage = NULL;
    926     GLfixed *params_base = (GLfixed *) 0;
    927     jint _remaining;
    928     GLfixed *params = (GLfixed *) 0;
    929 
    930     if (!params_ref) {
    931         _exception = 1;
    932         _exceptionType = "java/lang/IllegalArgumentException";
    933         _exceptionMessage = "params == null";
    934         goto exit;
    935     }
    936     if (offset < 0) {
    937         _exception = 1;
    938         _exceptionType = "java/lang/IllegalArgumentException";
    939         _exceptionMessage = "offset < 0";
    940         goto exit;
    941     }
    942     _remaining = _env->GetArrayLength(params_ref) - offset;
    943     int _needed;
    944     switch (pname) {
    945 #if defined(GL_FOG_MODE)
    946         case GL_FOG_MODE:
    947 #endif // defined(GL_FOG_MODE)
    948 #if defined(GL_FOG_DENSITY)
    949         case GL_FOG_DENSITY:
    950 #endif // defined(GL_FOG_DENSITY)
    951 #if defined(GL_FOG_START)
    952         case GL_FOG_START:
    953 #endif // defined(GL_FOG_START)
    954 #if defined(GL_FOG_END)
    955         case GL_FOG_END:
    956 #endif // defined(GL_FOG_END)
    957             _needed = 1;
    958             break;
    959 #if defined(GL_FOG_COLOR)
    960         case GL_FOG_COLOR:
    961 #endif // defined(GL_FOG_COLOR)
    962             _needed = 4;
    963             break;
    964         default:
    965             _needed = 1;
    966             break;
    967     }
    968     if (_remaining < _needed) {
    969         _exception = 1;
    970         _exceptionType = "java/lang/IllegalArgumentException";
    971         _exceptionMessage = "length - offset < needed";
    972         goto exit;
    973     }
    974     params_base = (GLfixed *)
    975         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
    976     params = params_base + offset;
    977 
    978     glFogxv(
    979         (GLenum)pname,
    980         (GLfixed *)params
    981     );
    982 
    983 exit:
    984     if (params_base) {
    985         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
    986             JNI_ABORT);
    987     }
    988     if (_exception) {
    989         jniThrowException(_env, _exceptionType, _exceptionMessage);
    990     }
    991 }
    992 
    993 /* void glFogxv ( GLenum pname, const GLfixed *params ) */
    994 static void
    995 android_glFogxv__ILjava_nio_IntBuffer_2
    996   (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
    997     jint _exception = 0;
    998     const char * _exceptionType = NULL;
    999     const char * _exceptionMessage = NULL;
   1000     jarray _array = (jarray) 0;
   1001     jint _bufferOffset = (jint) 0;
   1002     jint _remaining;
   1003     GLfixed *params = (GLfixed *) 0;
   1004 
   1005     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   1006     int _needed;
   1007     switch (pname) {
   1008 #if defined(GL_FOG_MODE)
   1009         case GL_FOG_MODE:
   1010 #endif // defined(GL_FOG_MODE)
   1011 #if defined(GL_FOG_DENSITY)
   1012         case GL_FOG_DENSITY:
   1013 #endif // defined(GL_FOG_DENSITY)
   1014 #if defined(GL_FOG_START)
   1015         case GL_FOG_START:
   1016 #endif // defined(GL_FOG_START)
   1017 #if defined(GL_FOG_END)
   1018         case GL_FOG_END:
   1019 #endif // defined(GL_FOG_END)
   1020             _needed = 1;
   1021             break;
   1022 #if defined(GL_FOG_COLOR)
   1023         case GL_FOG_COLOR:
   1024 #endif // defined(GL_FOG_COLOR)
   1025             _needed = 4;
   1026             break;
   1027         default:
   1028             _needed = 1;
   1029             break;
   1030     }
   1031     if (_remaining < _needed) {
   1032         _exception = 1;
   1033         _exceptionType = "java/lang/IllegalArgumentException";
   1034         _exceptionMessage = "remaining() < needed";
   1035         goto exit;
   1036     }
   1037     if (params == NULL) {
   1038         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   1039         params = (GLfixed *) (_paramsBase + _bufferOffset);
   1040     }
   1041     glFogxv(
   1042         (GLenum)pname,
   1043         (GLfixed *)params
   1044     );
   1045 
   1046 exit:
   1047     if (_array) {
   1048         releasePointer(_env, _array, params, JNI_FALSE);
   1049     }
   1050     if (_exception) {
   1051         jniThrowException(_env, _exceptionType, _exceptionMessage);
   1052     }
   1053 }
   1054 
   1055 /* void glFrontFace ( GLenum mode ) */
   1056 static void
   1057 android_glFrontFace__I
   1058   (JNIEnv *_env, jobject _this, jint mode) {
   1059     glFrontFace(
   1060         (GLenum)mode
   1061     );
   1062 }
   1063 
   1064 /* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
   1065 static void
   1066 android_glFrustumf__FFFFFF
   1067   (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
   1068     glFrustumf(
   1069         (GLfloat)left,
   1070         (GLfloat)right,
   1071         (GLfloat)bottom,
   1072         (GLfloat)top,
   1073         (GLfloat)zNear,
   1074         (GLfloat)zFar
   1075     );
   1076 }
   1077 
   1078 /* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
   1079 static void
   1080 android_glFrustumx__IIIIII
   1081   (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
   1082     glFrustumx(
   1083         (GLfixed)left,
   1084         (GLfixed)right,
   1085         (GLfixed)bottom,
   1086         (GLfixed)top,
   1087         (GLfixed)zNear,
   1088         (GLfixed)zFar
   1089     );
   1090 }
   1091 
   1092 /* void glGenTextures ( GLsizei n, GLuint *textures ) */
   1093 static void
   1094 android_glGenTextures__I_3II
   1095   (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
   1096     jint _exception = 0;
   1097     const char * _exceptionType = NULL;
   1098     const char * _exceptionMessage = NULL;
   1099     GLuint *textures_base = (GLuint *) 0;
   1100     jint _remaining;
   1101     GLuint *textures = (GLuint *) 0;
   1102 
   1103     if (!textures_ref) {
   1104         _exception = 1;
   1105         _exceptionType = "java/lang/IllegalArgumentException";
   1106         _exceptionMessage = "textures == null";
   1107         goto exit;
   1108     }
   1109     if (offset < 0) {
   1110         _exception = 1;
   1111         _exceptionType = "java/lang/IllegalArgumentException";
   1112         _exceptionMessage = "offset < 0";
   1113         goto exit;
   1114     }
   1115     _remaining = _env->GetArrayLength(textures_ref) - offset;
   1116     if (_remaining < n) {
   1117         _exception = 1;
   1118         _exceptionType = "java/lang/IllegalArgumentException";
   1119         _exceptionMessage = "length - offset < n < needed";
   1120         goto exit;
   1121     }
   1122     textures_base = (GLuint *)
   1123         _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
   1124     textures = textures_base + offset;
   1125 
   1126     glGenTextures(
   1127         (GLsizei)n,
   1128         (GLuint *)textures
   1129     );
   1130 
   1131 exit:
   1132     if (textures_base) {
   1133         _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
   1134             _exception ? JNI_ABORT: 0);
   1135     }
   1136     if (_exception) {
   1137         jniThrowException(_env, _exceptionType, _exceptionMessage);
   1138     }
   1139 }
   1140 
   1141 /* void glGenTextures ( GLsizei n, GLuint *textures ) */
   1142 static void
   1143 android_glGenTextures__ILjava_nio_IntBuffer_2
   1144   (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
   1145     jint _exception = 0;
   1146     const char * _exceptionType = NULL;
   1147     const char * _exceptionMessage = NULL;
   1148     jarray _array = (jarray) 0;
   1149     jint _bufferOffset = (jint) 0;
   1150     jint _remaining;
   1151     GLuint *textures = (GLuint *) 0;
   1152 
   1153     textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset);
   1154     if (_remaining < n) {
   1155         _exception = 1;
   1156         _exceptionType = "java/lang/IllegalArgumentException";
   1157         _exceptionMessage = "remaining() < n < needed";
   1158         goto exit;
   1159     }
   1160     if (textures == NULL) {
   1161         char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   1162         textures = (GLuint *) (_texturesBase + _bufferOffset);
   1163     }
   1164     glGenTextures(
   1165         (GLsizei)n,
   1166         (GLuint *)textures
   1167     );
   1168 
   1169 exit:
   1170     if (_array) {
   1171         releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE);
   1172     }
   1173     if (_exception) {
   1174         jniThrowException(_env, _exceptionType, _exceptionMessage);
   1175     }
   1176 }
   1177 
   1178 /* GLenum glGetError ( void ) */
   1179 static jint
   1180 android_glGetError__
   1181   (JNIEnv *_env, jobject _this) {
   1182     GLenum _returnValue;
   1183     _returnValue = glGetError();
   1184     return _returnValue;
   1185 }
   1186 
   1187 /* void glGetIntegerv ( GLenum pname, GLint *params ) */
   1188 static void
   1189 android_glGetIntegerv__I_3II
   1190   (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
   1191     jint _exception = 0;
   1192     const char * _exceptionType = NULL;
   1193     const char * _exceptionMessage = NULL;
   1194     GLint *params_base = (GLint *) 0;
   1195     jint _remaining;
   1196     GLint *params = (GLint *) 0;
   1197 
   1198     if (!params_ref) {
   1199         _exception = 1;
   1200         _exceptionType = "java/lang/IllegalArgumentException";
   1201         _exceptionMessage = "params == null";
   1202         goto exit;
   1203     }
   1204     if (offset < 0) {
   1205         _exception = 1;
   1206         _exceptionType = "java/lang/IllegalArgumentException";
   1207         _exceptionMessage = "offset < 0";
   1208         goto exit;
   1209     }
   1210     _remaining = _env->GetArrayLength(params_ref) - offset;
   1211     int _needed;
   1212     switch (pname) {
   1213 #if defined(GL_ALPHA_BITS)
   1214         case GL_ALPHA_BITS:
   1215 #endif // defined(GL_ALPHA_BITS)
   1216 #if defined(GL_ALPHA_TEST_FUNC)
   1217         case GL_ALPHA_TEST_FUNC:
   1218 #endif // defined(GL_ALPHA_TEST_FUNC)
   1219 #if defined(GL_ALPHA_TEST_REF)
   1220         case GL_ALPHA_TEST_REF:
   1221 #endif // defined(GL_ALPHA_TEST_REF)
   1222 #if defined(GL_BLEND_DST)
   1223         case GL_BLEND_DST:
   1224 #endif // defined(GL_BLEND_DST)
   1225 #if defined(GL_BLUE_BITS)
   1226         case GL_BLUE_BITS:
   1227 #endif // defined(GL_BLUE_BITS)
   1228 #if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
   1229         case GL_COLOR_ARRAY_BUFFER_BINDING:
   1230 #endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
   1231 #if defined(GL_COLOR_ARRAY_SIZE)
   1232         case GL_COLOR_ARRAY_SIZE:
   1233 #endif // defined(GL_COLOR_ARRAY_SIZE)
   1234 #if defined(GL_COLOR_ARRAY_STRIDE)
   1235         case GL_COLOR_ARRAY_STRIDE:
   1236 #endif // defined(GL_COLOR_ARRAY_STRIDE)
   1237 #if defined(GL_COLOR_ARRAY_TYPE)
   1238         case GL_COLOR_ARRAY_TYPE:
   1239 #endif // defined(GL_COLOR_ARRAY_TYPE)
   1240 #if defined(GL_CULL_FACE)
   1241         case GL_CULL_FACE:
   1242 #endif // defined(GL_CULL_FACE)
   1243 #if defined(GL_DEPTH_BITS)
   1244         case GL_DEPTH_BITS:
   1245 #endif // defined(GL_DEPTH_BITS)
   1246 #if defined(GL_DEPTH_CLEAR_VALUE)
   1247         case GL_DEPTH_CLEAR_VALUE:
   1248 #endif // defined(GL_DEPTH_CLEAR_VALUE)
   1249 #if defined(GL_DEPTH_FUNC)
   1250         case GL_DEPTH_FUNC:
   1251 #endif // defined(GL_DEPTH_FUNC)
   1252 #if defined(GL_DEPTH_WRITEMASK)
   1253         case GL_DEPTH_WRITEMASK:
   1254 #endif // defined(GL_DEPTH_WRITEMASK)
   1255 #if defined(GL_FOG_DENSITY)
   1256         case GL_FOG_DENSITY:
   1257 #endif // defined(GL_FOG_DENSITY)
   1258 #if defined(GL_FOG_END)
   1259         case GL_FOG_END:
   1260 #endif // defined(GL_FOG_END)
   1261 #if defined(GL_FOG_MODE)
   1262         case GL_FOG_MODE:
   1263 #endif // defined(GL_FOG_MODE)
   1264 #if defined(GL_FOG_START)
   1265         case GL_FOG_START:
   1266 #endif // defined(GL_FOG_START)
   1267 #if defined(GL_FRONT_FACE)
   1268         case GL_FRONT_FACE:
   1269 #endif // defined(GL_FRONT_FACE)
   1270 #if defined(GL_GREEN_BITS)
   1271         case GL_GREEN_BITS:
   1272 #endif // defined(GL_GREEN_BITS)
   1273 #if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
   1274         case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
   1275 #endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
   1276 #if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
   1277         case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
   1278 #endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
   1279 #if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
   1280         case GL_LIGHT_MODEL_COLOR_CONTROL:
   1281 #endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
   1282 #if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
   1283         case GL_LIGHT_MODEL_LOCAL_VIEWER:
   1284 #endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
   1285 #if defined(GL_LIGHT_MODEL_TWO_SIDE)
   1286         case GL_LIGHT_MODEL_TWO_SIDE:
   1287 #endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
   1288 #if defined(GL_LINE_SMOOTH_HINT)
   1289         case GL_LINE_SMOOTH_HINT:
   1290 #endif // defined(GL_LINE_SMOOTH_HINT)
   1291 #if defined(GL_LINE_WIDTH)
   1292         case GL_LINE_WIDTH:
   1293 #endif // defined(GL_LINE_WIDTH)
   1294 #if defined(GL_LOGIC_OP_MODE)
   1295         case GL_LOGIC_OP_MODE:
   1296 #endif // defined(GL_LOGIC_OP_MODE)
   1297 #if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
   1298         case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
   1299 #endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
   1300 #if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
   1301         case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
   1302 #endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
   1303 #if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
   1304         case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
   1305 #endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
   1306 #if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
   1307         case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
   1308 #endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
   1309 #if defined(GL_MATRIX_MODE)
   1310         case GL_MATRIX_MODE:
   1311 #endif // defined(GL_MATRIX_MODE)
   1312 #if defined(GL_MAX_CLIP_PLANES)
   1313         case GL_MAX_CLIP_PLANES:
   1314 #endif // defined(GL_MAX_CLIP_PLANES)
   1315 #if defined(GL_MAX_ELEMENTS_INDICES)
   1316         case GL_MAX_ELEMENTS_INDICES:
   1317 #endif // defined(GL_MAX_ELEMENTS_INDICES)
   1318 #if defined(GL_MAX_ELEMENTS_VERTICES)
   1319         case GL_MAX_ELEMENTS_VERTICES:
   1320 #endif // defined(GL_MAX_ELEMENTS_VERTICES)
   1321 #if defined(GL_MAX_LIGHTS)
   1322         case GL_MAX_LIGHTS:
   1323 #endif // defined(GL_MAX_LIGHTS)
   1324 #if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
   1325         case GL_MAX_MODELVIEW_STACK_DEPTH:
   1326 #endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
   1327 #if defined(GL_MAX_PALETTE_MATRICES_OES)
   1328         case GL_MAX_PALETTE_MATRICES_OES:
   1329 #endif // defined(GL_MAX_PALETTE_MATRICES_OES)
   1330 #if defined(GL_MAX_PROJECTION_STACK_DEPTH)
   1331         case GL_MAX_PROJECTION_STACK_DEPTH:
   1332 #endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
   1333 #if defined(GL_MAX_TEXTURE_SIZE)
   1334         case GL_MAX_TEXTURE_SIZE:
   1335 #endif // defined(GL_MAX_TEXTURE_SIZE)
   1336 #if defined(GL_MAX_TEXTURE_STACK_DEPTH)
   1337         case GL_MAX_TEXTURE_STACK_DEPTH:
   1338 #endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
   1339 #if defined(GL_MAX_TEXTURE_UNITS)
   1340         case GL_MAX_TEXTURE_UNITS:
   1341 #endif // defined(GL_MAX_TEXTURE_UNITS)
   1342 #if defined(GL_MAX_VERTEX_UNITS_OES)
   1343         case GL_MAX_VERTEX_UNITS_OES:
   1344 #endif // defined(GL_MAX_VERTEX_UNITS_OES)
   1345 #if defined(GL_MODELVIEW_STACK_DEPTH)
   1346         case GL_MODELVIEW_STACK_DEPTH:
   1347 #endif // defined(GL_MODELVIEW_STACK_DEPTH)
   1348 #if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
   1349         case GL_NORMAL_ARRAY_BUFFER_BINDING:
   1350 #endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
   1351 #if defined(GL_NORMAL_ARRAY_STRIDE)
   1352         case GL_NORMAL_ARRAY_STRIDE:
   1353 #endif // defined(GL_NORMAL_ARRAY_STRIDE)
   1354 #if defined(GL_NORMAL_ARRAY_TYPE)
   1355         case GL_NORMAL_ARRAY_TYPE:
   1356 #endif // defined(GL_NORMAL_ARRAY_TYPE)
   1357 #if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
   1358         case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
   1359 #endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
   1360 #if defined(GL_PACK_ALIGNMENT)
   1361         case GL_PACK_ALIGNMENT:
   1362 #endif // defined(GL_PACK_ALIGNMENT)
   1363 #if defined(GL_PERSPECTIVE_CORRECTION_HINT)
   1364         case GL_PERSPECTIVE_CORRECTION_HINT:
   1365 #endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
   1366 #if defined(GL_POINT_SIZE)
   1367         case GL_POINT_SIZE:
   1368 #endif // defined(GL_POINT_SIZE)
   1369 #if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
   1370         case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
   1371 #endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
   1372 #if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
   1373         case GL_POINT_SIZE_ARRAY_STRIDE_OES:
   1374 #endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
   1375 #if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
   1376         case GL_POINT_SIZE_ARRAY_TYPE_OES:
   1377 #endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
   1378 #if defined(GL_POINT_SMOOTH_HINT)
   1379         case GL_POINT_SMOOTH_HINT:
   1380 #endif // defined(GL_POINT_SMOOTH_HINT)
   1381 #if defined(GL_POLYGON_OFFSET_FACTOR)
   1382         case GL_POLYGON_OFFSET_FACTOR:
   1383 #endif // defined(GL_POLYGON_OFFSET_FACTOR)
   1384 #if defined(GL_POLYGON_OFFSET_UNITS)
   1385         case GL_POLYGON_OFFSET_UNITS:
   1386 #endif // defined(GL_POLYGON_OFFSET_UNITS)
   1387 #if defined(GL_PROJECTION_STACK_DEPTH)
   1388         case GL_PROJECTION_STACK_DEPTH:
   1389 #endif // defined(GL_PROJECTION_STACK_DEPTH)
   1390 #if defined(GL_RED_BITS)
   1391         case GL_RED_BITS:
   1392 #endif // defined(GL_RED_BITS)
   1393 #if defined(GL_SHADE_MODEL)
   1394         case GL_SHADE_MODEL:
   1395 #endif // defined(GL_SHADE_MODEL)
   1396 #if defined(GL_STENCIL_BITS)
   1397         case GL_STENCIL_BITS:
   1398 #endif // defined(GL_STENCIL_BITS)
   1399 #if defined(GL_STENCIL_CLEAR_VALUE)
   1400         case GL_STENCIL_CLEAR_VALUE:
   1401 #endif // defined(GL_STENCIL_CLEAR_VALUE)
   1402 #if defined(GL_STENCIL_FAIL)
   1403         case GL_STENCIL_FAIL:
   1404 #endif // defined(GL_STENCIL_FAIL)
   1405 #if defined(GL_STENCIL_FUNC)
   1406         case GL_STENCIL_FUNC:
   1407 #endif // defined(GL_STENCIL_FUNC)
   1408 #if defined(GL_STENCIL_PASS_DEPTH_FAIL)
   1409         case GL_STENCIL_PASS_DEPTH_FAIL:
   1410 #endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
   1411 #if defined(GL_STENCIL_PASS_DEPTH_PASS)
   1412         case GL_STENCIL_PASS_DEPTH_PASS:
   1413 #endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
   1414 #if defined(GL_STENCIL_REF)
   1415         case GL_STENCIL_REF:
   1416 #endif // defined(GL_STENCIL_REF)
   1417 #if defined(GL_STENCIL_VALUE_MASK)
   1418         case GL_STENCIL_VALUE_MASK:
   1419 #endif // defined(GL_STENCIL_VALUE_MASK)
   1420 #if defined(GL_STENCIL_WRITEMASK)
   1421         case GL_STENCIL_WRITEMASK:
   1422 #endif // defined(GL_STENCIL_WRITEMASK)
   1423 #if defined(GL_SUBPIXEL_BITS)
   1424         case GL_SUBPIXEL_BITS:
   1425 #endif // defined(GL_SUBPIXEL_BITS)
   1426 #if defined(GL_TEXTURE_BINDING_2D)
   1427         case GL_TEXTURE_BINDING_2D:
   1428 #endif // defined(GL_TEXTURE_BINDING_2D)
   1429 #if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
   1430         case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
   1431 #endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
   1432 #if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
   1433         case GL_TEXTURE_COORD_ARRAY_SIZE:
   1434 #endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
   1435 #if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
   1436         case GL_TEXTURE_COORD_ARRAY_STRIDE:
   1437 #endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
   1438 #if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
   1439         case GL_TEXTURE_COORD_ARRAY_TYPE:
   1440 #endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
   1441 #if defined(GL_TEXTURE_STACK_DEPTH)
   1442         case GL_TEXTURE_STACK_DEPTH:
   1443 #endif // defined(GL_TEXTURE_STACK_DEPTH)
   1444 #if defined(GL_UNPACK_ALIGNMENT)
   1445         case GL_UNPACK_ALIGNMENT:
   1446 #endif // defined(GL_UNPACK_ALIGNMENT)
   1447 #if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
   1448         case GL_VERTEX_ARRAY_BUFFER_BINDING:
   1449 #endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
   1450 #if defined(GL_VERTEX_ARRAY_SIZE)
   1451         case GL_VERTEX_ARRAY_SIZE:
   1452 #endif // defined(GL_VERTEX_ARRAY_SIZE)
   1453 #if defined(GL_VERTEX_ARRAY_STRIDE)
   1454         case GL_VERTEX_ARRAY_STRIDE:
   1455 #endif // defined(GL_VERTEX_ARRAY_STRIDE)
   1456 #if defined(GL_VERTEX_ARRAY_TYPE)
   1457         case GL_VERTEX_ARRAY_TYPE:
   1458 #endif // defined(GL_VERTEX_ARRAY_TYPE)
   1459 #if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
   1460         case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
   1461 #endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
   1462 #if defined(GL_WEIGHT_ARRAY_SIZE_OES)
   1463         case GL_WEIGHT_ARRAY_SIZE_OES:
   1464 #endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
   1465 #if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
   1466         case GL_WEIGHT_ARRAY_STRIDE_OES:
   1467 #endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
   1468 #if defined(GL_WEIGHT_ARRAY_TYPE_OES)
   1469         case GL_WEIGHT_ARRAY_TYPE_OES:
   1470 #endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
   1471             _needed = 1;
   1472             break;
   1473 #if defined(GL_ALIASED_POINT_SIZE_RANGE)
   1474         case GL_ALIASED_POINT_SIZE_RANGE:
   1475 #endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
   1476 #if defined(GL_ALIASED_LINE_WIDTH_RANGE)
   1477         case GL_ALIASED_LINE_WIDTH_RANGE:
   1478 #endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
   1479 #if defined(GL_DEPTH_RANGE)
   1480         case GL_DEPTH_RANGE:
   1481 #endif // defined(GL_DEPTH_RANGE)
   1482 #if defined(GL_MAX_VIEWPORT_DIMS)
   1483         case GL_MAX_VIEWPORT_DIMS:
   1484 #endif // defined(GL_MAX_VIEWPORT_DIMS)
   1485 #if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
   1486         case GL_SMOOTH_LINE_WIDTH_RANGE:
   1487 #endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
   1488 #if defined(GL_SMOOTH_POINT_SIZE_RANGE)
   1489         case GL_SMOOTH_POINT_SIZE_RANGE:
   1490 #endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
   1491             _needed = 2;
   1492             break;
   1493 #if defined(GL_COLOR_CLEAR_VALUE)
   1494         case GL_COLOR_CLEAR_VALUE:
   1495 #endif // defined(GL_COLOR_CLEAR_VALUE)
   1496 #if defined(GL_COLOR_WRITEMASK)
   1497         case GL_COLOR_WRITEMASK:
   1498 #endif // defined(GL_COLOR_WRITEMASK)
   1499 #if defined(GL_FOG_COLOR)
   1500         case GL_FOG_COLOR:
   1501 #endif // defined(GL_FOG_COLOR)
   1502 #if defined(GL_LIGHT_MODEL_AMBIENT)
   1503         case GL_LIGHT_MODEL_AMBIENT:
   1504 #endif // defined(GL_LIGHT_MODEL_AMBIENT)
   1505 #if defined(GL_SCISSOR_BOX)
   1506         case GL_SCISSOR_BOX:
   1507 #endif // defined(GL_SCISSOR_BOX)
   1508 #if defined(GL_VIEWPORT)
   1509         case GL_VIEWPORT:
   1510 #endif // defined(GL_VIEWPORT)
   1511             _needed = 4;
   1512             break;
   1513 #if defined(GL_MODELVIEW_MATRIX)
   1514         case GL_MODELVIEW_MATRIX:
   1515 #endif // defined(GL_MODELVIEW_MATRIX)
   1516 #if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
   1517         case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
   1518 #endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
   1519 #if defined(GL_PROJECTION_MATRIX)
   1520         case GL_PROJECTION_MATRIX:
   1521 #endif // defined(GL_PROJECTION_MATRIX)
   1522 #if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
   1523         case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
   1524 #endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
   1525 #if defined(GL_TEXTURE_MATRIX)
   1526         case GL_TEXTURE_MATRIX:
   1527 #endif // defined(GL_TEXTURE_MATRIX)
   1528 #if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
   1529         case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
   1530 #endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
   1531             _needed = 16;
   1532             break;
   1533 #if defined(GL_COMPRESSED_TEXTURE_FORMATS)
   1534         case GL_COMPRESSED_TEXTURE_FORMATS:
   1535 #endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
   1536             _needed = getNumCompressedTextureFormats();
   1537             break;
   1538         default:
   1539             _needed = 1;
   1540             break;
   1541     }
   1542     if (_remaining < _needed) {
   1543         _exception = 1;
   1544         _exceptionType = "java/lang/IllegalArgumentException";
   1545         _exceptionMessage = "length - offset < needed";
   1546         goto exit;
   1547     }
   1548     params_base = (GLint *)
   1549         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   1550     params = params_base + offset;
   1551 
   1552     glGetIntegerv(
   1553         (GLenum)pname,
   1554         (GLint *)params
   1555     );
   1556 
   1557 exit:
   1558     if (params_base) {
   1559         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   1560             _exception ? JNI_ABORT: 0);
   1561     }
   1562     if (_exception) {
   1563         jniThrowException(_env, _exceptionType, _exceptionMessage);
   1564     }
   1565 }
   1566 
   1567 /* void glGetIntegerv ( GLenum pname, GLint *params ) */
   1568 static void
   1569 android_glGetIntegerv__ILjava_nio_IntBuffer_2
   1570   (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
   1571     jint _exception = 0;
   1572     const char * _exceptionType = NULL;
   1573     const char * _exceptionMessage = NULL;
   1574     jarray _array = (jarray) 0;
   1575     jint _bufferOffset = (jint) 0;
   1576     jint _remaining;
   1577     GLint *params = (GLint *) 0;
   1578 
   1579     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   1580     int _needed;
   1581     switch (pname) {
   1582 #if defined(GL_ALPHA_BITS)
   1583         case GL_ALPHA_BITS:
   1584 #endif // defined(GL_ALPHA_BITS)
   1585 #if defined(GL_ALPHA_TEST_FUNC)
   1586         case GL_ALPHA_TEST_FUNC:
   1587 #endif // defined(GL_ALPHA_TEST_FUNC)
   1588 #if defined(GL_ALPHA_TEST_REF)
   1589         case GL_ALPHA_TEST_REF:
   1590 #endif // defined(GL_ALPHA_TEST_REF)
   1591 #if defined(GL_BLEND_DST)
   1592         case GL_BLEND_DST:
   1593 #endif // defined(GL_BLEND_DST)
   1594 #if defined(GL_BLUE_BITS)
   1595         case GL_BLUE_BITS:
   1596 #endif // defined(GL_BLUE_BITS)
   1597 #if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
   1598         case GL_COLOR_ARRAY_BUFFER_BINDING:
   1599 #endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
   1600 #if defined(GL_COLOR_ARRAY_SIZE)
   1601         case GL_COLOR_ARRAY_SIZE:
   1602 #endif // defined(GL_COLOR_ARRAY_SIZE)
   1603 #if defined(GL_COLOR_ARRAY_STRIDE)
   1604         case GL_COLOR_ARRAY_STRIDE:
   1605 #endif // defined(GL_COLOR_ARRAY_STRIDE)
   1606 #if defined(GL_COLOR_ARRAY_TYPE)
   1607         case GL_COLOR_ARRAY_TYPE:
   1608 #endif // defined(GL_COLOR_ARRAY_TYPE)
   1609 #if defined(GL_CULL_FACE)
   1610         case GL_CULL_FACE:
   1611 #endif // defined(GL_CULL_FACE)
   1612 #if defined(GL_DEPTH_BITS)
   1613         case GL_DEPTH_BITS:
   1614 #endif // defined(GL_DEPTH_BITS)
   1615 #if defined(GL_DEPTH_CLEAR_VALUE)
   1616         case GL_DEPTH_CLEAR_VALUE:
   1617 #endif // defined(GL_DEPTH_CLEAR_VALUE)
   1618 #if defined(GL_DEPTH_FUNC)
   1619         case GL_DEPTH_FUNC:
   1620 #endif // defined(GL_DEPTH_FUNC)
   1621 #if defined(GL_DEPTH_WRITEMASK)
   1622         case GL_DEPTH_WRITEMASK:
   1623 #endif // defined(GL_DEPTH_WRITEMASK)
   1624 #if defined(GL_FOG_DENSITY)
   1625         case GL_FOG_DENSITY:
   1626 #endif // defined(GL_FOG_DENSITY)
   1627 #if defined(GL_FOG_END)
   1628         case GL_FOG_END:
   1629 #endif // defined(GL_FOG_END)
   1630 #if defined(GL_FOG_MODE)
   1631         case GL_FOG_MODE:
   1632 #endif // defined(GL_FOG_MODE)
   1633 #if defined(GL_FOG_START)
   1634         case GL_FOG_START:
   1635 #endif // defined(GL_FOG_START)
   1636 #if defined(GL_FRONT_FACE)
   1637         case GL_FRONT_FACE:
   1638 #endif // defined(GL_FRONT_FACE)
   1639 #if defined(GL_GREEN_BITS)
   1640         case GL_GREEN_BITS:
   1641 #endif // defined(GL_GREEN_BITS)
   1642 #if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
   1643         case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
   1644 #endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
   1645 #if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
   1646         case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
   1647 #endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
   1648 #if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
   1649         case GL_LIGHT_MODEL_COLOR_CONTROL:
   1650 #endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL)
   1651 #if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
   1652         case GL_LIGHT_MODEL_LOCAL_VIEWER:
   1653 #endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
   1654 #if defined(GL_LIGHT_MODEL_TWO_SIDE)
   1655         case GL_LIGHT_MODEL_TWO_SIDE:
   1656 #endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
   1657 #if defined(GL_LINE_SMOOTH_HINT)
   1658         case GL_LINE_SMOOTH_HINT:
   1659 #endif // defined(GL_LINE_SMOOTH_HINT)
   1660 #if defined(GL_LINE_WIDTH)
   1661         case GL_LINE_WIDTH:
   1662 #endif // defined(GL_LINE_WIDTH)
   1663 #if defined(GL_LOGIC_OP_MODE)
   1664         case GL_LOGIC_OP_MODE:
   1665 #endif // defined(GL_LOGIC_OP_MODE)
   1666 #if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
   1667         case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
   1668 #endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
   1669 #if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
   1670         case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
   1671 #endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
   1672 #if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
   1673         case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
   1674 #endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
   1675 #if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
   1676         case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
   1677 #endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
   1678 #if defined(GL_MATRIX_MODE)
   1679         case GL_MATRIX_MODE:
   1680 #endif // defined(GL_MATRIX_MODE)
   1681 #if defined(GL_MAX_CLIP_PLANES)
   1682         case GL_MAX_CLIP_PLANES:
   1683 #endif // defined(GL_MAX_CLIP_PLANES)
   1684 #if defined(GL_MAX_ELEMENTS_INDICES)
   1685         case GL_MAX_ELEMENTS_INDICES:
   1686 #endif // defined(GL_MAX_ELEMENTS_INDICES)
   1687 #if defined(GL_MAX_ELEMENTS_VERTICES)
   1688         case GL_MAX_ELEMENTS_VERTICES:
   1689 #endif // defined(GL_MAX_ELEMENTS_VERTICES)
   1690 #if defined(GL_MAX_LIGHTS)
   1691         case GL_MAX_LIGHTS:
   1692 #endif // defined(GL_MAX_LIGHTS)
   1693 #if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
   1694         case GL_MAX_MODELVIEW_STACK_DEPTH:
   1695 #endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
   1696 #if defined(GL_MAX_PALETTE_MATRICES_OES)
   1697         case GL_MAX_PALETTE_MATRICES_OES:
   1698 #endif // defined(GL_MAX_PALETTE_MATRICES_OES)
   1699 #if defined(GL_MAX_PROJECTION_STACK_DEPTH)
   1700         case GL_MAX_PROJECTION_STACK_DEPTH:
   1701 #endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
   1702 #if defined(GL_MAX_TEXTURE_SIZE)
   1703         case GL_MAX_TEXTURE_SIZE:
   1704 #endif // defined(GL_MAX_TEXTURE_SIZE)
   1705 #if defined(GL_MAX_TEXTURE_STACK_DEPTH)
   1706         case GL_MAX_TEXTURE_STACK_DEPTH:
   1707 #endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
   1708 #if defined(GL_MAX_TEXTURE_UNITS)
   1709         case GL_MAX_TEXTURE_UNITS:
   1710 #endif // defined(GL_MAX_TEXTURE_UNITS)
   1711 #if defined(GL_MAX_VERTEX_UNITS_OES)
   1712         case GL_MAX_VERTEX_UNITS_OES:
   1713 #endif // defined(GL_MAX_VERTEX_UNITS_OES)
   1714 #if defined(GL_MODELVIEW_STACK_DEPTH)
   1715         case GL_MODELVIEW_STACK_DEPTH:
   1716 #endif // defined(GL_MODELVIEW_STACK_DEPTH)
   1717 #if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
   1718         case GL_NORMAL_ARRAY_BUFFER_BINDING:
   1719 #endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
   1720 #if defined(GL_NORMAL_ARRAY_STRIDE)
   1721         case GL_NORMAL_ARRAY_STRIDE:
   1722 #endif // defined(GL_NORMAL_ARRAY_STRIDE)
   1723 #if defined(GL_NORMAL_ARRAY_TYPE)
   1724         case GL_NORMAL_ARRAY_TYPE:
   1725 #endif // defined(GL_NORMAL_ARRAY_TYPE)
   1726 #if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
   1727         case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
   1728 #endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
   1729 #if defined(GL_PACK_ALIGNMENT)
   1730         case GL_PACK_ALIGNMENT:
   1731 #endif // defined(GL_PACK_ALIGNMENT)
   1732 #if defined(GL_PERSPECTIVE_CORRECTION_HINT)
   1733         case GL_PERSPECTIVE_CORRECTION_HINT:
   1734 #endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
   1735 #if defined(GL_POINT_SIZE)
   1736         case GL_POINT_SIZE:
   1737 #endif // defined(GL_POINT_SIZE)
   1738 #if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
   1739         case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
   1740 #endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
   1741 #if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
   1742         case GL_POINT_SIZE_ARRAY_STRIDE_OES:
   1743 #endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
   1744 #if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
   1745         case GL_POINT_SIZE_ARRAY_TYPE_OES:
   1746 #endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
   1747 #if defined(GL_POINT_SMOOTH_HINT)
   1748         case GL_POINT_SMOOTH_HINT:
   1749 #endif // defined(GL_POINT_SMOOTH_HINT)
   1750 #if defined(GL_POLYGON_OFFSET_FACTOR)
   1751         case GL_POLYGON_OFFSET_FACTOR:
   1752 #endif // defined(GL_POLYGON_OFFSET_FACTOR)
   1753 #if defined(GL_POLYGON_OFFSET_UNITS)
   1754         case GL_POLYGON_OFFSET_UNITS:
   1755 #endif // defined(GL_POLYGON_OFFSET_UNITS)
   1756 #if defined(GL_PROJECTION_STACK_DEPTH)
   1757         case GL_PROJECTION_STACK_DEPTH:
   1758 #endif // defined(GL_PROJECTION_STACK_DEPTH)
   1759 #if defined(GL_RED_BITS)
   1760         case GL_RED_BITS:
   1761 #endif // defined(GL_RED_BITS)
   1762 #if defined(GL_SHADE_MODEL)
   1763         case GL_SHADE_MODEL:
   1764 #endif // defined(GL_SHADE_MODEL)
   1765 #if defined(GL_STENCIL_BITS)
   1766         case GL_STENCIL_BITS:
   1767 #endif // defined(GL_STENCIL_BITS)
   1768 #if defined(GL_STENCIL_CLEAR_VALUE)
   1769         case GL_STENCIL_CLEAR_VALUE:
   1770 #endif // defined(GL_STENCIL_CLEAR_VALUE)
   1771 #if defined(GL_STENCIL_FAIL)
   1772         case GL_STENCIL_FAIL:
   1773 #endif // defined(GL_STENCIL_FAIL)
   1774 #if defined(GL_STENCIL_FUNC)
   1775         case GL_STENCIL_FUNC:
   1776 #endif // defined(GL_STENCIL_FUNC)
   1777 #if defined(GL_STENCIL_PASS_DEPTH_FAIL)
   1778         case GL_STENCIL_PASS_DEPTH_FAIL:
   1779 #endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
   1780 #if defined(GL_STENCIL_PASS_DEPTH_PASS)
   1781         case GL_STENCIL_PASS_DEPTH_PASS:
   1782 #endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
   1783 #if defined(GL_STENCIL_REF)
   1784         case GL_STENCIL_REF:
   1785 #endif // defined(GL_STENCIL_REF)
   1786 #if defined(GL_STENCIL_VALUE_MASK)
   1787         case GL_STENCIL_VALUE_MASK:
   1788 #endif // defined(GL_STENCIL_VALUE_MASK)
   1789 #if defined(GL_STENCIL_WRITEMASK)
   1790         case GL_STENCIL_WRITEMASK:
   1791 #endif // defined(GL_STENCIL_WRITEMASK)
   1792 #if defined(GL_SUBPIXEL_BITS)
   1793         case GL_SUBPIXEL_BITS:
   1794 #endif // defined(GL_SUBPIXEL_BITS)
   1795 #if defined(GL_TEXTURE_BINDING_2D)
   1796         case GL_TEXTURE_BINDING_2D:
   1797 #endif // defined(GL_TEXTURE_BINDING_2D)
   1798 #if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
   1799         case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
   1800 #endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
   1801 #if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
   1802         case GL_TEXTURE_COORD_ARRAY_SIZE:
   1803 #endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
   1804 #if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
   1805         case GL_TEXTURE_COORD_ARRAY_STRIDE:
   1806 #endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
   1807 #if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
   1808         case GL_TEXTURE_COORD_ARRAY_TYPE:
   1809 #endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
   1810 #if defined(GL_TEXTURE_STACK_DEPTH)
   1811         case GL_TEXTURE_STACK_DEPTH:
   1812 #endif // defined(GL_TEXTURE_STACK_DEPTH)
   1813 #if defined(GL_UNPACK_ALIGNMENT)
   1814         case GL_UNPACK_ALIGNMENT:
   1815 #endif // defined(GL_UNPACK_ALIGNMENT)
   1816 #if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
   1817         case GL_VERTEX_ARRAY_BUFFER_BINDING:
   1818 #endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
   1819 #if defined(GL_VERTEX_ARRAY_SIZE)
   1820         case GL_VERTEX_ARRAY_SIZE:
   1821 #endif // defined(GL_VERTEX_ARRAY_SIZE)
   1822 #if defined(GL_VERTEX_ARRAY_STRIDE)
   1823         case GL_VERTEX_ARRAY_STRIDE:
   1824 #endif // defined(GL_VERTEX_ARRAY_STRIDE)
   1825 #if defined(GL_VERTEX_ARRAY_TYPE)
   1826         case GL_VERTEX_ARRAY_TYPE:
   1827 #endif // defined(GL_VERTEX_ARRAY_TYPE)
   1828 #if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
   1829         case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
   1830 #endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
   1831 #if defined(GL_WEIGHT_ARRAY_SIZE_OES)
   1832         case GL_WEIGHT_ARRAY_SIZE_OES:
   1833 #endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
   1834 #if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
   1835         case GL_WEIGHT_ARRAY_STRIDE_OES:
   1836 #endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
   1837 #if defined(GL_WEIGHT_ARRAY_TYPE_OES)
   1838         case GL_WEIGHT_ARRAY_TYPE_OES:
   1839 #endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
   1840             _needed = 1;
   1841             break;
   1842 #if defined(GL_ALIASED_POINT_SIZE_RANGE)
   1843         case GL_ALIASED_POINT_SIZE_RANGE:
   1844 #endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
   1845 #if defined(GL_ALIASED_LINE_WIDTH_RANGE)
   1846         case GL_ALIASED_LINE_WIDTH_RANGE:
   1847 #endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
   1848 #if defined(GL_DEPTH_RANGE)
   1849         case GL_DEPTH_RANGE:
   1850 #endif // defined(GL_DEPTH_RANGE)
   1851 #if defined(GL_MAX_VIEWPORT_DIMS)
   1852         case GL_MAX_VIEWPORT_DIMS:
   1853 #endif // defined(GL_MAX_VIEWPORT_DIMS)
   1854 #if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
   1855         case GL_SMOOTH_LINE_WIDTH_RANGE:
   1856 #endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
   1857 #if defined(GL_SMOOTH_POINT_SIZE_RANGE)
   1858         case GL_SMOOTH_POINT_SIZE_RANGE:
   1859 #endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
   1860             _needed = 2;
   1861             break;
   1862 #if defined(GL_COLOR_CLEAR_VALUE)
   1863         case GL_COLOR_CLEAR_VALUE:
   1864 #endif // defined(GL_COLOR_CLEAR_VALUE)
   1865 #if defined(GL_COLOR_WRITEMASK)
   1866         case GL_COLOR_WRITEMASK:
   1867 #endif // defined(GL_COLOR_WRITEMASK)
   1868 #if defined(GL_FOG_COLOR)
   1869         case GL_FOG_COLOR:
   1870 #endif // defined(GL_FOG_COLOR)
   1871 #if defined(GL_LIGHT_MODEL_AMBIENT)
   1872         case GL_LIGHT_MODEL_AMBIENT:
   1873 #endif // defined(GL_LIGHT_MODEL_AMBIENT)
   1874 #if defined(GL_SCISSOR_BOX)
   1875         case GL_SCISSOR_BOX:
   1876 #endif // defined(GL_SCISSOR_BOX)
   1877 #if defined(GL_VIEWPORT)
   1878         case GL_VIEWPORT:
   1879 #endif // defined(GL_VIEWPORT)
   1880             _needed = 4;
   1881             break;
   1882 #if defined(GL_MODELVIEW_MATRIX)
   1883         case GL_MODELVIEW_MATRIX:
   1884 #endif // defined(GL_MODELVIEW_MATRIX)
   1885 #if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
   1886         case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
   1887 #endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
   1888 #if defined(GL_PROJECTION_MATRIX)
   1889         case GL_PROJECTION_MATRIX:
   1890 #endif // defined(GL_PROJECTION_MATRIX)
   1891 #if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
   1892         case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
   1893 #endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
   1894 #if defined(GL_TEXTURE_MATRIX)
   1895         case GL_TEXTURE_MATRIX:
   1896 #endif // defined(GL_TEXTURE_MATRIX)
   1897 #if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
   1898         case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
   1899 #endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
   1900             _needed = 16;
   1901             break;
   1902 #if defined(GL_COMPRESSED_TEXTURE_FORMATS)
   1903         case GL_COMPRESSED_TEXTURE_FORMATS:
   1904 #endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
   1905             _needed = getNumCompressedTextureFormats();
   1906             break;
   1907         default:
   1908             _needed = 1;
   1909             break;
   1910     }
   1911     if (_remaining < _needed) {
   1912         _exception = 1;
   1913         _exceptionType = "java/lang/IllegalArgumentException";
   1914         _exceptionMessage = "remaining() < needed";
   1915         goto exit;
   1916     }
   1917     if (params == NULL) {
   1918         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   1919         params = (GLint *) (_paramsBase + _bufferOffset);
   1920     }
   1921     glGetIntegerv(
   1922         (GLenum)pname,
   1923         (GLint *)params
   1924     );
   1925 
   1926 exit:
   1927     if (_array) {
   1928         releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
   1929     }
   1930     if (_exception) {
   1931         jniThrowException(_env, _exceptionType, _exceptionMessage);
   1932     }
   1933 }
   1934 
   1935 /* const GLubyte * glGetString ( GLenum name ) */
   1936 static jstring android_glGetString(JNIEnv *_env, jobject, jint name) {
   1937     const char* chars = (const char*) glGetString((GLenum) name);
   1938     return _env->NewStringUTF(chars);
   1939 }
   1940 /* void glHint ( GLenum target, GLenum mode ) */
   1941 static void
   1942 android_glHint__II
   1943   (JNIEnv *_env, jobject _this, jint target, jint mode) {
   1944     glHint(
   1945         (GLenum)target,
   1946         (GLenum)mode
   1947     );
   1948 }
   1949 
   1950 /* void glLightModelf ( GLenum pname, GLfloat param ) */
   1951 static void
   1952 android_glLightModelf__IF
   1953   (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
   1954     glLightModelf(
   1955         (GLenum)pname,
   1956         (GLfloat)param
   1957     );
   1958 }
   1959 
   1960 /* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
   1961 static void
   1962 android_glLightModelfv__I_3FI
   1963   (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
   1964     jint _exception = 0;
   1965     const char * _exceptionType = NULL;
   1966     const char * _exceptionMessage = NULL;
   1967     GLfloat *params_base = (GLfloat *) 0;
   1968     jint _remaining;
   1969     GLfloat *params = (GLfloat *) 0;
   1970 
   1971     if (!params_ref) {
   1972         _exception = 1;
   1973         _exceptionType = "java/lang/IllegalArgumentException";
   1974         _exceptionMessage = "params == null";
   1975         goto exit;
   1976     }
   1977     if (offset < 0) {
   1978         _exception = 1;
   1979         _exceptionType = "java/lang/IllegalArgumentException";
   1980         _exceptionMessage = "offset < 0";
   1981         goto exit;
   1982     }
   1983     _remaining = _env->GetArrayLength(params_ref) - offset;
   1984     int _needed;
   1985     switch (pname) {
   1986 #if defined(GL_LIGHT_MODEL_TWO_SIDE)
   1987         case GL_LIGHT_MODEL_TWO_SIDE:
   1988 #endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
   1989             _needed = 1;
   1990             break;
   1991 #if defined(GL_LIGHT_MODEL_AMBIENT)
   1992         case GL_LIGHT_MODEL_AMBIENT:
   1993 #endif // defined(GL_LIGHT_MODEL_AMBIENT)
   1994             _needed = 4;
   1995             break;
   1996         default:
   1997             _needed = 1;
   1998             break;
   1999     }
   2000     if (_remaining < _needed) {
   2001         _exception = 1;
   2002         _exceptionType = "java/lang/IllegalArgumentException";
   2003         _exceptionMessage = "length - offset < needed";
   2004         goto exit;
   2005     }
   2006     params_base = (GLfloat *)
   2007         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   2008     params = params_base + offset;
   2009 
   2010     glLightModelfv(
   2011         (GLenum)pname,
   2012         (GLfloat *)params
   2013     );
   2014 
   2015 exit:
   2016     if (params_base) {
   2017         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   2018             JNI_ABORT);
   2019     }
   2020     if (_exception) {
   2021         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2022     }
   2023 }
   2024 
   2025 /* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
   2026 static void
   2027 android_glLightModelfv__ILjava_nio_FloatBuffer_2
   2028   (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
   2029     jint _exception = 0;
   2030     const char * _exceptionType = NULL;
   2031     const char * _exceptionMessage = NULL;
   2032     jarray _array = (jarray) 0;
   2033     jint _bufferOffset = (jint) 0;
   2034     jint _remaining;
   2035     GLfloat *params = (GLfloat *) 0;
   2036 
   2037     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   2038     int _needed;
   2039     switch (pname) {
   2040 #if defined(GL_LIGHT_MODEL_TWO_SIDE)
   2041         case GL_LIGHT_MODEL_TWO_SIDE:
   2042 #endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
   2043             _needed = 1;
   2044             break;
   2045 #if defined(GL_LIGHT_MODEL_AMBIENT)
   2046         case GL_LIGHT_MODEL_AMBIENT:
   2047 #endif // defined(GL_LIGHT_MODEL_AMBIENT)
   2048             _needed = 4;
   2049             break;
   2050         default:
   2051             _needed = 1;
   2052             break;
   2053     }
   2054     if (_remaining < _needed) {
   2055         _exception = 1;
   2056         _exceptionType = "java/lang/IllegalArgumentException";
   2057         _exceptionMessage = "remaining() < needed";
   2058         goto exit;
   2059     }
   2060     if (params == NULL) {
   2061         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   2062         params = (GLfloat *) (_paramsBase + _bufferOffset);
   2063     }
   2064     glLightModelfv(
   2065         (GLenum)pname,
   2066         (GLfloat *)params
   2067     );
   2068 
   2069 exit:
   2070     if (_array) {
   2071         releasePointer(_env, _array, params, JNI_FALSE);
   2072     }
   2073     if (_exception) {
   2074         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2075     }
   2076 }
   2077 
   2078 /* void glLightModelx ( GLenum pname, GLfixed param ) */
   2079 static void
   2080 android_glLightModelx__II
   2081   (JNIEnv *_env, jobject _this, jint pname, jint param) {
   2082     glLightModelx(
   2083         (GLenum)pname,
   2084         (GLfixed)param
   2085     );
   2086 }
   2087 
   2088 /* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
   2089 static void
   2090 android_glLightModelxv__I_3II
   2091   (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
   2092     jint _exception = 0;
   2093     const char * _exceptionType = NULL;
   2094     const char * _exceptionMessage = NULL;
   2095     GLfixed *params_base = (GLfixed *) 0;
   2096     jint _remaining;
   2097     GLfixed *params = (GLfixed *) 0;
   2098 
   2099     if (!params_ref) {
   2100         _exception = 1;
   2101         _exceptionType = "java/lang/IllegalArgumentException";
   2102         _exceptionMessage = "params == null";
   2103         goto exit;
   2104     }
   2105     if (offset < 0) {
   2106         _exception = 1;
   2107         _exceptionType = "java/lang/IllegalArgumentException";
   2108         _exceptionMessage = "offset < 0";
   2109         goto exit;
   2110     }
   2111     _remaining = _env->GetArrayLength(params_ref) - offset;
   2112     int _needed;
   2113     switch (pname) {
   2114 #if defined(GL_LIGHT_MODEL_TWO_SIDE)
   2115         case GL_LIGHT_MODEL_TWO_SIDE:
   2116 #endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
   2117             _needed = 1;
   2118             break;
   2119 #if defined(GL_LIGHT_MODEL_AMBIENT)
   2120         case GL_LIGHT_MODEL_AMBIENT:
   2121 #endif // defined(GL_LIGHT_MODEL_AMBIENT)
   2122             _needed = 4;
   2123             break;
   2124         default:
   2125             _needed = 1;
   2126             break;
   2127     }
   2128     if (_remaining < _needed) {
   2129         _exception = 1;
   2130         _exceptionType = "java/lang/IllegalArgumentException";
   2131         _exceptionMessage = "length - offset < needed";
   2132         goto exit;
   2133     }
   2134     params_base = (GLfixed *)
   2135         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   2136     params = params_base + offset;
   2137 
   2138     glLightModelxv(
   2139         (GLenum)pname,
   2140         (GLfixed *)params
   2141     );
   2142 
   2143 exit:
   2144     if (params_base) {
   2145         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   2146             JNI_ABORT);
   2147     }
   2148     if (_exception) {
   2149         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2150     }
   2151 }
   2152 
   2153 /* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
   2154 static void
   2155 android_glLightModelxv__ILjava_nio_IntBuffer_2
   2156   (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
   2157     jint _exception = 0;
   2158     const char * _exceptionType = NULL;
   2159     const char * _exceptionMessage = NULL;
   2160     jarray _array = (jarray) 0;
   2161     jint _bufferOffset = (jint) 0;
   2162     jint _remaining;
   2163     GLfixed *params = (GLfixed *) 0;
   2164 
   2165     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   2166     int _needed;
   2167     switch (pname) {
   2168 #if defined(GL_LIGHT_MODEL_TWO_SIDE)
   2169         case GL_LIGHT_MODEL_TWO_SIDE:
   2170 #endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
   2171             _needed = 1;
   2172             break;
   2173 #if defined(GL_LIGHT_MODEL_AMBIENT)
   2174         case GL_LIGHT_MODEL_AMBIENT:
   2175 #endif // defined(GL_LIGHT_MODEL_AMBIENT)
   2176             _needed = 4;
   2177             break;
   2178         default:
   2179             _needed = 1;
   2180             break;
   2181     }
   2182     if (_remaining < _needed) {
   2183         _exception = 1;
   2184         _exceptionType = "java/lang/IllegalArgumentException";
   2185         _exceptionMessage = "remaining() < needed";
   2186         goto exit;
   2187     }
   2188     if (params == NULL) {
   2189         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   2190         params = (GLfixed *) (_paramsBase + _bufferOffset);
   2191     }
   2192     glLightModelxv(
   2193         (GLenum)pname,
   2194         (GLfixed *)params
   2195     );
   2196 
   2197 exit:
   2198     if (_array) {
   2199         releasePointer(_env, _array, params, JNI_FALSE);
   2200     }
   2201     if (_exception) {
   2202         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2203     }
   2204 }
   2205 
   2206 /* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */
   2207 static void
   2208 android_glLightf__IIF
   2209   (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) {
   2210     glLightf(
   2211         (GLenum)light,
   2212         (GLenum)pname,
   2213         (GLfloat)param
   2214     );
   2215 }
   2216 
   2217 /* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
   2218 static void
   2219 android_glLightfv__II_3FI
   2220   (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
   2221     jint _exception = 0;
   2222     const char * _exceptionType = NULL;
   2223     const char * _exceptionMessage = NULL;
   2224     GLfloat *params_base = (GLfloat *) 0;
   2225     jint _remaining;
   2226     GLfloat *params = (GLfloat *) 0;
   2227 
   2228     if (!params_ref) {
   2229         _exception = 1;
   2230         _exceptionType = "java/lang/IllegalArgumentException";
   2231         _exceptionMessage = "params == null";
   2232         goto exit;
   2233     }
   2234     if (offset < 0) {
   2235         _exception = 1;
   2236         _exceptionType = "java/lang/IllegalArgumentException";
   2237         _exceptionMessage = "offset < 0";
   2238         goto exit;
   2239     }
   2240     _remaining = _env->GetArrayLength(params_ref) - offset;
   2241     int _needed;
   2242     switch (pname) {
   2243 #if defined(GL_SPOT_EXPONENT)
   2244         case GL_SPOT_EXPONENT:
   2245 #endif // defined(GL_SPOT_EXPONENT)
   2246 #if defined(GL_SPOT_CUTOFF)
   2247         case GL_SPOT_CUTOFF:
   2248 #endif // defined(GL_SPOT_CUTOFF)
   2249 #if defined(GL_CONSTANT_ATTENUATION)
   2250         case GL_CONSTANT_ATTENUATION:
   2251 #endif // defined(GL_CONSTANT_ATTENUATION)
   2252 #if defined(GL_LINEAR_ATTENUATION)
   2253         case GL_LINEAR_ATTENUATION:
   2254 #endif // defined(GL_LINEAR_ATTENUATION)
   2255 #if defined(GL_QUADRATIC_ATTENUATION)
   2256         case GL_QUADRATIC_ATTENUATION:
   2257 #endif // defined(GL_QUADRATIC_ATTENUATION)
   2258             _needed = 1;
   2259             break;
   2260 #if defined(GL_SPOT_DIRECTION)
   2261         case GL_SPOT_DIRECTION:
   2262 #endif // defined(GL_SPOT_DIRECTION)
   2263             _needed = 3;
   2264             break;
   2265 #if defined(GL_AMBIENT)
   2266         case GL_AMBIENT:
   2267 #endif // defined(GL_AMBIENT)
   2268 #if defined(GL_DIFFUSE)
   2269         case GL_DIFFUSE:
   2270 #endif // defined(GL_DIFFUSE)
   2271 #if defined(GL_SPECULAR)
   2272         case GL_SPECULAR:
   2273 #endif // defined(GL_SPECULAR)
   2274 #if defined(GL_EMISSION)
   2275         case GL_EMISSION:
   2276 #endif // defined(GL_EMISSION)
   2277             _needed = 4;
   2278             break;
   2279         default:
   2280             _needed = 1;
   2281             break;
   2282     }
   2283     if (_remaining < _needed) {
   2284         _exception = 1;
   2285         _exceptionType = "java/lang/IllegalArgumentException";
   2286         _exceptionMessage = "length - offset < needed";
   2287         goto exit;
   2288     }
   2289     params_base = (GLfloat *)
   2290         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   2291     params = params_base + offset;
   2292 
   2293     glLightfv(
   2294         (GLenum)light,
   2295         (GLenum)pname,
   2296         (GLfloat *)params
   2297     );
   2298 
   2299 exit:
   2300     if (params_base) {
   2301         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   2302             JNI_ABORT);
   2303     }
   2304     if (_exception) {
   2305         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2306     }
   2307 }
   2308 
   2309 /* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
   2310 static void
   2311 android_glLightfv__IILjava_nio_FloatBuffer_2
   2312   (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
   2313     jint _exception = 0;
   2314     const char * _exceptionType = NULL;
   2315     const char * _exceptionMessage = NULL;
   2316     jarray _array = (jarray) 0;
   2317     jint _bufferOffset = (jint) 0;
   2318     jint _remaining;
   2319     GLfloat *params = (GLfloat *) 0;
   2320 
   2321     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   2322     int _needed;
   2323     switch (pname) {
   2324 #if defined(GL_SPOT_EXPONENT)
   2325         case GL_SPOT_EXPONENT:
   2326 #endif // defined(GL_SPOT_EXPONENT)
   2327 #if defined(GL_SPOT_CUTOFF)
   2328         case GL_SPOT_CUTOFF:
   2329 #endif // defined(GL_SPOT_CUTOFF)
   2330 #if defined(GL_CONSTANT_ATTENUATION)
   2331         case GL_CONSTANT_ATTENUATION:
   2332 #endif // defined(GL_CONSTANT_ATTENUATION)
   2333 #if defined(GL_LINEAR_ATTENUATION)
   2334         case GL_LINEAR_ATTENUATION:
   2335 #endif // defined(GL_LINEAR_ATTENUATION)
   2336 #if defined(GL_QUADRATIC_ATTENUATION)
   2337         case GL_QUADRATIC_ATTENUATION:
   2338 #endif // defined(GL_QUADRATIC_ATTENUATION)
   2339             _needed = 1;
   2340             break;
   2341 #if defined(GL_SPOT_DIRECTION)
   2342         case GL_SPOT_DIRECTION:
   2343 #endif // defined(GL_SPOT_DIRECTION)
   2344             _needed = 3;
   2345             break;
   2346 #if defined(GL_AMBIENT)
   2347         case GL_AMBIENT:
   2348 #endif // defined(GL_AMBIENT)
   2349 #if defined(GL_DIFFUSE)
   2350         case GL_DIFFUSE:
   2351 #endif // defined(GL_DIFFUSE)
   2352 #if defined(GL_SPECULAR)
   2353         case GL_SPECULAR:
   2354 #endif // defined(GL_SPECULAR)
   2355 #if defined(GL_EMISSION)
   2356         case GL_EMISSION:
   2357 #endif // defined(GL_EMISSION)
   2358             _needed = 4;
   2359             break;
   2360         default:
   2361             _needed = 1;
   2362             break;
   2363     }
   2364     if (_remaining < _needed) {
   2365         _exception = 1;
   2366         _exceptionType = "java/lang/IllegalArgumentException";
   2367         _exceptionMessage = "remaining() < needed";
   2368         goto exit;
   2369     }
   2370     if (params == NULL) {
   2371         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   2372         params = (GLfloat *) (_paramsBase + _bufferOffset);
   2373     }
   2374     glLightfv(
   2375         (GLenum)light,
   2376         (GLenum)pname,
   2377         (GLfloat *)params
   2378     );
   2379 
   2380 exit:
   2381     if (_array) {
   2382         releasePointer(_env, _array, params, JNI_FALSE);
   2383     }
   2384     if (_exception) {
   2385         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2386     }
   2387 }
   2388 
   2389 /* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */
   2390 static void
   2391 android_glLightx__III
   2392   (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) {
   2393     glLightx(
   2394         (GLenum)light,
   2395         (GLenum)pname,
   2396         (GLfixed)param
   2397     );
   2398 }
   2399 
   2400 /* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
   2401 static void
   2402 android_glLightxv__II_3II
   2403   (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
   2404     jint _exception = 0;
   2405     const char * _exceptionType = NULL;
   2406     const char * _exceptionMessage = NULL;
   2407     GLfixed *params_base = (GLfixed *) 0;
   2408     jint _remaining;
   2409     GLfixed *params = (GLfixed *) 0;
   2410 
   2411     if (!params_ref) {
   2412         _exception = 1;
   2413         _exceptionType = "java/lang/IllegalArgumentException";
   2414         _exceptionMessage = "params == null";
   2415         goto exit;
   2416     }
   2417     if (offset < 0) {
   2418         _exception = 1;
   2419         _exceptionType = "java/lang/IllegalArgumentException";
   2420         _exceptionMessage = "offset < 0";
   2421         goto exit;
   2422     }
   2423     _remaining = _env->GetArrayLength(params_ref) - offset;
   2424     int _needed;
   2425     switch (pname) {
   2426 #if defined(GL_SPOT_EXPONENT)
   2427         case GL_SPOT_EXPONENT:
   2428 #endif // defined(GL_SPOT_EXPONENT)
   2429 #if defined(GL_SPOT_CUTOFF)
   2430         case GL_SPOT_CUTOFF:
   2431 #endif // defined(GL_SPOT_CUTOFF)
   2432 #if defined(GL_CONSTANT_ATTENUATION)
   2433         case GL_CONSTANT_ATTENUATION:
   2434 #endif // defined(GL_CONSTANT_ATTENUATION)
   2435 #if defined(GL_LINEAR_ATTENUATION)
   2436         case GL_LINEAR_ATTENUATION:
   2437 #endif // defined(GL_LINEAR_ATTENUATION)
   2438 #if defined(GL_QUADRATIC_ATTENUATION)
   2439         case GL_QUADRATIC_ATTENUATION:
   2440 #endif // defined(GL_QUADRATIC_ATTENUATION)
   2441             _needed = 1;
   2442             break;
   2443 #if defined(GL_SPOT_DIRECTION)
   2444         case GL_SPOT_DIRECTION:
   2445 #endif // defined(GL_SPOT_DIRECTION)
   2446             _needed = 3;
   2447             break;
   2448 #if defined(GL_AMBIENT)
   2449         case GL_AMBIENT:
   2450 #endif // defined(GL_AMBIENT)
   2451 #if defined(GL_DIFFUSE)
   2452         case GL_DIFFUSE:
   2453 #endif // defined(GL_DIFFUSE)
   2454 #if defined(GL_SPECULAR)
   2455         case GL_SPECULAR:
   2456 #endif // defined(GL_SPECULAR)
   2457 #if defined(GL_EMISSION)
   2458         case GL_EMISSION:
   2459 #endif // defined(GL_EMISSION)
   2460             _needed = 4;
   2461             break;
   2462         default:
   2463             _needed = 1;
   2464             break;
   2465     }
   2466     if (_remaining < _needed) {
   2467         _exception = 1;
   2468         _exceptionType = "java/lang/IllegalArgumentException";
   2469         _exceptionMessage = "length - offset < needed";
   2470         goto exit;
   2471     }
   2472     params_base = (GLfixed *)
   2473         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   2474     params = params_base + offset;
   2475 
   2476     glLightxv(
   2477         (GLenum)light,
   2478         (GLenum)pname,
   2479         (GLfixed *)params
   2480     );
   2481 
   2482 exit:
   2483     if (params_base) {
   2484         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   2485             JNI_ABORT);
   2486     }
   2487     if (_exception) {
   2488         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2489     }
   2490 }
   2491 
   2492 /* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
   2493 static void
   2494 android_glLightxv__IILjava_nio_IntBuffer_2
   2495   (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
   2496     jint _exception = 0;
   2497     const char * _exceptionType = NULL;
   2498     const char * _exceptionMessage = NULL;
   2499     jarray _array = (jarray) 0;
   2500     jint _bufferOffset = (jint) 0;
   2501     jint _remaining;
   2502     GLfixed *params = (GLfixed *) 0;
   2503 
   2504     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   2505     int _needed;
   2506     switch (pname) {
   2507 #if defined(GL_SPOT_EXPONENT)
   2508         case GL_SPOT_EXPONENT:
   2509 #endif // defined(GL_SPOT_EXPONENT)
   2510 #if defined(GL_SPOT_CUTOFF)
   2511         case GL_SPOT_CUTOFF:
   2512 #endif // defined(GL_SPOT_CUTOFF)
   2513 #if defined(GL_CONSTANT_ATTENUATION)
   2514         case GL_CONSTANT_ATTENUATION:
   2515 #endif // defined(GL_CONSTANT_ATTENUATION)
   2516 #if defined(GL_LINEAR_ATTENUATION)
   2517         case GL_LINEAR_ATTENUATION:
   2518 #endif // defined(GL_LINEAR_ATTENUATION)
   2519 #if defined(GL_QUADRATIC_ATTENUATION)
   2520         case GL_QUADRATIC_ATTENUATION:
   2521 #endif // defined(GL_QUADRATIC_ATTENUATION)
   2522             _needed = 1;
   2523             break;
   2524 #if defined(GL_SPOT_DIRECTION)
   2525         case GL_SPOT_DIRECTION:
   2526 #endif // defined(GL_SPOT_DIRECTION)
   2527             _needed = 3;
   2528             break;
   2529 #if defined(GL_AMBIENT)
   2530         case GL_AMBIENT:
   2531 #endif // defined(GL_AMBIENT)
   2532 #if defined(GL_DIFFUSE)
   2533         case GL_DIFFUSE:
   2534 #endif // defined(GL_DIFFUSE)
   2535 #if defined(GL_SPECULAR)
   2536         case GL_SPECULAR:
   2537 #endif // defined(GL_SPECULAR)
   2538 #if defined(GL_EMISSION)
   2539         case GL_EMISSION:
   2540 #endif // defined(GL_EMISSION)
   2541             _needed = 4;
   2542             break;
   2543         default:
   2544             _needed = 1;
   2545             break;
   2546     }
   2547     if (_remaining < _needed) {
   2548         _exception = 1;
   2549         _exceptionType = "java/lang/IllegalArgumentException";
   2550         _exceptionMessage = "remaining() < needed";
   2551         goto exit;
   2552     }
   2553     if (params == NULL) {
   2554         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   2555         params = (GLfixed *) (_paramsBase + _bufferOffset);
   2556     }
   2557     glLightxv(
   2558         (GLenum)light,
   2559         (GLenum)pname,
   2560         (GLfixed *)params
   2561     );
   2562 
   2563 exit:
   2564     if (_array) {
   2565         releasePointer(_env, _array, params, JNI_FALSE);
   2566     }
   2567     if (_exception) {
   2568         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2569     }
   2570 }
   2571 
   2572 /* void glLineWidth ( GLfloat width ) */
   2573 static void
   2574 android_glLineWidth__F
   2575   (JNIEnv *_env, jobject _this, jfloat width) {
   2576     glLineWidth(
   2577         (GLfloat)width
   2578     );
   2579 }
   2580 
   2581 /* void glLineWidthx ( GLfixed width ) */
   2582 static void
   2583 android_glLineWidthx__I
   2584   (JNIEnv *_env, jobject _this, jint width) {
   2585     glLineWidthx(
   2586         (GLfixed)width
   2587     );
   2588 }
   2589 
   2590 /* void glLoadIdentity ( void ) */
   2591 static void
   2592 android_glLoadIdentity__
   2593   (JNIEnv *_env, jobject _this) {
   2594     glLoadIdentity();
   2595 }
   2596 
   2597 /* void glLoadMatrixf ( const GLfloat *m ) */
   2598 static void
   2599 android_glLoadMatrixf___3FI
   2600   (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
   2601     jint _exception = 0;
   2602     const char * _exceptionType = NULL;
   2603     const char * _exceptionMessage = NULL;
   2604     GLfloat *m_base = (GLfloat *) 0;
   2605     jint _remaining;
   2606     GLfloat *m = (GLfloat *) 0;
   2607 
   2608     if (!m_ref) {
   2609         _exception = 1;
   2610         _exceptionType = "java/lang/IllegalArgumentException";
   2611         _exceptionMessage = "m == null";
   2612         goto exit;
   2613     }
   2614     if (offset < 0) {
   2615         _exception = 1;
   2616         _exceptionType = "java/lang/IllegalArgumentException";
   2617         _exceptionMessage = "offset < 0";
   2618         goto exit;
   2619     }
   2620     _remaining = _env->GetArrayLength(m_ref) - offset;
   2621     m_base = (GLfloat *)
   2622         _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
   2623     m = m_base + offset;
   2624 
   2625     glLoadMatrixf(
   2626         (GLfloat *)m
   2627     );
   2628 
   2629 exit:
   2630     if (m_base) {
   2631         _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
   2632             JNI_ABORT);
   2633     }
   2634     if (_exception) {
   2635         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2636     }
   2637 }
   2638 
   2639 /* void glLoadMatrixf ( const GLfloat *m ) */
   2640 static void
   2641 android_glLoadMatrixf__Ljava_nio_FloatBuffer_2
   2642   (JNIEnv *_env, jobject _this, jobject m_buf) {
   2643     jarray _array = (jarray) 0;
   2644     jint _bufferOffset = (jint) 0;
   2645     jint _remaining;
   2646     GLfloat *m = (GLfloat *) 0;
   2647 
   2648     m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
   2649     if (m == NULL) {
   2650         char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   2651         m = (GLfloat *) (_mBase + _bufferOffset);
   2652     }
   2653     glLoadMatrixf(
   2654         (GLfloat *)m
   2655     );
   2656     if (_array) {
   2657         releasePointer(_env, _array, m, JNI_FALSE);
   2658     }
   2659 }
   2660 
   2661 /* void glLoadMatrixx ( const GLfixed *m ) */
   2662 static void
   2663 android_glLoadMatrixx___3II
   2664   (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
   2665     jint _exception = 0;
   2666     const char * _exceptionType = NULL;
   2667     const char * _exceptionMessage = NULL;
   2668     GLfixed *m_base = (GLfixed *) 0;
   2669     jint _remaining;
   2670     GLfixed *m = (GLfixed *) 0;
   2671 
   2672     if (!m_ref) {
   2673         _exception = 1;
   2674         _exceptionType = "java/lang/IllegalArgumentException";
   2675         _exceptionMessage = "m == null";
   2676         goto exit;
   2677     }
   2678     if (offset < 0) {
   2679         _exception = 1;
   2680         _exceptionType = "java/lang/IllegalArgumentException";
   2681         _exceptionMessage = "offset < 0";
   2682         goto exit;
   2683     }
   2684     _remaining = _env->GetArrayLength(m_ref) - offset;
   2685     m_base = (GLfixed *)
   2686         _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
   2687     m = m_base + offset;
   2688 
   2689     glLoadMatrixx(
   2690         (GLfixed *)m
   2691     );
   2692 
   2693 exit:
   2694     if (m_base) {
   2695         _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
   2696             JNI_ABORT);
   2697     }
   2698     if (_exception) {
   2699         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2700     }
   2701 }
   2702 
   2703 /* void glLoadMatrixx ( const GLfixed *m ) */
   2704 static void
   2705 android_glLoadMatrixx__Ljava_nio_IntBuffer_2
   2706   (JNIEnv *_env, jobject _this, jobject m_buf) {
   2707     jarray _array = (jarray) 0;
   2708     jint _bufferOffset = (jint) 0;
   2709     jint _remaining;
   2710     GLfixed *m = (GLfixed *) 0;
   2711 
   2712     m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
   2713     if (m == NULL) {
   2714         char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   2715         m = (GLfixed *) (_mBase + _bufferOffset);
   2716     }
   2717     glLoadMatrixx(
   2718         (GLfixed *)m
   2719     );
   2720     if (_array) {
   2721         releasePointer(_env, _array, m, JNI_FALSE);
   2722     }
   2723 }
   2724 
   2725 /* void glLogicOp ( GLenum opcode ) */
   2726 static void
   2727 android_glLogicOp__I
   2728   (JNIEnv *_env, jobject _this, jint opcode) {
   2729     glLogicOp(
   2730         (GLenum)opcode
   2731     );
   2732 }
   2733 
   2734 /* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */
   2735 static void
   2736 android_glMaterialf__IIF
   2737   (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) {
   2738     glMaterialf(
   2739         (GLenum)face,
   2740         (GLenum)pname,
   2741         (GLfloat)param
   2742     );
   2743 }
   2744 
   2745 /* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
   2746 static void
   2747 android_glMaterialfv__II_3FI
   2748   (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
   2749     jint _exception = 0;
   2750     const char * _exceptionType = NULL;
   2751     const char * _exceptionMessage = NULL;
   2752     GLfloat *params_base = (GLfloat *) 0;
   2753     jint _remaining;
   2754     GLfloat *params = (GLfloat *) 0;
   2755 
   2756     if (!params_ref) {
   2757         _exception = 1;
   2758         _exceptionType = "java/lang/IllegalArgumentException";
   2759         _exceptionMessage = "params == null";
   2760         goto exit;
   2761     }
   2762     if (offset < 0) {
   2763         _exception = 1;
   2764         _exceptionType = "java/lang/IllegalArgumentException";
   2765         _exceptionMessage = "offset < 0";
   2766         goto exit;
   2767     }
   2768     _remaining = _env->GetArrayLength(params_ref) - offset;
   2769     int _needed;
   2770     switch (pname) {
   2771 #if defined(GL_SHININESS)
   2772         case GL_SHININESS:
   2773 #endif // defined(GL_SHININESS)
   2774             _needed = 1;
   2775             break;
   2776 #if defined(GL_AMBIENT)
   2777         case GL_AMBIENT:
   2778 #endif // defined(GL_AMBIENT)
   2779 #if defined(GL_DIFFUSE)
   2780         case GL_DIFFUSE:
   2781 #endif // defined(GL_DIFFUSE)
   2782 #if defined(GL_SPECULAR)
   2783         case GL_SPECULAR:
   2784 #endif // defined(GL_SPECULAR)
   2785 #if defined(GL_EMISSION)
   2786         case GL_EMISSION:
   2787 #endif // defined(GL_EMISSION)
   2788 #if defined(GL_AMBIENT_AND_DIFFUSE)
   2789         case GL_AMBIENT_AND_DIFFUSE:
   2790 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
   2791             _needed = 4;
   2792             break;
   2793         default:
   2794             _needed = 1;
   2795             break;
   2796     }
   2797     if (_remaining < _needed) {
   2798         _exception = 1;
   2799         _exceptionType = "java/lang/IllegalArgumentException";
   2800         _exceptionMessage = "length - offset < needed";
   2801         goto exit;
   2802     }
   2803     params_base = (GLfloat *)
   2804         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   2805     params = params_base + offset;
   2806 
   2807     glMaterialfv(
   2808         (GLenum)face,
   2809         (GLenum)pname,
   2810         (GLfloat *)params
   2811     );
   2812 
   2813 exit:
   2814     if (params_base) {
   2815         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   2816             JNI_ABORT);
   2817     }
   2818     if (_exception) {
   2819         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2820     }
   2821 }
   2822 
   2823 /* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
   2824 static void
   2825 android_glMaterialfv__IILjava_nio_FloatBuffer_2
   2826   (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
   2827     jint _exception = 0;
   2828     const char * _exceptionType = NULL;
   2829     const char * _exceptionMessage = NULL;
   2830     jarray _array = (jarray) 0;
   2831     jint _bufferOffset = (jint) 0;
   2832     jint _remaining;
   2833     GLfloat *params = (GLfloat *) 0;
   2834 
   2835     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   2836     int _needed;
   2837     switch (pname) {
   2838 #if defined(GL_SHININESS)
   2839         case GL_SHININESS:
   2840 #endif // defined(GL_SHININESS)
   2841             _needed = 1;
   2842             break;
   2843 #if defined(GL_AMBIENT)
   2844         case GL_AMBIENT:
   2845 #endif // defined(GL_AMBIENT)
   2846 #if defined(GL_DIFFUSE)
   2847         case GL_DIFFUSE:
   2848 #endif // defined(GL_DIFFUSE)
   2849 #if defined(GL_SPECULAR)
   2850         case GL_SPECULAR:
   2851 #endif // defined(GL_SPECULAR)
   2852 #if defined(GL_EMISSION)
   2853         case GL_EMISSION:
   2854 #endif // defined(GL_EMISSION)
   2855 #if defined(GL_AMBIENT_AND_DIFFUSE)
   2856         case GL_AMBIENT_AND_DIFFUSE:
   2857 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
   2858             _needed = 4;
   2859             break;
   2860         default:
   2861             _needed = 1;
   2862             break;
   2863     }
   2864     if (_remaining < _needed) {
   2865         _exception = 1;
   2866         _exceptionType = "java/lang/IllegalArgumentException";
   2867         _exceptionMessage = "remaining() < needed";
   2868         goto exit;
   2869     }
   2870     if (params == NULL) {
   2871         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   2872         params = (GLfloat *) (_paramsBase + _bufferOffset);
   2873     }
   2874     glMaterialfv(
   2875         (GLenum)face,
   2876         (GLenum)pname,
   2877         (GLfloat *)params
   2878     );
   2879 
   2880 exit:
   2881     if (_array) {
   2882         releasePointer(_env, _array, params, JNI_FALSE);
   2883     }
   2884     if (_exception) {
   2885         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2886     }
   2887 }
   2888 
   2889 /* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */
   2890 static void
   2891 android_glMaterialx__III
   2892   (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) {
   2893     glMaterialx(
   2894         (GLenum)face,
   2895         (GLenum)pname,
   2896         (GLfixed)param
   2897     );
   2898 }
   2899 
   2900 /* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
   2901 static void
   2902 android_glMaterialxv__II_3II
   2903   (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
   2904     jint _exception = 0;
   2905     const char * _exceptionType = NULL;
   2906     const char * _exceptionMessage = NULL;
   2907     GLfixed *params_base = (GLfixed *) 0;
   2908     jint _remaining;
   2909     GLfixed *params = (GLfixed *) 0;
   2910 
   2911     if (!params_ref) {
   2912         _exception = 1;
   2913         _exceptionType = "java/lang/IllegalArgumentException";
   2914         _exceptionMessage = "params == null";
   2915         goto exit;
   2916     }
   2917     if (offset < 0) {
   2918         _exception = 1;
   2919         _exceptionType = "java/lang/IllegalArgumentException";
   2920         _exceptionMessage = "offset < 0";
   2921         goto exit;
   2922     }
   2923     _remaining = _env->GetArrayLength(params_ref) - offset;
   2924     int _needed;
   2925     switch (pname) {
   2926 #if defined(GL_SHININESS)
   2927         case GL_SHININESS:
   2928 #endif // defined(GL_SHININESS)
   2929             _needed = 1;
   2930             break;
   2931 #if defined(GL_AMBIENT)
   2932         case GL_AMBIENT:
   2933 #endif // defined(GL_AMBIENT)
   2934 #if defined(GL_DIFFUSE)
   2935         case GL_DIFFUSE:
   2936 #endif // defined(GL_DIFFUSE)
   2937 #if defined(GL_SPECULAR)
   2938         case GL_SPECULAR:
   2939 #endif // defined(GL_SPECULAR)
   2940 #if defined(GL_EMISSION)
   2941         case GL_EMISSION:
   2942 #endif // defined(GL_EMISSION)
   2943 #if defined(GL_AMBIENT_AND_DIFFUSE)
   2944         case GL_AMBIENT_AND_DIFFUSE:
   2945 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
   2946             _needed = 4;
   2947             break;
   2948         default:
   2949             _needed = 1;
   2950             break;
   2951     }
   2952     if (_remaining < _needed) {
   2953         _exception = 1;
   2954         _exceptionType = "java/lang/IllegalArgumentException";
   2955         _exceptionMessage = "length - offset < needed";
   2956         goto exit;
   2957     }
   2958     params_base = (GLfixed *)
   2959         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   2960     params = params_base + offset;
   2961 
   2962     glMaterialxv(
   2963         (GLenum)face,
   2964         (GLenum)pname,
   2965         (GLfixed *)params
   2966     );
   2967 
   2968 exit:
   2969     if (params_base) {
   2970         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   2971             JNI_ABORT);
   2972     }
   2973     if (_exception) {
   2974         jniThrowException(_env, _exceptionType, _exceptionMessage);
   2975     }
   2976 }
   2977 
   2978 /* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
   2979 static void
   2980 android_glMaterialxv__IILjava_nio_IntBuffer_2
   2981   (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
   2982     jint _exception = 0;
   2983     const char * _exceptionType = NULL;
   2984     const char * _exceptionMessage = NULL;
   2985     jarray _array = (jarray) 0;
   2986     jint _bufferOffset = (jint) 0;
   2987     jint _remaining;
   2988     GLfixed *params = (GLfixed *) 0;
   2989 
   2990     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   2991     int _needed;
   2992     switch (pname) {
   2993 #if defined(GL_SHININESS)
   2994         case GL_SHININESS:
   2995 #endif // defined(GL_SHININESS)
   2996             _needed = 1;
   2997             break;
   2998 #if defined(GL_AMBIENT)
   2999         case GL_AMBIENT:
   3000 #endif // defined(GL_AMBIENT)
   3001 #if defined(GL_DIFFUSE)
   3002         case GL_DIFFUSE:
   3003 #endif // defined(GL_DIFFUSE)
   3004 #if defined(GL_SPECULAR)
   3005         case GL_SPECULAR:
   3006 #endif // defined(GL_SPECULAR)
   3007 #if defined(GL_EMISSION)
   3008         case GL_EMISSION:
   3009 #endif // defined(GL_EMISSION)
   3010 #if defined(GL_AMBIENT_AND_DIFFUSE)
   3011         case GL_AMBIENT_AND_DIFFUSE:
   3012 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
   3013             _needed = 4;
   3014             break;
   3015         default:
   3016             _needed = 1;
   3017             break;
   3018     }
   3019     if (_remaining < _needed) {
   3020         _exception = 1;
   3021         _exceptionType = "java/lang/IllegalArgumentException";
   3022         _exceptionMessage = "remaining() < needed";
   3023         goto exit;
   3024     }
   3025     if (params == NULL) {
   3026         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   3027         params = (GLfixed *) (_paramsBase + _bufferOffset);
   3028     }
   3029     glMaterialxv(
   3030         (GLenum)face,
   3031         (GLenum)pname,
   3032         (GLfixed *)params
   3033     );
   3034 
   3035 exit:
   3036     if (_array) {
   3037         releasePointer(_env, _array, params, JNI_FALSE);
   3038     }
   3039     if (_exception) {
   3040         jniThrowException(_env, _exceptionType, _exceptionMessage);
   3041     }
   3042 }
   3043 
   3044 /* void glMatrixMode ( GLenum mode ) */
   3045 static void
   3046 android_glMatrixMode__I
   3047   (JNIEnv *_env, jobject _this, jint mode) {
   3048     glMatrixMode(
   3049         (GLenum)mode
   3050     );
   3051 }
   3052 
   3053 /* void glMultMatrixf ( const GLfloat *m ) */
   3054 static void
   3055 android_glMultMatrixf___3FI
   3056   (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
   3057     jint _exception = 0;
   3058     const char * _exceptionType = NULL;
   3059     const char * _exceptionMessage = NULL;
   3060     GLfloat *m_base = (GLfloat *) 0;
   3061     jint _remaining;
   3062     GLfloat *m = (GLfloat *) 0;
   3063 
   3064     if (!m_ref) {
   3065         _exception = 1;
   3066         _exceptionType = "java/lang/IllegalArgumentException";
   3067         _exceptionMessage = "m == null";
   3068         goto exit;
   3069     }
   3070     if (offset < 0) {
   3071         _exception = 1;
   3072         _exceptionType = "java/lang/IllegalArgumentException";
   3073         _exceptionMessage = "offset < 0";
   3074         goto exit;
   3075     }
   3076     _remaining = _env->GetArrayLength(m_ref) - offset;
   3077     m_base = (GLfloat *)
   3078         _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
   3079     m = m_base + offset;
   3080 
   3081     glMultMatrixf(
   3082         (GLfloat *)m
   3083     );
   3084 
   3085 exit:
   3086     if (m_base) {
   3087         _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
   3088             JNI_ABORT);
   3089     }
   3090     if (_exception) {
   3091         jniThrowException(_env, _exceptionType, _exceptionMessage);
   3092     }
   3093 }
   3094 
   3095 /* void glMultMatrixf ( const GLfloat *m ) */
   3096 static void
   3097 android_glMultMatrixf__Ljava_nio_FloatBuffer_2
   3098   (JNIEnv *_env, jobject _this, jobject m_buf) {
   3099     jarray _array = (jarray) 0;
   3100     jint _bufferOffset = (jint) 0;
   3101     jint _remaining;
   3102     GLfloat *m = (GLfloat *) 0;
   3103 
   3104     m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
   3105     if (m == NULL) {
   3106         char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   3107         m = (GLfloat *) (_mBase + _bufferOffset);
   3108     }
   3109     glMultMatrixf(
   3110         (GLfloat *)m
   3111     );
   3112     if (_array) {
   3113         releasePointer(_env, _array, m, JNI_FALSE);
   3114     }
   3115 }
   3116 
   3117 /* void glMultMatrixx ( const GLfixed *m ) */
   3118 static void
   3119 android_glMultMatrixx___3II
   3120   (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
   3121     jint _exception = 0;
   3122     const char * _exceptionType = NULL;
   3123     const char * _exceptionMessage = NULL;
   3124     GLfixed *m_base = (GLfixed *) 0;
   3125     jint _remaining;
   3126     GLfixed *m = (GLfixed *) 0;
   3127 
   3128     if (!m_ref) {
   3129         _exception = 1;
   3130         _exceptionType = "java/lang/IllegalArgumentException";
   3131         _exceptionMessage = "m == null";
   3132         goto exit;
   3133     }
   3134     if (offset < 0) {
   3135         _exception = 1;
   3136         _exceptionType = "java/lang/IllegalArgumentException";
   3137         _exceptionMessage = "offset < 0";
   3138         goto exit;
   3139     }
   3140     _remaining = _env->GetArrayLength(m_ref) - offset;
   3141     m_base = (GLfixed *)
   3142         _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
   3143     m = m_base + offset;
   3144 
   3145     glMultMatrixx(
   3146         (GLfixed *)m
   3147     );
   3148 
   3149 exit:
   3150     if (m_base) {
   3151         _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
   3152             JNI_ABORT);
   3153     }
   3154     if (_exception) {
   3155         jniThrowException(_env, _exceptionType, _exceptionMessage);
   3156     }
   3157 }
   3158 
   3159 /* void glMultMatrixx ( const GLfixed *m ) */
   3160 static void
   3161 android_glMultMatrixx__Ljava_nio_IntBuffer_2
   3162   (JNIEnv *_env, jobject _this, jobject m_buf) {
   3163     jarray _array = (jarray) 0;
   3164     jint _bufferOffset = (jint) 0;
   3165     jint _remaining;
   3166     GLfixed *m = (GLfixed *) 0;
   3167 
   3168     m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
   3169     if (m == NULL) {
   3170         char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   3171         m = (GLfixed *) (_mBase + _bufferOffset);
   3172     }
   3173     glMultMatrixx(
   3174         (GLfixed *)m
   3175     );
   3176     if (_array) {
   3177         releasePointer(_env, _array, m, JNI_FALSE);
   3178     }
   3179 }
   3180 
   3181 /* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */
   3182 static void
   3183 android_glMultiTexCoord4f__IFFFF
   3184   (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) {
   3185     glMultiTexCoord4f(
   3186         (GLenum)target,
   3187         (GLfloat)s,
   3188         (GLfloat)t,
   3189         (GLfloat)r,
   3190         (GLfloat)q
   3191     );
   3192 }
   3193 
   3194 /* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */
   3195 static void
   3196 android_glMultiTexCoord4x__IIIII
   3197   (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) {
   3198     glMultiTexCoord4x(
   3199         (GLenum)target,
   3200         (GLfixed)s,
   3201         (GLfixed)t,
   3202         (GLfixed)r,
   3203         (GLfixed)q
   3204     );
   3205 }
   3206 
   3207 /* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */
   3208 static void
   3209 android_glNormal3f__FFF
   3210   (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) {
   3211     glNormal3f(
   3212         (GLfloat)nx,
   3213         (GLfloat)ny,
   3214         (GLfloat)nz
   3215     );
   3216 }
   3217 
   3218 /* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */
   3219 static void
   3220 android_glNormal3x__III
   3221   (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) {
   3222     glNormal3x(
   3223         (GLfixed)nx,
   3224         (GLfixed)ny,
   3225         (GLfixed)nz
   3226     );
   3227 }
   3228 
   3229 /* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
   3230 static void
   3231 android_glNormalPointerBounds__IILjava_nio_Buffer_2I
   3232   (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
   3233     jarray _array = (jarray) 0;
   3234     jint _bufferOffset = (jint) 0;
   3235     jint _remaining;
   3236     GLvoid *pointer = (GLvoid *) 0;
   3237 
   3238     if (pointer_buf) {
   3239         pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
   3240         if ( ! pointer ) {
   3241             return;
   3242         }
   3243     }
   3244     glNormalPointerBounds(
   3245         (GLenum)type,
   3246         (GLsizei)stride,
   3247         (GLvoid *)pointer,
   3248         (GLsizei)remaining
   3249     );
   3250 }
   3251 
   3252 /* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
   3253 static void
   3254 android_glOrthof__FFFFFF
   3255   (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
   3256     glOrthof(
   3257         (GLfloat)left,
   3258         (GLfloat)right,
   3259         (GLfloat)bottom,
   3260         (GLfloat)top,
   3261         (GLfloat)zNear,
   3262         (GLfloat)zFar
   3263     );
   3264 }
   3265 
   3266 /* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
   3267 static void
   3268 android_glOrthox__IIIIII
   3269   (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
   3270     glOrthox(
   3271         (GLfixed)left,
   3272         (GLfixed)right,
   3273         (GLfixed)bottom,
   3274         (GLfixed)top,
   3275         (GLfixed)zNear,
   3276         (GLfixed)zFar
   3277     );
   3278 }
   3279 
   3280 /* void glPixelStorei ( GLenum pname, GLint param ) */
   3281 static void
   3282 android_glPixelStorei__II
   3283   (JNIEnv *_env, jobject _this, jint pname, jint param) {
   3284     glPixelStorei(
   3285         (GLenum)pname,
   3286         (GLint)param
   3287     );
   3288 }
   3289 
   3290 /* void glPointSize ( GLfloat size ) */
   3291 static void
   3292 android_glPointSize__F
   3293   (JNIEnv *_env, jobject _this, jfloat size) {
   3294     glPointSize(
   3295         (GLfloat)size
   3296     );
   3297 }
   3298 
   3299 /* void glPointSizex ( GLfixed size ) */
   3300 static void
   3301 android_glPointSizex__I
   3302   (JNIEnv *_env, jobject _this, jint size) {
   3303     glPointSizex(
   3304         (GLfixed)size
   3305     );
   3306 }
   3307 
   3308 /* void glPolygonOffset ( GLfloat factor, GLfloat units ) */
   3309 static void
   3310 android_glPolygonOffset__FF
   3311   (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) {
   3312     glPolygonOffset(
   3313         (GLfloat)factor,
   3314         (GLfloat)units
   3315     );
   3316 }
   3317 
   3318 /* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */
   3319 static void
   3320 android_glPolygonOffsetx__II
   3321   (JNIEnv *_env, jobject _this, jint factor, jint units) {
   3322     glPolygonOffsetx(
   3323         (GLfixed)factor,
   3324         (GLfixed)units
   3325     );
   3326 }
   3327 
   3328 /* void glPopMatrix ( void ) */
   3329 static void
   3330 android_glPopMatrix__
   3331   (JNIEnv *_env, jobject _this) {
   3332     glPopMatrix();
   3333 }
   3334 
   3335 /* void glPushMatrix ( void ) */
   3336 static void
   3337 android_glPushMatrix__
   3338   (JNIEnv *_env, jobject _this) {
   3339     glPushMatrix();
   3340 }
   3341 
   3342 /* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */
   3343 static void
   3344 android_glReadPixels__IIIIIILjava_nio_Buffer_2
   3345   (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) {
   3346     jarray _array = (jarray) 0;
   3347     jint _bufferOffset = (jint) 0;
   3348     jint _remaining;
   3349     GLvoid *pixels = (GLvoid *) 0;
   3350 
   3351     pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
   3352     if (pixels == NULL) {
   3353         char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   3354         pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
   3355     }
   3356     glReadPixels(
   3357         (GLint)x,
   3358         (GLint)y,
   3359         (GLsizei)width,
   3360         (GLsizei)height,
   3361         (GLenum)format,
   3362         (GLenum)type,
   3363         (GLvoid *)pixels
   3364     );
   3365     if (_array) {
   3366         releasePointer(_env, _array, pixels, JNI_TRUE);
   3367     }
   3368 }
   3369 
   3370 /* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */
   3371 static void
   3372 android_glRotatef__FFFF
   3373   (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) {
   3374     glRotatef(
   3375         (GLfloat)angle,
   3376         (GLfloat)x,
   3377         (GLfloat)y,
   3378         (GLfloat)z
   3379     );
   3380 }
   3381 
   3382 /* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */
   3383 static void
   3384 android_glRotatex__IIII
   3385   (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) {
   3386     glRotatex(
   3387         (GLfixed)angle,
   3388         (GLfixed)x,
   3389         (GLfixed)y,
   3390         (GLfixed)z
   3391     );
   3392 }
   3393 
   3394 /* void glSampleCoverage ( GLclampf value, GLboolean invert ) */
   3395 static void
   3396 android_glSampleCoverage__FZ
   3397   (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) {
   3398     glSampleCoverage(
   3399         (GLclampf)value,
   3400         (GLboolean)invert
   3401     );
   3402 }
   3403 
   3404 /* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */
   3405 static void
   3406 android_glSampleCoveragex__IZ
   3407   (JNIEnv *_env, jobject _this, jint value, jboolean invert) {
   3408     glSampleCoveragex(
   3409         (GLclampx)value,
   3410         (GLboolean)invert
   3411     );
   3412 }
   3413 
   3414 /* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */
   3415 static void
   3416 android_glScalef__FFF
   3417   (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
   3418     glScalef(
   3419         (GLfloat)x,
   3420         (GLfloat)y,
   3421         (GLfloat)z
   3422     );
   3423 }
   3424 
   3425 /* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */
   3426 static void
   3427 android_glScalex__III
   3428   (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
   3429     glScalex(
   3430         (GLfixed)x,
   3431         (GLfixed)y,
   3432         (GLfixed)z
   3433     );
   3434 }
   3435 
   3436 /* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */
   3437 static void
   3438 android_glScissor__IIII
   3439   (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
   3440     glScissor(
   3441         (GLint)x,
   3442         (GLint)y,
   3443         (GLsizei)width,
   3444         (GLsizei)height
   3445     );
   3446 }
   3447 
   3448 /* void glShadeModel ( GLenum mode ) */
   3449 static void
   3450 android_glShadeModel__I
   3451   (JNIEnv *_env, jobject _this, jint mode) {
   3452     glShadeModel(
   3453         (GLenum)mode
   3454     );
   3455 }
   3456 
   3457 /* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */
   3458 static void
   3459 android_glStencilFunc__III
   3460   (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) {
   3461     glStencilFunc(
   3462         (GLenum)func,
   3463         (GLint)ref,
   3464         (GLuint)mask
   3465     );
   3466 }
   3467 
   3468 /* void glStencilMask ( GLuint mask ) */
   3469 static void
   3470 android_glStencilMask__I
   3471   (JNIEnv *_env, jobject _this, jint mask) {
   3472     glStencilMask(
   3473         (GLuint)mask
   3474     );
   3475 }
   3476 
   3477 /* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */
   3478 static void
   3479 android_glStencilOp__III
   3480   (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) {
   3481     glStencilOp(
   3482         (GLenum)fail,
   3483         (GLenum)zfail,
   3484         (GLenum)zpass
   3485     );
   3486 }
   3487 
   3488 /* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
   3489 static void
   3490 android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I
   3491   (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
   3492     jarray _array = (jarray) 0;
   3493     jint _bufferOffset = (jint) 0;
   3494     jint _remaining;
   3495     GLvoid *pointer = (GLvoid *) 0;
   3496 
   3497     if (pointer_buf) {
   3498         pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
   3499         if ( ! pointer ) {
   3500             return;
   3501         }
   3502     }
   3503     glTexCoordPointerBounds(
   3504         (GLint)size,
   3505         (GLenum)type,
   3506         (GLsizei)stride,
   3507         (GLvoid *)pointer,
   3508         (GLsizei)remaining
   3509     );
   3510 }
   3511 
   3512 /* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */
   3513 static void
   3514 android_glTexEnvf__IIF
   3515   (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
   3516     glTexEnvf(
   3517         (GLenum)target,
   3518         (GLenum)pname,
   3519         (GLfloat)param
   3520     );
   3521 }
   3522 
   3523 /* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
   3524 static void
   3525 android_glTexEnvfv__II_3FI
   3526   (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
   3527     jint _exception = 0;
   3528     const char * _exceptionType = NULL;
   3529     const char * _exceptionMessage = NULL;
   3530     GLfloat *params_base = (GLfloat *) 0;
   3531     jint _remaining;
   3532     GLfloat *params = (GLfloat *) 0;
   3533 
   3534     if (!params_ref) {
   3535         _exception = 1;
   3536         _exceptionType = "java/lang/IllegalArgumentException";
   3537         _exceptionMessage = "params == null";
   3538         goto exit;
   3539     }
   3540     if (offset < 0) {
   3541         _exception = 1;
   3542         _exceptionType = "java/lang/IllegalArgumentException";
   3543         _exceptionMessage = "offset < 0";
   3544         goto exit;
   3545     }
   3546     _remaining = _env->GetArrayLength(params_ref) - offset;
   3547     int _needed;
   3548     switch (pname) {
   3549 #if defined(GL_TEXTURE_ENV_MODE)
   3550         case GL_TEXTURE_ENV_MODE:
   3551 #endif // defined(GL_TEXTURE_ENV_MODE)
   3552 #if defined(GL_COMBINE_RGB)
   3553         case GL_COMBINE_RGB:
   3554 #endif // defined(GL_COMBINE_RGB)
   3555 #if defined(GL_COMBINE_ALPHA)
   3556         case GL_COMBINE_ALPHA:
   3557 #endif // defined(GL_COMBINE_ALPHA)
   3558             _needed = 1;
   3559             break;
   3560 #if defined(GL_TEXTURE_ENV_COLOR)
   3561         case GL_TEXTURE_ENV_COLOR:
   3562 #endif // defined(GL_TEXTURE_ENV_COLOR)
   3563             _needed = 4;
   3564             break;
   3565         default:
   3566             _needed = 1;
   3567             break;
   3568     }
   3569     if (_remaining < _needed) {
   3570         _exception = 1;
   3571         _exceptionType = "java/lang/IllegalArgumentException";
   3572         _exceptionMessage = "length - offset < needed";
   3573         goto exit;
   3574     }
   3575     params_base = (GLfloat *)
   3576         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   3577     params = params_base + offset;
   3578 
   3579     glTexEnvfv(
   3580         (GLenum)target,
   3581         (GLenum)pname,
   3582         (GLfloat *)params
   3583     );
   3584 
   3585 exit:
   3586     if (params_base) {
   3587         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   3588             JNI_ABORT);
   3589     }
   3590     if (_exception) {
   3591         jniThrowException(_env, _exceptionType, _exceptionMessage);
   3592     }
   3593 }
   3594 
   3595 /* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
   3596 static void
   3597 android_glTexEnvfv__IILjava_nio_FloatBuffer_2
   3598   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   3599     jint _exception = 0;
   3600     const char * _exceptionType = NULL;
   3601     const char * _exceptionMessage = NULL;
   3602     jarray _array = (jarray) 0;
   3603     jint _bufferOffset = (jint) 0;
   3604     jint _remaining;
   3605     GLfloat *params = (GLfloat *) 0;
   3606 
   3607     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   3608     int _needed;
   3609     switch (pname) {
   3610 #if defined(GL_TEXTURE_ENV_MODE)
   3611         case GL_TEXTURE_ENV_MODE:
   3612 #endif // defined(GL_TEXTURE_ENV_MODE)
   3613 #if defined(GL_COMBINE_RGB)
   3614         case GL_COMBINE_RGB:
   3615 #endif // defined(GL_COMBINE_RGB)
   3616 #if defined(GL_COMBINE_ALPHA)
   3617         case GL_COMBINE_ALPHA:
   3618 #endif // defined(GL_COMBINE_ALPHA)
   3619             _needed = 1;
   3620             break;
   3621 #if defined(GL_TEXTURE_ENV_COLOR)
   3622         case GL_TEXTURE_ENV_COLOR:
   3623 #endif // defined(GL_TEXTURE_ENV_COLOR)
   3624             _needed = 4;
   3625             break;
   3626         default:
   3627             _needed = 1;
   3628             break;
   3629     }
   3630     if (_remaining < _needed) {
   3631         _exception = 1;
   3632         _exceptionType = "java/lang/IllegalArgumentException";
   3633         _exceptionMessage = "remaining() < needed";
   3634         goto exit;
   3635     }
   3636     if (params == NULL) {
   3637         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   3638         params = (GLfloat *) (_paramsBase + _bufferOffset);
   3639     }
   3640     glTexEnvfv(
   3641         (GLenum)target,
   3642         (GLenum)pname,
   3643         (GLfloat *)params
   3644     );
   3645 
   3646 exit:
   3647     if (_array) {
   3648         releasePointer(_env, _array, params, JNI_FALSE);
   3649     }
   3650     if (_exception) {
   3651         jniThrowException(_env, _exceptionType, _exceptionMessage);
   3652     }
   3653 }
   3654 
   3655 /* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */
   3656 static void
   3657 android_glTexEnvx__III
   3658   (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
   3659     glTexEnvx(
   3660         (GLenum)target,
   3661         (GLenum)pname,
   3662         (GLfixed)param
   3663     );
   3664 }
   3665 
   3666 /* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
   3667 static void
   3668 android_glTexEnvxv__II_3II
   3669   (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
   3670     jint _exception = 0;
   3671     const char * _exceptionType = NULL;
   3672     const char * _exceptionMessage = NULL;
   3673     GLfixed *params_base = (GLfixed *) 0;
   3674     jint _remaining;
   3675     GLfixed *params = (GLfixed *) 0;
   3676 
   3677     if (!params_ref) {
   3678         _exception = 1;
   3679         _exceptionType = "java/lang/IllegalArgumentException";
   3680         _exceptionMessage = "params == null";
   3681         goto exit;
   3682     }
   3683     if (offset < 0) {
   3684         _exception = 1;
   3685         _exceptionType = "java/lang/IllegalArgumentException";
   3686         _exceptionMessage = "offset < 0";
   3687         goto exit;
   3688     }
   3689     _remaining = _env->GetArrayLength(params_ref) - offset;
   3690     int _needed;
   3691     switch (pname) {
   3692 #if defined(GL_TEXTURE_ENV_MODE)
   3693         case GL_TEXTURE_ENV_MODE:
   3694 #endif // defined(GL_TEXTURE_ENV_MODE)
   3695 #if defined(GL_COMBINE_RGB)
   3696         case GL_COMBINE_RGB:
   3697 #endif // defined(GL_COMBINE_RGB)
   3698 #if defined(GL_COMBINE_ALPHA)
   3699         case GL_COMBINE_ALPHA:
   3700 #endif // defined(GL_COMBINE_ALPHA)
   3701             _needed = 1;
   3702             break;
   3703 #if defined(GL_TEXTURE_ENV_COLOR)
   3704         case GL_TEXTURE_ENV_COLOR:
   3705 #endif // defined(GL_TEXTURE_ENV_COLOR)
   3706             _needed = 4;
   3707             break;
   3708         default:
   3709             _needed = 1;
   3710             break;
   3711     }
   3712     if (_remaining < _needed) {
   3713         _exception = 1;
   3714         _exceptionType = "java/lang/IllegalArgumentException";
   3715         _exceptionMessage = "length - offset < needed";
   3716         goto exit;
   3717     }
   3718     params_base = (GLfixed *)
   3719         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   3720     params = params_base + offset;
   3721 
   3722     glTexEnvxv(
   3723         (GLenum)target,
   3724         (GLenum)pname,
   3725         (GLfixed *)params
   3726     );
   3727 
   3728 exit:
   3729     if (params_base) {
   3730         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   3731             JNI_ABORT);
   3732     }
   3733     if (_exception) {
   3734         jniThrowException(_env, _exceptionType, _exceptionMessage);
   3735     }
   3736 }
   3737 
   3738 /* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
   3739 static void
   3740 android_glTexEnvxv__IILjava_nio_IntBuffer_2
   3741   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   3742     jint _exception = 0;
   3743     const char * _exceptionType = NULL;
   3744     const char * _exceptionMessage = NULL;
   3745     jarray _array = (jarray) 0;
   3746     jint _bufferOffset = (jint) 0;
   3747     jint _remaining;
   3748     GLfixed *params = (GLfixed *) 0;
   3749 
   3750     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   3751     int _needed;
   3752     switch (pname) {
   3753 #if defined(GL_TEXTURE_ENV_MODE)
   3754         case GL_TEXTURE_ENV_MODE:
   3755 #endif // defined(GL_TEXTURE_ENV_MODE)
   3756 #if defined(GL_COMBINE_RGB)
   3757         case GL_COMBINE_RGB:
   3758 #endif // defined(GL_COMBINE_RGB)
   3759 #if defined(GL_COMBINE_ALPHA)
   3760         case GL_COMBINE_ALPHA:
   3761 #endif // defined(GL_COMBINE_ALPHA)
   3762             _needed = 1;
   3763             break;
   3764 #if defined(GL_TEXTURE_ENV_COLOR)
   3765         case GL_TEXTURE_ENV_COLOR:
   3766 #endif // defined(GL_TEXTURE_ENV_COLOR)
   3767             _needed = 4;
   3768             break;
   3769         default:
   3770             _needed = 1;
   3771             break;
   3772     }
   3773     if (_remaining < _needed) {
   3774         _exception = 1;
   3775         _exceptionType = "java/lang/IllegalArgumentException";
   3776         _exceptionMessage = "remaining() < needed";
   3777         goto exit;
   3778     }
   3779     if (params == NULL) {
   3780         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   3781         params = (GLfixed *) (_paramsBase + _bufferOffset);
   3782     }
   3783     glTexEnvxv(
   3784         (GLenum)target,
   3785         (GLenum)pname,
   3786         (GLfixed *)params
   3787     );
   3788 
   3789 exit:
   3790     if (_array) {
   3791         releasePointer(_env, _array, params, JNI_FALSE);
   3792     }
   3793     if (_exception) {
   3794         jniThrowException(_env, _exceptionType, _exceptionMessage);
   3795     }
   3796 }
   3797 
   3798 /* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */
   3799 static void
   3800 android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2
   3801   (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) {
   3802     jarray _array = (jarray) 0;
   3803     jint _bufferOffset = (jint) 0;
   3804     jint _remaining;
   3805     GLvoid *pixels = (GLvoid *) 0;
   3806 
   3807     if (pixels_buf) {
   3808         pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
   3809     }
   3810     if (pixels_buf && pixels == NULL) {
   3811         char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   3812         pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
   3813     }
   3814     glTexImage2D(
   3815         (GLenum)target,
   3816         (GLint)level,
   3817         (GLint)internalformat,
   3818         (GLsizei)width,
   3819         (GLsizei)height,
   3820         (GLint)border,
   3821         (GLenum)format,
   3822         (GLenum)type,
   3823         (GLvoid *)pixels
   3824     );
   3825     if (_array) {
   3826         releasePointer(_env, _array, pixels, JNI_FALSE);
   3827     }
   3828 }
   3829 
   3830 /* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */
   3831 static void
   3832 android_glTexParameterf__IIF
   3833   (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
   3834     glTexParameterf(
   3835         (GLenum)target,
   3836         (GLenum)pname,
   3837         (GLfloat)param
   3838     );
   3839 }
   3840 
   3841 /* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */
   3842 static void
   3843 android_glTexParameterx__III
   3844   (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
   3845     glTexParameterx(
   3846         (GLenum)target,
   3847         (GLenum)pname,
   3848         (GLfixed)param
   3849     );
   3850 }
   3851 
   3852 /* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */
   3853 static void
   3854 android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
   3855   (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) {
   3856     jarray _array = (jarray) 0;
   3857     jint _bufferOffset = (jint) 0;
   3858     jint _remaining;
   3859     GLvoid *pixels = (GLvoid *) 0;
   3860 
   3861     if (pixels_buf) {
   3862         pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
   3863     }
   3864     if (pixels_buf && pixels == NULL) {
   3865         char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   3866         pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
   3867     }
   3868     glTexSubImage2D(
   3869         (GLenum)target,
   3870         (GLint)level,
   3871         (GLint)xoffset,
   3872         (GLint)yoffset,
   3873         (GLsizei)width,
   3874         (GLsizei)height,
   3875         (GLenum)format,
   3876         (GLenum)type,
   3877         (GLvoid *)pixels
   3878     );
   3879     if (_array) {
   3880         releasePointer(_env, _array, pixels, JNI_FALSE);
   3881     }
   3882 }
   3883 
   3884 /* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */
   3885 static void
   3886 android_glTranslatef__FFF
   3887   (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
   3888     glTranslatef(
   3889         (GLfloat)x,
   3890         (GLfloat)y,
   3891         (GLfloat)z
   3892     );
   3893 }
   3894 
   3895 /* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */
   3896 static void
   3897 android_glTranslatex__III
   3898   (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
   3899     glTranslatex(
   3900         (GLfixed)x,
   3901         (GLfixed)y,
   3902         (GLfixed)z
   3903     );
   3904 }
   3905 
   3906 /* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
   3907 static void
   3908 android_glVertexPointerBounds__IIILjava_nio_Buffer_2I
   3909   (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
   3910     jarray _array = (jarray) 0;
   3911     jint _bufferOffset = (jint) 0;
   3912     jint _remaining;
   3913     GLvoid *pointer = (GLvoid *) 0;
   3914 
   3915     if (pointer_buf) {
   3916         pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
   3917         if ( ! pointer ) {
   3918             return;
   3919         }
   3920     }
   3921     glVertexPointerBounds(
   3922         (GLint)size,
   3923         (GLenum)type,
   3924         (GLsizei)stride,
   3925         (GLvoid *)pointer,
   3926         (GLsizei)remaining
   3927     );
   3928 }
   3929 
   3930 /* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */
   3931 static void
   3932 android_glViewport__IIII
   3933   (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
   3934     glViewport(
   3935         (GLint)x,
   3936         (GLint)y,
   3937         (GLsizei)width,
   3938         (GLsizei)height
   3939     );
   3940 }
   3941 
   3942 /* GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent ) */
   3943 static jint
   3944 android_glQueryMatrixxOES___3II_3II
   3945   (JNIEnv *_env, jobject _this, jintArray mantissa_ref, jint mantissaOffset, jintArray exponent_ref, jint exponentOffset) {
   3946     jint _exception = 0;
   3947     const char * _exceptionType = NULL;
   3948     const char * _exceptionMessage = NULL;
   3949     GLbitfield _returnValue = -1;
   3950     GLfixed *mantissa_base = (GLfixed *) 0;
   3951     jint _mantissaRemaining;
   3952     GLfixed *mantissa = (GLfixed *) 0;
   3953     GLint *exponent_base = (GLint *) 0;
   3954     jint _exponentRemaining;
   3955     GLint *exponent = (GLint *) 0;
   3956 
   3957     if (!mantissa_ref) {
   3958         _exception = 1;
   3959         _exceptionType = "java/lang/IllegalArgumentException";
   3960         _exceptionMessage = "mantissa == null";
   3961         goto exit;
   3962     }
   3963     if (mantissaOffset < 0) {
   3964         _exception = 1;
   3965         _exceptionType = "java/lang/IllegalArgumentException";
   3966         _exceptionMessage = "mantissaOffset < 0";
   3967         goto exit;
   3968     }
   3969     _mantissaRemaining = _env->GetArrayLength(mantissa_ref) - mantissaOffset;
   3970     if (_mantissaRemaining < 16) {
   3971         _exception = 1;
   3972         _exceptionType = "java/lang/IllegalArgumentException";
   3973         _exceptionMessage = "length - mantissaOffset < 16 < needed";
   3974         goto exit;
   3975     }
   3976     mantissa_base = (GLfixed *)
   3977         _env->GetPrimitiveArrayCritical(mantissa_ref, (jboolean *)0);
   3978     mantissa = mantissa_base + mantissaOffset;
   3979 
   3980     if (!exponent_ref) {
   3981         _exception = 1;
   3982         _exceptionType = "java/lang/IllegalArgumentException";
   3983         _exceptionMessage = "exponent == null";
   3984         goto exit;
   3985     }
   3986     if (exponentOffset < 0) {
   3987         _exception = 1;
   3988         _exceptionType = "java/lang/IllegalArgumentException";
   3989         _exceptionMessage = "exponentOffset < 0";
   3990         goto exit;
   3991     }
   3992     _exponentRemaining = _env->GetArrayLength(exponent_ref) - exponentOffset;
   3993     if (_exponentRemaining < 16) {
   3994         _exception = 1;
   3995         _exceptionType = "java/lang/IllegalArgumentException";
   3996         _exceptionMessage = "length - exponentOffset < 16 < needed";
   3997         goto exit;
   3998     }
   3999     exponent_base = (GLint *)
   4000         _env->GetPrimitiveArrayCritical(exponent_ref, (jboolean *)0);
   4001     exponent = exponent_base + exponentOffset;
   4002 
   4003     _returnValue = glQueryMatrixxOES(
   4004         (GLfixed *)mantissa,
   4005         (GLint *)exponent
   4006     );
   4007 
   4008 exit:
   4009     if (exponent_base) {
   4010         _env->ReleasePrimitiveArrayCritical(exponent_ref, exponent_base,
   4011             _exception ? JNI_ABORT: 0);
   4012     }
   4013     if (mantissa_base) {
   4014         _env->ReleasePrimitiveArrayCritical(mantissa_ref, mantissa_base,
   4015             _exception ? JNI_ABORT: 0);
   4016     }
   4017     if (_exception) {
   4018         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4019     }
   4020     return _returnValue;
   4021 }
   4022 
   4023 /* GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent ) */
   4024 static jint
   4025 android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2
   4026   (JNIEnv *_env, jobject _this, jobject mantissa_buf, jobject exponent_buf) {
   4027     jint _exception = 0;
   4028     const char * _exceptionType = NULL;
   4029     const char * _exceptionMessage = NULL;
   4030     jarray _mantissaArray = (jarray) 0;
   4031     jint _mantissaBufferOffset = (jint) 0;
   4032     jarray _exponentArray = (jarray) 0;
   4033     jint _exponentBufferOffset = (jint) 0;
   4034     GLbitfield _returnValue = -1;
   4035     jint _mantissaRemaining;
   4036     GLfixed *mantissa = (GLfixed *) 0;
   4037     jint _exponentRemaining;
   4038     GLint *exponent = (GLint *) 0;
   4039 
   4040     mantissa = (GLfixed *)getPointer(_env, mantissa_buf, &_mantissaArray, &_mantissaRemaining, &_mantissaBufferOffset);
   4041     if (_mantissaRemaining < 16) {
   4042         _exception = 1;
   4043         _exceptionType = "java/lang/IllegalArgumentException";
   4044         _exceptionMessage = "remaining() < 16 < needed";
   4045         goto exit;
   4046     }
   4047     exponent = (GLint *)getPointer(_env, exponent_buf, &_exponentArray, &_exponentRemaining, &_exponentBufferOffset);
   4048     if (_exponentRemaining < 16) {
   4049         _exception = 1;
   4050         _exceptionType = "java/lang/IllegalArgumentException";
   4051         _exceptionMessage = "remaining() < 16 < needed";
   4052         goto exit;
   4053     }
   4054     if (mantissa == NULL) {
   4055         char * _mantissaBase = (char *)_env->GetPrimitiveArrayCritical(_mantissaArray, (jboolean *) 0);
   4056         mantissa = (GLfixed *) (_mantissaBase + _mantissaBufferOffset);
   4057     }
   4058     if (exponent == NULL) {
   4059         char * _exponentBase = (char *)_env->GetPrimitiveArrayCritical(_exponentArray, (jboolean *) 0);
   4060         exponent = (GLint *) (_exponentBase + _exponentBufferOffset);
   4061     }
   4062     _returnValue = glQueryMatrixxOES(
   4063         (GLfixed *)mantissa,
   4064         (GLint *)exponent
   4065     );
   4066 
   4067 exit:
   4068     if (_exponentArray) {
   4069         releasePointer(_env, _exponentArray, exponent, _exception ? JNI_FALSE : JNI_TRUE);
   4070     }
   4071     if (_mantissaArray) {
   4072         releasePointer(_env, _mantissaArray, mantissa, _exception ? JNI_FALSE : JNI_TRUE);
   4073     }
   4074     if (_exception) {
   4075         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4076     }
   4077     return _returnValue;
   4078 }
   4079 
   4080 /* void glBindBuffer ( GLenum target, GLuint buffer ) */
   4081 static void
   4082 android_glBindBuffer__II
   4083   (JNIEnv *_env, jobject _this, jint target, jint buffer) {
   4084     glBindBuffer(
   4085         (GLenum)target,
   4086         (GLuint)buffer
   4087     );
   4088 }
   4089 
   4090 /* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */
   4091 static void
   4092 android_glBufferData__IILjava_nio_Buffer_2I
   4093   (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) {
   4094     jint _exception = 0;
   4095     const char * _exceptionType = NULL;
   4096     const char * _exceptionMessage = NULL;
   4097     jarray _array = (jarray) 0;
   4098     jint _bufferOffset = (jint) 0;
   4099     jint _remaining;
   4100     GLvoid *data = (GLvoid *) 0;
   4101 
   4102     if (data_buf) {
   4103         data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
   4104         if (_remaining < size) {
   4105             _exception = 1;
   4106             _exceptionType = "java/lang/IllegalArgumentException";
   4107             _exceptionMessage = "remaining() < size < needed";
   4108             goto exit;
   4109         }
   4110     }
   4111     if (data_buf && data == NULL) {
   4112         char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4113         data = (GLvoid *) (_dataBase + _bufferOffset);
   4114     }
   4115     glBufferData(
   4116         (GLenum)target,
   4117         (GLsizeiptr)size,
   4118         (GLvoid *)data,
   4119         (GLenum)usage
   4120     );
   4121 
   4122 exit:
   4123     if (_array) {
   4124         releasePointer(_env, _array, data, JNI_FALSE);
   4125     }
   4126     if (_exception) {
   4127         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4128     }
   4129 }
   4130 
   4131 /* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */
   4132 static void
   4133 android_glBufferSubData__IIILjava_nio_Buffer_2
   4134   (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) {
   4135     jint _exception = 0;
   4136     const char * _exceptionType = NULL;
   4137     const char * _exceptionMessage = NULL;
   4138     jarray _array = (jarray) 0;
   4139     jint _bufferOffset = (jint) 0;
   4140     jint _remaining;
   4141     GLvoid *data = (GLvoid *) 0;
   4142 
   4143     data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
   4144     if (_remaining < size) {
   4145         _exception = 1;
   4146         _exceptionType = "java/lang/IllegalArgumentException";
   4147         _exceptionMessage = "remaining() < size < needed";
   4148         goto exit;
   4149     }
   4150     if (data == NULL) {
   4151         char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4152         data = (GLvoid *) (_dataBase + _bufferOffset);
   4153     }
   4154     glBufferSubData(
   4155         (GLenum)target,
   4156         (GLintptr)offset,
   4157         (GLsizeiptr)size,
   4158         (GLvoid *)data
   4159     );
   4160 
   4161 exit:
   4162     if (_array) {
   4163         releasePointer(_env, _array, data, JNI_FALSE);
   4164     }
   4165     if (_exception) {
   4166         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4167     }
   4168 }
   4169 
   4170 /* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
   4171 static void
   4172 android_glClipPlanef__I_3FI
   4173   (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) {
   4174     jint _exception = 0;
   4175     const char * _exceptionType = NULL;
   4176     const char * _exceptionMessage = NULL;
   4177     GLfloat *equation_base = (GLfloat *) 0;
   4178     jint _remaining;
   4179     GLfloat *equation = (GLfloat *) 0;
   4180 
   4181     if (!equation_ref) {
   4182         _exception = 1;
   4183         _exceptionType = "java/lang/IllegalArgumentException";
   4184         _exceptionMessage = "equation == null";
   4185         goto exit;
   4186     }
   4187     if (offset < 0) {
   4188         _exception = 1;
   4189         _exceptionType = "java/lang/IllegalArgumentException";
   4190         _exceptionMessage = "offset < 0";
   4191         goto exit;
   4192     }
   4193     _remaining = _env->GetArrayLength(equation_ref) - offset;
   4194     if (_remaining < 4) {
   4195         _exception = 1;
   4196         _exceptionType = "java/lang/IllegalArgumentException";
   4197         _exceptionMessage = "length - offset < 4 < needed";
   4198         goto exit;
   4199     }
   4200     equation_base = (GLfloat *)
   4201         _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
   4202     equation = equation_base + offset;
   4203 
   4204     glClipPlanef(
   4205         (GLenum)plane,
   4206         (GLfloat *)equation
   4207     );
   4208 
   4209 exit:
   4210     if (equation_base) {
   4211         _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
   4212             JNI_ABORT);
   4213     }
   4214     if (_exception) {
   4215         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4216     }
   4217 }
   4218 
   4219 /* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
   4220 static void
   4221 android_glClipPlanef__ILjava_nio_FloatBuffer_2
   4222   (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
   4223     jint _exception = 0;
   4224     const char * _exceptionType = NULL;
   4225     const char * _exceptionMessage = NULL;
   4226     jarray _array = (jarray) 0;
   4227     jint _bufferOffset = (jint) 0;
   4228     jint _remaining;
   4229     GLfloat *equation = (GLfloat *) 0;
   4230 
   4231     equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset);
   4232     if (_remaining < 4) {
   4233         _exception = 1;
   4234         _exceptionType = "java/lang/IllegalArgumentException";
   4235         _exceptionMessage = "remaining() < 4 < needed";
   4236         goto exit;
   4237     }
   4238     if (equation == NULL) {
   4239         char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4240         equation = (GLfloat *) (_equationBase + _bufferOffset);
   4241     }
   4242     glClipPlanef(
   4243         (GLenum)plane,
   4244         (GLfloat *)equation
   4245     );
   4246 
   4247 exit:
   4248     if (_array) {
   4249         releasePointer(_env, _array, equation, JNI_FALSE);
   4250     }
   4251     if (_exception) {
   4252         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4253     }
   4254 }
   4255 
   4256 /* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
   4257 static void
   4258 android_glClipPlanex__I_3II
   4259   (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) {
   4260     jint _exception = 0;
   4261     const char * _exceptionType = NULL;
   4262     const char * _exceptionMessage = NULL;
   4263     GLfixed *equation_base = (GLfixed *) 0;
   4264     jint _remaining;
   4265     GLfixed *equation = (GLfixed *) 0;
   4266 
   4267     if (!equation_ref) {
   4268         _exception = 1;
   4269         _exceptionType = "java/lang/IllegalArgumentException";
   4270         _exceptionMessage = "equation == null";
   4271         goto exit;
   4272     }
   4273     if (offset < 0) {
   4274         _exception = 1;
   4275         _exceptionType = "java/lang/IllegalArgumentException";
   4276         _exceptionMessage = "offset < 0";
   4277         goto exit;
   4278     }
   4279     _remaining = _env->GetArrayLength(equation_ref) - offset;
   4280     if (_remaining < 4) {
   4281         _exception = 1;
   4282         _exceptionType = "java/lang/IllegalArgumentException";
   4283         _exceptionMessage = "length - offset < 4 < needed";
   4284         goto exit;
   4285     }
   4286     equation_base = (GLfixed *)
   4287         _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
   4288     equation = equation_base + offset;
   4289 
   4290     glClipPlanex(
   4291         (GLenum)plane,
   4292         (GLfixed *)equation
   4293     );
   4294 
   4295 exit:
   4296     if (equation_base) {
   4297         _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
   4298             JNI_ABORT);
   4299     }
   4300     if (_exception) {
   4301         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4302     }
   4303 }
   4304 
   4305 /* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
   4306 static void
   4307 android_glClipPlanex__ILjava_nio_IntBuffer_2
   4308   (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
   4309     jint _exception = 0;
   4310     const char * _exceptionType = NULL;
   4311     const char * _exceptionMessage = NULL;
   4312     jarray _array = (jarray) 0;
   4313     jint _bufferOffset = (jint) 0;
   4314     jint _remaining;
   4315     GLfixed *equation = (GLfixed *) 0;
   4316 
   4317     equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining, &_bufferOffset);
   4318     if (_remaining < 4) {
   4319         _exception = 1;
   4320         _exceptionType = "java/lang/IllegalArgumentException";
   4321         _exceptionMessage = "remaining() < 4 < needed";
   4322         goto exit;
   4323     }
   4324     if (equation == NULL) {
   4325         char * _equationBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4326         equation = (GLfixed *) (_equationBase + _bufferOffset);
   4327     }
   4328     glClipPlanex(
   4329         (GLenum)plane,
   4330         (GLfixed *)equation
   4331     );
   4332 
   4333 exit:
   4334     if (_array) {
   4335         releasePointer(_env, _array, equation, JNI_FALSE);
   4336     }
   4337     if (_exception) {
   4338         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4339     }
   4340 }
   4341 
   4342 /* void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) */
   4343 static void
   4344 android_glColor4ub__BBBB
   4345   (JNIEnv *_env, jobject _this, jbyte red, jbyte green, jbyte blue, jbyte alpha) {
   4346     glColor4ub(
   4347         (GLubyte)red,
   4348         (GLubyte)green,
   4349         (GLubyte)blue,
   4350         (GLubyte)alpha
   4351     );
   4352 }
   4353 
   4354 /* void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
   4355 static void
   4356 android_glColorPointer__IIII
   4357   (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
   4358     glColorPointer(
   4359         (GLint)size,
   4360         (GLenum)type,
   4361         (GLsizei)stride,
   4362         (const GLvoid *)offset
   4363     );
   4364 }
   4365 
   4366 /* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
   4367 static void
   4368 android_glDeleteBuffers__I_3II
   4369   (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
   4370     jint _exception = 0;
   4371     const char * _exceptionType = NULL;
   4372     const char * _exceptionMessage = NULL;
   4373     GLuint *buffers_base = (GLuint *) 0;
   4374     jint _remaining;
   4375     GLuint *buffers = (GLuint *) 0;
   4376 
   4377     if (!buffers_ref) {
   4378         _exception = 1;
   4379         _exceptionType = "java/lang/IllegalArgumentException";
   4380         _exceptionMessage = "buffers == null";
   4381         goto exit;
   4382     }
   4383     if (offset < 0) {
   4384         _exception = 1;
   4385         _exceptionType = "java/lang/IllegalArgumentException";
   4386         _exceptionMessage = "offset < 0";
   4387         goto exit;
   4388     }
   4389     _remaining = _env->GetArrayLength(buffers_ref) - offset;
   4390     if (_remaining < n) {
   4391         _exception = 1;
   4392         _exceptionType = "java/lang/IllegalArgumentException";
   4393         _exceptionMessage = "length - offset < n < needed";
   4394         goto exit;
   4395     }
   4396     buffers_base = (GLuint *)
   4397         _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
   4398     buffers = buffers_base + offset;
   4399 
   4400     glDeleteBuffers(
   4401         (GLsizei)n,
   4402         (GLuint *)buffers
   4403     );
   4404 
   4405 exit:
   4406     if (buffers_base) {
   4407         _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
   4408             JNI_ABORT);
   4409     }
   4410     if (_exception) {
   4411         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4412     }
   4413 }
   4414 
   4415 /* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
   4416 static void
   4417 android_glDeleteBuffers__ILjava_nio_IntBuffer_2
   4418   (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
   4419     jint _exception = 0;
   4420     const char * _exceptionType = NULL;
   4421     const char * _exceptionMessage = NULL;
   4422     jarray _array = (jarray) 0;
   4423     jint _bufferOffset = (jint) 0;
   4424     jint _remaining;
   4425     GLuint *buffers = (GLuint *) 0;
   4426 
   4427     buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset);
   4428     if (_remaining < n) {
   4429         _exception = 1;
   4430         _exceptionType = "java/lang/IllegalArgumentException";
   4431         _exceptionMessage = "remaining() < n < needed";
   4432         goto exit;
   4433     }
   4434     if (buffers == NULL) {
   4435         char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4436         buffers = (GLuint *) (_buffersBase + _bufferOffset);
   4437     }
   4438     glDeleteBuffers(
   4439         (GLsizei)n,
   4440         (GLuint *)buffers
   4441     );
   4442 
   4443 exit:
   4444     if (_array) {
   4445         releasePointer(_env, _array, buffers, JNI_FALSE);
   4446     }
   4447     if (_exception) {
   4448         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4449     }
   4450 }
   4451 
   4452 /* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */
   4453 static void
   4454 android_glDrawElements__IIII
   4455   (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) {
   4456     jint _exception = 0;
   4457     const char * _exceptionType = NULL;
   4458     const char * _exceptionMessage = NULL;
   4459     glDrawElements(
   4460         (GLenum)mode,
   4461         (GLsizei)count,
   4462         (GLenum)type,
   4463         (const GLvoid *)offset
   4464     );
   4465     if (_exception) {
   4466         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4467     }
   4468 }
   4469 
   4470 /* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
   4471 static void
   4472 android_glGenBuffers__I_3II
   4473   (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
   4474     jint _exception = 0;
   4475     const char * _exceptionType = NULL;
   4476     const char * _exceptionMessage = NULL;
   4477     GLuint *buffers_base = (GLuint *) 0;
   4478     jint _remaining;
   4479     GLuint *buffers = (GLuint *) 0;
   4480 
   4481     if (!buffers_ref) {
   4482         _exception = 1;
   4483         _exceptionType = "java/lang/IllegalArgumentException";
   4484         _exceptionMessage = "buffers == null";
   4485         goto exit;
   4486     }
   4487     if (offset < 0) {
   4488         _exception = 1;
   4489         _exceptionType = "java/lang/IllegalArgumentException";
   4490         _exceptionMessage = "offset < 0";
   4491         goto exit;
   4492     }
   4493     _remaining = _env->GetArrayLength(buffers_ref) - offset;
   4494     if (_remaining < n) {
   4495         _exception = 1;
   4496         _exceptionType = "java/lang/IllegalArgumentException";
   4497         _exceptionMessage = "length - offset < n < needed";
   4498         goto exit;
   4499     }
   4500     buffers_base = (GLuint *)
   4501         _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
   4502     buffers = buffers_base + offset;
   4503 
   4504     glGenBuffers(
   4505         (GLsizei)n,
   4506         (GLuint *)buffers
   4507     );
   4508 
   4509 exit:
   4510     if (buffers_base) {
   4511         _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
   4512             _exception ? JNI_ABORT: 0);
   4513     }
   4514     if (_exception) {
   4515         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4516     }
   4517 }
   4518 
   4519 /* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
   4520 static void
   4521 android_glGenBuffers__ILjava_nio_IntBuffer_2
   4522   (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
   4523     jint _exception = 0;
   4524     const char * _exceptionType = NULL;
   4525     const char * _exceptionMessage = NULL;
   4526     jarray _array = (jarray) 0;
   4527     jint _bufferOffset = (jint) 0;
   4528     jint _remaining;
   4529     GLuint *buffers = (GLuint *) 0;
   4530 
   4531     buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset);
   4532     if (_remaining < n) {
   4533         _exception = 1;
   4534         _exceptionType = "java/lang/IllegalArgumentException";
   4535         _exceptionMessage = "remaining() < n < needed";
   4536         goto exit;
   4537     }
   4538     if (buffers == NULL) {
   4539         char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4540         buffers = (GLuint *) (_buffersBase + _bufferOffset);
   4541     }
   4542     glGenBuffers(
   4543         (GLsizei)n,
   4544         (GLuint *)buffers
   4545     );
   4546 
   4547 exit:
   4548     if (_array) {
   4549         releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE);
   4550     }
   4551     if (_exception) {
   4552         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4553     }
   4554 }
   4555 
   4556 /* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
   4557 static void
   4558 android_glGetBooleanv__I_3ZI
   4559   (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) {
   4560     jint _exception = 0;
   4561     const char * _exceptionType = NULL;
   4562     const char * _exceptionMessage = NULL;
   4563     GLboolean *params_base = (GLboolean *) 0;
   4564     jint _remaining;
   4565     GLboolean *params = (GLboolean *) 0;
   4566 
   4567     if (!params_ref) {
   4568         _exception = 1;
   4569         _exceptionType = "java/lang/IllegalArgumentException";
   4570         _exceptionMessage = "params == null";
   4571         goto exit;
   4572     }
   4573     if (offset < 0) {
   4574         _exception = 1;
   4575         _exceptionType = "java/lang/IllegalArgumentException";
   4576         _exceptionMessage = "offset < 0";
   4577         goto exit;
   4578     }
   4579     _remaining = _env->GetArrayLength(params_ref) - offset;
   4580     params_base = (GLboolean *)
   4581         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   4582     params = params_base + offset;
   4583 
   4584     glGetBooleanv(
   4585         (GLenum)pname,
   4586         (GLboolean *)params
   4587     );
   4588 
   4589 exit:
   4590     if (params_base) {
   4591         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   4592             _exception ? JNI_ABORT: 0);
   4593     }
   4594     if (_exception) {
   4595         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4596     }
   4597 }
   4598 
   4599 /* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
   4600 static void
   4601 android_glGetBooleanv__ILjava_nio_IntBuffer_2
   4602   (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
   4603     jarray _array = (jarray) 0;
   4604     jint _bufferOffset = (jint) 0;
   4605     jint _remaining;
   4606     GLboolean *params = (GLboolean *) 0;
   4607 
   4608     params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   4609     if (params == NULL) {
   4610         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4611         params = (GLboolean *) (_paramsBase + _bufferOffset);
   4612     }
   4613     glGetBooleanv(
   4614         (GLenum)pname,
   4615         (GLboolean *)params
   4616     );
   4617     if (_array) {
   4618         releasePointer(_env, _array, params, JNI_TRUE);
   4619     }
   4620 }
   4621 
   4622 /* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
   4623 static void
   4624 android_glGetBufferParameteriv__II_3II
   4625   (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
   4626     jniThrowException(_env, "java/lang/UnsupportedOperationException",
   4627         "glGetBufferParameteriv");
   4628 }
   4629 
   4630 /* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
   4631 static void
   4632 android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2
   4633   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   4634     jniThrowException(_env, "java/lang/UnsupportedOperationException",
   4635         "glGetBufferParameteriv");
   4636 }
   4637 
   4638 /* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
   4639 static void
   4640 android_glGetClipPlanef__I_3FI
   4641   (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) {
   4642     jint _exception = 0;
   4643     const char * _exceptionType = NULL;
   4644     const char * _exceptionMessage = NULL;
   4645     GLfloat *eqn_base = (GLfloat *) 0;
   4646     jint _remaining;
   4647     GLfloat *eqn = (GLfloat *) 0;
   4648 
   4649     if (!eqn_ref) {
   4650         _exception = 1;
   4651         _exceptionType = "java/lang/IllegalArgumentException";
   4652         _exceptionMessage = "eqn == null";
   4653         goto exit;
   4654     }
   4655     if (offset < 0) {
   4656         _exception = 1;
   4657         _exceptionType = "java/lang/IllegalArgumentException";
   4658         _exceptionMessage = "offset < 0";
   4659         goto exit;
   4660     }
   4661     _remaining = _env->GetArrayLength(eqn_ref) - offset;
   4662     eqn_base = (GLfloat *)
   4663         _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
   4664     eqn = eqn_base + offset;
   4665 
   4666     glGetClipPlanef(
   4667         (GLenum)pname,
   4668         (GLfloat *)eqn
   4669     );
   4670 
   4671 exit:
   4672     if (eqn_base) {
   4673         _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
   4674             _exception ? JNI_ABORT: 0);
   4675     }
   4676     if (_exception) {
   4677         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4678     }
   4679 }
   4680 
   4681 /* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
   4682 static void
   4683 android_glGetClipPlanef__ILjava_nio_FloatBuffer_2
   4684   (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
   4685     jarray _array = (jarray) 0;
   4686     jint _bufferOffset = (jint) 0;
   4687     jint _remaining;
   4688     GLfloat *eqn = (GLfloat *) 0;
   4689 
   4690     eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset);
   4691     if (eqn == NULL) {
   4692         char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4693         eqn = (GLfloat *) (_eqnBase + _bufferOffset);
   4694     }
   4695     glGetClipPlanef(
   4696         (GLenum)pname,
   4697         (GLfloat *)eqn
   4698     );
   4699     if (_array) {
   4700         releasePointer(_env, _array, eqn, JNI_TRUE);
   4701     }
   4702 }
   4703 
   4704 /* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
   4705 static void
   4706 android_glGetClipPlanex__I_3II
   4707   (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) {
   4708     jint _exception = 0;
   4709     const char * _exceptionType = NULL;
   4710     const char * _exceptionMessage = NULL;
   4711     GLfixed *eqn_base = (GLfixed *) 0;
   4712     jint _remaining;
   4713     GLfixed *eqn = (GLfixed *) 0;
   4714 
   4715     if (!eqn_ref) {
   4716         _exception = 1;
   4717         _exceptionType = "java/lang/IllegalArgumentException";
   4718         _exceptionMessage = "eqn == null";
   4719         goto exit;
   4720     }
   4721     if (offset < 0) {
   4722         _exception = 1;
   4723         _exceptionType = "java/lang/IllegalArgumentException";
   4724         _exceptionMessage = "offset < 0";
   4725         goto exit;
   4726     }
   4727     _remaining = _env->GetArrayLength(eqn_ref) - offset;
   4728     eqn_base = (GLfixed *)
   4729         _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
   4730     eqn = eqn_base + offset;
   4731 
   4732     glGetClipPlanex(
   4733         (GLenum)pname,
   4734         (GLfixed *)eqn
   4735     );
   4736 
   4737 exit:
   4738     if (eqn_base) {
   4739         _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
   4740             _exception ? JNI_ABORT: 0);
   4741     }
   4742     if (_exception) {
   4743         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4744     }
   4745 }
   4746 
   4747 /* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
   4748 static void
   4749 android_glGetClipPlanex__ILjava_nio_IntBuffer_2
   4750   (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
   4751     jarray _array = (jarray) 0;
   4752     jint _bufferOffset = (jint) 0;
   4753     jint _remaining;
   4754     GLfixed *eqn = (GLfixed *) 0;
   4755 
   4756     eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining, &_bufferOffset);
   4757     if (eqn == NULL) {
   4758         char * _eqnBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4759         eqn = (GLfixed *) (_eqnBase + _bufferOffset);
   4760     }
   4761     glGetClipPlanex(
   4762         (GLenum)pname,
   4763         (GLfixed *)eqn
   4764     );
   4765     if (_array) {
   4766         releasePointer(_env, _array, eqn, JNI_TRUE);
   4767     }
   4768 }
   4769 
   4770 /* void glGetFixedv ( GLenum pname, GLfixed *params ) */
   4771 static void
   4772 android_glGetFixedv__I_3II
   4773   (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
   4774     jint _exception = 0;
   4775     const char * _exceptionType = NULL;
   4776     const char * _exceptionMessage = NULL;
   4777     GLfixed *params_base = (GLfixed *) 0;
   4778     jint _remaining;
   4779     GLfixed *params = (GLfixed *) 0;
   4780 
   4781     if (!params_ref) {
   4782         _exception = 1;
   4783         _exceptionType = "java/lang/IllegalArgumentException";
   4784         _exceptionMessage = "params == null";
   4785         goto exit;
   4786     }
   4787     if (offset < 0) {
   4788         _exception = 1;
   4789         _exceptionType = "java/lang/IllegalArgumentException";
   4790         _exceptionMessage = "offset < 0";
   4791         goto exit;
   4792     }
   4793     _remaining = _env->GetArrayLength(params_ref) - offset;
   4794     params_base = (GLfixed *)
   4795         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   4796     params = params_base + offset;
   4797 
   4798     glGetFixedv(
   4799         (GLenum)pname,
   4800         (GLfixed *)params
   4801     );
   4802 
   4803 exit:
   4804     if (params_base) {
   4805         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   4806             _exception ? JNI_ABORT: 0);
   4807     }
   4808     if (_exception) {
   4809         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4810     }
   4811 }
   4812 
   4813 /* void glGetFixedv ( GLenum pname, GLfixed *params ) */
   4814 static void
   4815 android_glGetFixedv__ILjava_nio_IntBuffer_2
   4816   (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
   4817     jarray _array = (jarray) 0;
   4818     jint _bufferOffset = (jint) 0;
   4819     jint _remaining;
   4820     GLfixed *params = (GLfixed *) 0;
   4821 
   4822     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   4823     if (params == NULL) {
   4824         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4825         params = (GLfixed *) (_paramsBase + _bufferOffset);
   4826     }
   4827     glGetFixedv(
   4828         (GLenum)pname,
   4829         (GLfixed *)params
   4830     );
   4831     if (_array) {
   4832         releasePointer(_env, _array, params, JNI_TRUE);
   4833     }
   4834 }
   4835 
   4836 /* void glGetFloatv ( GLenum pname, GLfloat *params ) */
   4837 static void
   4838 android_glGetFloatv__I_3FI
   4839   (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
   4840     jint _exception = 0;
   4841     const char * _exceptionType = NULL;
   4842     const char * _exceptionMessage = NULL;
   4843     GLfloat *params_base = (GLfloat *) 0;
   4844     jint _remaining;
   4845     GLfloat *params = (GLfloat *) 0;
   4846 
   4847     if (!params_ref) {
   4848         _exception = 1;
   4849         _exceptionType = "java/lang/IllegalArgumentException";
   4850         _exceptionMessage = "params == null";
   4851         goto exit;
   4852     }
   4853     if (offset < 0) {
   4854         _exception = 1;
   4855         _exceptionType = "java/lang/IllegalArgumentException";
   4856         _exceptionMessage = "offset < 0";
   4857         goto exit;
   4858     }
   4859     _remaining = _env->GetArrayLength(params_ref) - offset;
   4860     params_base = (GLfloat *)
   4861         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   4862     params = params_base + offset;
   4863 
   4864     glGetFloatv(
   4865         (GLenum)pname,
   4866         (GLfloat *)params
   4867     );
   4868 
   4869 exit:
   4870     if (params_base) {
   4871         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   4872             _exception ? JNI_ABORT: 0);
   4873     }
   4874     if (_exception) {
   4875         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4876     }
   4877 }
   4878 
   4879 /* void glGetFloatv ( GLenum pname, GLfloat *params ) */
   4880 static void
   4881 android_glGetFloatv__ILjava_nio_FloatBuffer_2
   4882   (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
   4883     jarray _array = (jarray) 0;
   4884     jint _bufferOffset = (jint) 0;
   4885     jint _remaining;
   4886     GLfloat *params = (GLfloat *) 0;
   4887 
   4888     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   4889     if (params == NULL) {
   4890         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   4891         params = (GLfloat *) (_paramsBase + _bufferOffset);
   4892     }
   4893     glGetFloatv(
   4894         (GLenum)pname,
   4895         (GLfloat *)params
   4896     );
   4897     if (_array) {
   4898         releasePointer(_env, _array, params, JNI_TRUE);
   4899     }
   4900 }
   4901 
   4902 /* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
   4903 static void
   4904 android_glGetLightfv__II_3FI
   4905   (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
   4906     jint _exception = 0;
   4907     const char * _exceptionType = NULL;
   4908     const char * _exceptionMessage = NULL;
   4909     GLfloat *params_base = (GLfloat *) 0;
   4910     jint _remaining;
   4911     GLfloat *params = (GLfloat *) 0;
   4912 
   4913     if (!params_ref) {
   4914         _exception = 1;
   4915         _exceptionType = "java/lang/IllegalArgumentException";
   4916         _exceptionMessage = "params == null";
   4917         goto exit;
   4918     }
   4919     if (offset < 0) {
   4920         _exception = 1;
   4921         _exceptionType = "java/lang/IllegalArgumentException";
   4922         _exceptionMessage = "offset < 0";
   4923         goto exit;
   4924     }
   4925     _remaining = _env->GetArrayLength(params_ref) - offset;
   4926     int _needed;
   4927     switch (pname) {
   4928 #if defined(GL_SPOT_EXPONENT)
   4929         case GL_SPOT_EXPONENT:
   4930 #endif // defined(GL_SPOT_EXPONENT)
   4931 #if defined(GL_SPOT_CUTOFF)
   4932         case GL_SPOT_CUTOFF:
   4933 #endif // defined(GL_SPOT_CUTOFF)
   4934 #if defined(GL_CONSTANT_ATTENUATION)
   4935         case GL_CONSTANT_ATTENUATION:
   4936 #endif // defined(GL_CONSTANT_ATTENUATION)
   4937 #if defined(GL_LINEAR_ATTENUATION)
   4938         case GL_LINEAR_ATTENUATION:
   4939 #endif // defined(GL_LINEAR_ATTENUATION)
   4940 #if defined(GL_QUADRATIC_ATTENUATION)
   4941         case GL_QUADRATIC_ATTENUATION:
   4942 #endif // defined(GL_QUADRATIC_ATTENUATION)
   4943             _needed = 1;
   4944             break;
   4945 #if defined(GL_SPOT_DIRECTION)
   4946         case GL_SPOT_DIRECTION:
   4947 #endif // defined(GL_SPOT_DIRECTION)
   4948             _needed = 3;
   4949             break;
   4950 #if defined(GL_AMBIENT)
   4951         case GL_AMBIENT:
   4952 #endif // defined(GL_AMBIENT)
   4953 #if defined(GL_DIFFUSE)
   4954         case GL_DIFFUSE:
   4955 #endif // defined(GL_DIFFUSE)
   4956 #if defined(GL_SPECULAR)
   4957         case GL_SPECULAR:
   4958 #endif // defined(GL_SPECULAR)
   4959 #if defined(GL_EMISSION)
   4960         case GL_EMISSION:
   4961 #endif // defined(GL_EMISSION)
   4962             _needed = 4;
   4963             break;
   4964         default:
   4965             _needed = 1;
   4966             break;
   4967     }
   4968     if (_remaining < _needed) {
   4969         _exception = 1;
   4970         _exceptionType = "java/lang/IllegalArgumentException";
   4971         _exceptionMessage = "length - offset < needed";
   4972         goto exit;
   4973     }
   4974     params_base = (GLfloat *)
   4975         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   4976     params = params_base + offset;
   4977 
   4978     glGetLightfv(
   4979         (GLenum)light,
   4980         (GLenum)pname,
   4981         (GLfloat *)params
   4982     );
   4983 
   4984 exit:
   4985     if (params_base) {
   4986         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   4987             _exception ? JNI_ABORT: 0);
   4988     }
   4989     if (_exception) {
   4990         jniThrowException(_env, _exceptionType, _exceptionMessage);
   4991     }
   4992 }
   4993 
   4994 /* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
   4995 static void
   4996 android_glGetLightfv__IILjava_nio_FloatBuffer_2
   4997   (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
   4998     jint _exception = 0;
   4999     const char * _exceptionType = NULL;
   5000     const char * _exceptionMessage = NULL;
   5001     jarray _array = (jarray) 0;
   5002     jint _bufferOffset = (jint) 0;
   5003     jint _remaining;
   5004     GLfloat *params = (GLfloat *) 0;
   5005 
   5006     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   5007     int _needed;
   5008     switch (pname) {
   5009 #if defined(GL_SPOT_EXPONENT)
   5010         case GL_SPOT_EXPONENT:
   5011 #endif // defined(GL_SPOT_EXPONENT)
   5012 #if defined(GL_SPOT_CUTOFF)
   5013         case GL_SPOT_CUTOFF:
   5014 #endif // defined(GL_SPOT_CUTOFF)
   5015 #if defined(GL_CONSTANT_ATTENUATION)
   5016         case GL_CONSTANT_ATTENUATION:
   5017 #endif // defined(GL_CONSTANT_ATTENUATION)
   5018 #if defined(GL_LINEAR_ATTENUATION)
   5019         case GL_LINEAR_ATTENUATION:
   5020 #endif // defined(GL_LINEAR_ATTENUATION)
   5021 #if defined(GL_QUADRATIC_ATTENUATION)
   5022         case GL_QUADRATIC_ATTENUATION:
   5023 #endif // defined(GL_QUADRATIC_ATTENUATION)
   5024             _needed = 1;
   5025             break;
   5026 #if defined(GL_SPOT_DIRECTION)
   5027         case GL_SPOT_DIRECTION:
   5028 #endif // defined(GL_SPOT_DIRECTION)
   5029             _needed = 3;
   5030             break;
   5031 #if defined(GL_AMBIENT)
   5032         case GL_AMBIENT:
   5033 #endif // defined(GL_AMBIENT)
   5034 #if defined(GL_DIFFUSE)
   5035         case GL_DIFFUSE:
   5036 #endif // defined(GL_DIFFUSE)
   5037 #if defined(GL_SPECULAR)
   5038         case GL_SPECULAR:
   5039 #endif // defined(GL_SPECULAR)
   5040 #if defined(GL_EMISSION)
   5041         case GL_EMISSION:
   5042 #endif // defined(GL_EMISSION)
   5043             _needed = 4;
   5044             break;
   5045         default:
   5046             _needed = 1;
   5047             break;
   5048     }
   5049     if (_remaining < _needed) {
   5050         _exception = 1;
   5051         _exceptionType = "java/lang/IllegalArgumentException";
   5052         _exceptionMessage = "remaining() < needed";
   5053         goto exit;
   5054     }
   5055     if (params == NULL) {
   5056         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   5057         params = (GLfloat *) (_paramsBase + _bufferOffset);
   5058     }
   5059     glGetLightfv(
   5060         (GLenum)light,
   5061         (GLenum)pname,
   5062         (GLfloat *)params
   5063     );
   5064 
   5065 exit:
   5066     if (_array) {
   5067         releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
   5068     }
   5069     if (_exception) {
   5070         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5071     }
   5072 }
   5073 
   5074 /* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
   5075 static void
   5076 android_glGetLightxv__II_3II
   5077   (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
   5078     jint _exception = 0;
   5079     const char * _exceptionType = NULL;
   5080     const char * _exceptionMessage = NULL;
   5081     GLfixed *params_base = (GLfixed *) 0;
   5082     jint _remaining;
   5083     GLfixed *params = (GLfixed *) 0;
   5084 
   5085     if (!params_ref) {
   5086         _exception = 1;
   5087         _exceptionType = "java/lang/IllegalArgumentException";
   5088         _exceptionMessage = "params == null";
   5089         goto exit;
   5090     }
   5091     if (offset < 0) {
   5092         _exception = 1;
   5093         _exceptionType = "java/lang/IllegalArgumentException";
   5094         _exceptionMessage = "offset < 0";
   5095         goto exit;
   5096     }
   5097     _remaining = _env->GetArrayLength(params_ref) - offset;
   5098     int _needed;
   5099     switch (pname) {
   5100 #if defined(GL_SPOT_EXPONENT)
   5101         case GL_SPOT_EXPONENT:
   5102 #endif // defined(GL_SPOT_EXPONENT)
   5103 #if defined(GL_SPOT_CUTOFF)
   5104         case GL_SPOT_CUTOFF:
   5105 #endif // defined(GL_SPOT_CUTOFF)
   5106 #if defined(GL_CONSTANT_ATTENUATION)
   5107         case GL_CONSTANT_ATTENUATION:
   5108 #endif // defined(GL_CONSTANT_ATTENUATION)
   5109 #if defined(GL_LINEAR_ATTENUATION)
   5110         case GL_LINEAR_ATTENUATION:
   5111 #endif // defined(GL_LINEAR_ATTENUATION)
   5112 #if defined(GL_QUADRATIC_ATTENUATION)
   5113         case GL_QUADRATIC_ATTENUATION:
   5114 #endif // defined(GL_QUADRATIC_ATTENUATION)
   5115             _needed = 1;
   5116             break;
   5117 #if defined(GL_SPOT_DIRECTION)
   5118         case GL_SPOT_DIRECTION:
   5119 #endif // defined(GL_SPOT_DIRECTION)
   5120             _needed = 3;
   5121             break;
   5122 #if defined(GL_AMBIENT)
   5123         case GL_AMBIENT:
   5124 #endif // defined(GL_AMBIENT)
   5125 #if defined(GL_DIFFUSE)
   5126         case GL_DIFFUSE:
   5127 #endif // defined(GL_DIFFUSE)
   5128 #if defined(GL_SPECULAR)
   5129         case GL_SPECULAR:
   5130 #endif // defined(GL_SPECULAR)
   5131 #if defined(GL_EMISSION)
   5132         case GL_EMISSION:
   5133 #endif // defined(GL_EMISSION)
   5134             _needed = 4;
   5135             break;
   5136         default:
   5137             _needed = 1;
   5138             break;
   5139     }
   5140     if (_remaining < _needed) {
   5141         _exception = 1;
   5142         _exceptionType = "java/lang/IllegalArgumentException";
   5143         _exceptionMessage = "length - offset < needed";
   5144         goto exit;
   5145     }
   5146     params_base = (GLfixed *)
   5147         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   5148     params = params_base + offset;
   5149 
   5150     glGetLightxv(
   5151         (GLenum)light,
   5152         (GLenum)pname,
   5153         (GLfixed *)params
   5154     );
   5155 
   5156 exit:
   5157     if (params_base) {
   5158         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   5159             _exception ? JNI_ABORT: 0);
   5160     }
   5161     if (_exception) {
   5162         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5163     }
   5164 }
   5165 
   5166 /* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
   5167 static void
   5168 android_glGetLightxv__IILjava_nio_IntBuffer_2
   5169   (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
   5170     jint _exception = 0;
   5171     const char * _exceptionType = NULL;
   5172     const char * _exceptionMessage = NULL;
   5173     jarray _array = (jarray) 0;
   5174     jint _bufferOffset = (jint) 0;
   5175     jint _remaining;
   5176     GLfixed *params = (GLfixed *) 0;
   5177 
   5178     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   5179     int _needed;
   5180     switch (pname) {
   5181 #if defined(GL_SPOT_EXPONENT)
   5182         case GL_SPOT_EXPONENT:
   5183 #endif // defined(GL_SPOT_EXPONENT)
   5184 #if defined(GL_SPOT_CUTOFF)
   5185         case GL_SPOT_CUTOFF:
   5186 #endif // defined(GL_SPOT_CUTOFF)
   5187 #if defined(GL_CONSTANT_ATTENUATION)
   5188         case GL_CONSTANT_ATTENUATION:
   5189 #endif // defined(GL_CONSTANT_ATTENUATION)
   5190 #if defined(GL_LINEAR_ATTENUATION)
   5191         case GL_LINEAR_ATTENUATION:
   5192 #endif // defined(GL_LINEAR_ATTENUATION)
   5193 #if defined(GL_QUADRATIC_ATTENUATION)
   5194         case GL_QUADRATIC_ATTENUATION:
   5195 #endif // defined(GL_QUADRATIC_ATTENUATION)
   5196             _needed = 1;
   5197             break;
   5198 #if defined(GL_SPOT_DIRECTION)
   5199         case GL_SPOT_DIRECTION:
   5200 #endif // defined(GL_SPOT_DIRECTION)
   5201             _needed = 3;
   5202             break;
   5203 #if defined(GL_AMBIENT)
   5204         case GL_AMBIENT:
   5205 #endif // defined(GL_AMBIENT)
   5206 #if defined(GL_DIFFUSE)
   5207         case GL_DIFFUSE:
   5208 #endif // defined(GL_DIFFUSE)
   5209 #if defined(GL_SPECULAR)
   5210         case GL_SPECULAR:
   5211 #endif // defined(GL_SPECULAR)
   5212 #if defined(GL_EMISSION)
   5213         case GL_EMISSION:
   5214 #endif // defined(GL_EMISSION)
   5215             _needed = 4;
   5216             break;
   5217         default:
   5218             _needed = 1;
   5219             break;
   5220     }
   5221     if (_remaining < _needed) {
   5222         _exception = 1;
   5223         _exceptionType = "java/lang/IllegalArgumentException";
   5224         _exceptionMessage = "remaining() < needed";
   5225         goto exit;
   5226     }
   5227     if (params == NULL) {
   5228         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   5229         params = (GLfixed *) (_paramsBase + _bufferOffset);
   5230     }
   5231     glGetLightxv(
   5232         (GLenum)light,
   5233         (GLenum)pname,
   5234         (GLfixed *)params
   5235     );
   5236 
   5237 exit:
   5238     if (_array) {
   5239         releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
   5240     }
   5241     if (_exception) {
   5242         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5243     }
   5244 }
   5245 
   5246 /* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
   5247 static void
   5248 android_glGetMaterialfv__II_3FI
   5249   (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
   5250     jint _exception = 0;
   5251     const char * _exceptionType = NULL;
   5252     const char * _exceptionMessage = NULL;
   5253     GLfloat *params_base = (GLfloat *) 0;
   5254     jint _remaining;
   5255     GLfloat *params = (GLfloat *) 0;
   5256 
   5257     if (!params_ref) {
   5258         _exception = 1;
   5259         _exceptionType = "java/lang/IllegalArgumentException";
   5260         _exceptionMessage = "params == null";
   5261         goto exit;
   5262     }
   5263     if (offset < 0) {
   5264         _exception = 1;
   5265         _exceptionType = "java/lang/IllegalArgumentException";
   5266         _exceptionMessage = "offset < 0";
   5267         goto exit;
   5268     }
   5269     _remaining = _env->GetArrayLength(params_ref) - offset;
   5270     int _needed;
   5271     switch (pname) {
   5272 #if defined(GL_SHININESS)
   5273         case GL_SHININESS:
   5274 #endif // defined(GL_SHININESS)
   5275             _needed = 1;
   5276             break;
   5277 #if defined(GL_AMBIENT)
   5278         case GL_AMBIENT:
   5279 #endif // defined(GL_AMBIENT)
   5280 #if defined(GL_DIFFUSE)
   5281         case GL_DIFFUSE:
   5282 #endif // defined(GL_DIFFUSE)
   5283 #if defined(GL_SPECULAR)
   5284         case GL_SPECULAR:
   5285 #endif // defined(GL_SPECULAR)
   5286 #if defined(GL_EMISSION)
   5287         case GL_EMISSION:
   5288 #endif // defined(GL_EMISSION)
   5289 #if defined(GL_AMBIENT_AND_DIFFUSE)
   5290         case GL_AMBIENT_AND_DIFFUSE:
   5291 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
   5292             _needed = 4;
   5293             break;
   5294         default:
   5295             _needed = 1;
   5296             break;
   5297     }
   5298     if (_remaining < _needed) {
   5299         _exception = 1;
   5300         _exceptionType = "java/lang/IllegalArgumentException";
   5301         _exceptionMessage = "length - offset < needed";
   5302         goto exit;
   5303     }
   5304     params_base = (GLfloat *)
   5305         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   5306     params = params_base + offset;
   5307 
   5308     glGetMaterialfv(
   5309         (GLenum)face,
   5310         (GLenum)pname,
   5311         (GLfloat *)params
   5312     );
   5313 
   5314 exit:
   5315     if (params_base) {
   5316         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   5317             _exception ? JNI_ABORT: 0);
   5318     }
   5319     if (_exception) {
   5320         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5321     }
   5322 }
   5323 
   5324 /* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
   5325 static void
   5326 android_glGetMaterialfv__IILjava_nio_FloatBuffer_2
   5327   (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
   5328     jint _exception = 0;
   5329     const char * _exceptionType = NULL;
   5330     const char * _exceptionMessage = NULL;
   5331     jarray _array = (jarray) 0;
   5332     jint _bufferOffset = (jint) 0;
   5333     jint _remaining;
   5334     GLfloat *params = (GLfloat *) 0;
   5335 
   5336     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   5337     int _needed;
   5338     switch (pname) {
   5339 #if defined(GL_SHININESS)
   5340         case GL_SHININESS:
   5341 #endif // defined(GL_SHININESS)
   5342             _needed = 1;
   5343             break;
   5344 #if defined(GL_AMBIENT)
   5345         case GL_AMBIENT:
   5346 #endif // defined(GL_AMBIENT)
   5347 #if defined(GL_DIFFUSE)
   5348         case GL_DIFFUSE:
   5349 #endif // defined(GL_DIFFUSE)
   5350 #if defined(GL_SPECULAR)
   5351         case GL_SPECULAR:
   5352 #endif // defined(GL_SPECULAR)
   5353 #if defined(GL_EMISSION)
   5354         case GL_EMISSION:
   5355 #endif // defined(GL_EMISSION)
   5356 #if defined(GL_AMBIENT_AND_DIFFUSE)
   5357         case GL_AMBIENT_AND_DIFFUSE:
   5358 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
   5359             _needed = 4;
   5360             break;
   5361         default:
   5362             _needed = 1;
   5363             break;
   5364     }
   5365     if (_remaining < _needed) {
   5366         _exception = 1;
   5367         _exceptionType = "java/lang/IllegalArgumentException";
   5368         _exceptionMessage = "remaining() < needed";
   5369         goto exit;
   5370     }
   5371     if (params == NULL) {
   5372         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   5373         params = (GLfloat *) (_paramsBase + _bufferOffset);
   5374     }
   5375     glGetMaterialfv(
   5376         (GLenum)face,
   5377         (GLenum)pname,
   5378         (GLfloat *)params
   5379     );
   5380 
   5381 exit:
   5382     if (_array) {
   5383         releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
   5384     }
   5385     if (_exception) {
   5386         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5387     }
   5388 }
   5389 
   5390 /* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
   5391 static void
   5392 android_glGetMaterialxv__II_3II
   5393   (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
   5394     jint _exception = 0;
   5395     const char * _exceptionType = NULL;
   5396     const char * _exceptionMessage = NULL;
   5397     GLfixed *params_base = (GLfixed *) 0;
   5398     jint _remaining;
   5399     GLfixed *params = (GLfixed *) 0;
   5400 
   5401     if (!params_ref) {
   5402         _exception = 1;
   5403         _exceptionType = "java/lang/IllegalArgumentException";
   5404         _exceptionMessage = "params == null";
   5405         goto exit;
   5406     }
   5407     if (offset < 0) {
   5408         _exception = 1;
   5409         _exceptionType = "java/lang/IllegalArgumentException";
   5410         _exceptionMessage = "offset < 0";
   5411         goto exit;
   5412     }
   5413     _remaining = _env->GetArrayLength(params_ref) - offset;
   5414     int _needed;
   5415     switch (pname) {
   5416 #if defined(GL_SHININESS)
   5417         case GL_SHININESS:
   5418 #endif // defined(GL_SHININESS)
   5419             _needed = 1;
   5420             break;
   5421 #if defined(GL_AMBIENT)
   5422         case GL_AMBIENT:
   5423 #endif // defined(GL_AMBIENT)
   5424 #if defined(GL_DIFFUSE)
   5425         case GL_DIFFUSE:
   5426 #endif // defined(GL_DIFFUSE)
   5427 #if defined(GL_SPECULAR)
   5428         case GL_SPECULAR:
   5429 #endif // defined(GL_SPECULAR)
   5430 #if defined(GL_EMISSION)
   5431         case GL_EMISSION:
   5432 #endif // defined(GL_EMISSION)
   5433 #if defined(GL_AMBIENT_AND_DIFFUSE)
   5434         case GL_AMBIENT_AND_DIFFUSE:
   5435 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
   5436             _needed = 4;
   5437             break;
   5438         default:
   5439             _needed = 1;
   5440             break;
   5441     }
   5442     if (_remaining < _needed) {
   5443         _exception = 1;
   5444         _exceptionType = "java/lang/IllegalArgumentException";
   5445         _exceptionMessage = "length - offset < needed";
   5446         goto exit;
   5447     }
   5448     params_base = (GLfixed *)
   5449         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   5450     params = params_base + offset;
   5451 
   5452     glGetMaterialxv(
   5453         (GLenum)face,
   5454         (GLenum)pname,
   5455         (GLfixed *)params
   5456     );
   5457 
   5458 exit:
   5459     if (params_base) {
   5460         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   5461             _exception ? JNI_ABORT: 0);
   5462     }
   5463     if (_exception) {
   5464         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5465     }
   5466 }
   5467 
   5468 /* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
   5469 static void
   5470 android_glGetMaterialxv__IILjava_nio_IntBuffer_2
   5471   (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
   5472     jint _exception = 0;
   5473     const char * _exceptionType = NULL;
   5474     const char * _exceptionMessage = NULL;
   5475     jarray _array = (jarray) 0;
   5476     jint _bufferOffset = (jint) 0;
   5477     jint _remaining;
   5478     GLfixed *params = (GLfixed *) 0;
   5479 
   5480     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   5481     int _needed;
   5482     switch (pname) {
   5483 #if defined(GL_SHININESS)
   5484         case GL_SHININESS:
   5485 #endif // defined(GL_SHININESS)
   5486             _needed = 1;
   5487             break;
   5488 #if defined(GL_AMBIENT)
   5489         case GL_AMBIENT:
   5490 #endif // defined(GL_AMBIENT)
   5491 #if defined(GL_DIFFUSE)
   5492         case GL_DIFFUSE:
   5493 #endif // defined(GL_DIFFUSE)
   5494 #if defined(GL_SPECULAR)
   5495         case GL_SPECULAR:
   5496 #endif // defined(GL_SPECULAR)
   5497 #if defined(GL_EMISSION)
   5498         case GL_EMISSION:
   5499 #endif // defined(GL_EMISSION)
   5500 #if defined(GL_AMBIENT_AND_DIFFUSE)
   5501         case GL_AMBIENT_AND_DIFFUSE:
   5502 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
   5503             _needed = 4;
   5504             break;
   5505         default:
   5506             _needed = 1;
   5507             break;
   5508     }
   5509     if (_remaining < _needed) {
   5510         _exception = 1;
   5511         _exceptionType = "java/lang/IllegalArgumentException";
   5512         _exceptionMessage = "remaining() < needed";
   5513         goto exit;
   5514     }
   5515     if (params == NULL) {
   5516         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   5517         params = (GLfixed *) (_paramsBase + _bufferOffset);
   5518     }
   5519     glGetMaterialxv(
   5520         (GLenum)face,
   5521         (GLenum)pname,
   5522         (GLfixed *)params
   5523     );
   5524 
   5525 exit:
   5526     if (_array) {
   5527         releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
   5528     }
   5529     if (_exception) {
   5530         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5531     }
   5532 }
   5533 
   5534 /* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
   5535 static void
   5536 android_glGetTexEnviv__II_3II
   5537   (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
   5538     jint _exception = 0;
   5539     const char * _exceptionType = NULL;
   5540     const char * _exceptionMessage = NULL;
   5541     GLint *params_base = (GLint *) 0;
   5542     jint _remaining;
   5543     GLint *params = (GLint *) 0;
   5544 
   5545     if (!params_ref) {
   5546         _exception = 1;
   5547         _exceptionType = "java/lang/IllegalArgumentException";
   5548         _exceptionMessage = "params == null";
   5549         goto exit;
   5550     }
   5551     if (offset < 0) {
   5552         _exception = 1;
   5553         _exceptionType = "java/lang/IllegalArgumentException";
   5554         _exceptionMessage = "offset < 0";
   5555         goto exit;
   5556     }
   5557     _remaining = _env->GetArrayLength(params_ref) - offset;
   5558     int _needed;
   5559     switch (pname) {
   5560 #if defined(GL_TEXTURE_ENV_MODE)
   5561         case GL_TEXTURE_ENV_MODE:
   5562 #endif // defined(GL_TEXTURE_ENV_MODE)
   5563 #if defined(GL_COMBINE_RGB)
   5564         case GL_COMBINE_RGB:
   5565 #endif // defined(GL_COMBINE_RGB)
   5566 #if defined(GL_COMBINE_ALPHA)
   5567         case GL_COMBINE_ALPHA:
   5568 #endif // defined(GL_COMBINE_ALPHA)
   5569             _needed = 1;
   5570             break;
   5571 #if defined(GL_TEXTURE_ENV_COLOR)
   5572         case GL_TEXTURE_ENV_COLOR:
   5573 #endif // defined(GL_TEXTURE_ENV_COLOR)
   5574             _needed = 4;
   5575             break;
   5576         default:
   5577             _needed = 1;
   5578             break;
   5579     }
   5580     if (_remaining < _needed) {
   5581         _exception = 1;
   5582         _exceptionType = "java/lang/IllegalArgumentException";
   5583         _exceptionMessage = "length - offset < needed";
   5584         goto exit;
   5585     }
   5586     params_base = (GLint *)
   5587         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   5588     params = params_base + offset;
   5589 
   5590     glGetTexEnviv(
   5591         (GLenum)env,
   5592         (GLenum)pname,
   5593         (GLint *)params
   5594     );
   5595 
   5596 exit:
   5597     if (params_base) {
   5598         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   5599             _exception ? JNI_ABORT: 0);
   5600     }
   5601     if (_exception) {
   5602         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5603     }
   5604 }
   5605 
   5606 /* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
   5607 static void
   5608 android_glGetTexEnviv__IILjava_nio_IntBuffer_2
   5609   (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
   5610     jint _exception = 0;
   5611     const char * _exceptionType = NULL;
   5612     const char * _exceptionMessage = NULL;
   5613     jarray _array = (jarray) 0;
   5614     jint _bufferOffset = (jint) 0;
   5615     jint _remaining;
   5616     GLint *params = (GLint *) 0;
   5617 
   5618     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   5619     int _needed;
   5620     switch (pname) {
   5621 #if defined(GL_TEXTURE_ENV_MODE)
   5622         case GL_TEXTURE_ENV_MODE:
   5623 #endif // defined(GL_TEXTURE_ENV_MODE)
   5624 #if defined(GL_COMBINE_RGB)
   5625         case GL_COMBINE_RGB:
   5626 #endif // defined(GL_COMBINE_RGB)
   5627 #if defined(GL_COMBINE_ALPHA)
   5628         case GL_COMBINE_ALPHA:
   5629 #endif // defined(GL_COMBINE_ALPHA)
   5630             _needed = 1;
   5631             break;
   5632 #if defined(GL_TEXTURE_ENV_COLOR)
   5633         case GL_TEXTURE_ENV_COLOR:
   5634 #endif // defined(GL_TEXTURE_ENV_COLOR)
   5635             _needed = 4;
   5636             break;
   5637         default:
   5638             _needed = 1;
   5639             break;
   5640     }
   5641     if (_remaining < _needed) {
   5642         _exception = 1;
   5643         _exceptionType = "java/lang/IllegalArgumentException";
   5644         _exceptionMessage = "remaining() < needed";
   5645         goto exit;
   5646     }
   5647     if (params == NULL) {
   5648         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   5649         params = (GLint *) (_paramsBase + _bufferOffset);
   5650     }
   5651     glGetTexEnviv(
   5652         (GLenum)env,
   5653         (GLenum)pname,
   5654         (GLint *)params
   5655     );
   5656 
   5657 exit:
   5658     if (_array) {
   5659         releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
   5660     }
   5661     if (_exception) {
   5662         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5663     }
   5664 }
   5665 
   5666 /* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
   5667 static void
   5668 android_glGetTexEnvxv__II_3II
   5669   (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
   5670     jint _exception = 0;
   5671     const char * _exceptionType = NULL;
   5672     const char * _exceptionMessage = NULL;
   5673     GLfixed *params_base = (GLfixed *) 0;
   5674     jint _remaining;
   5675     GLfixed *params = (GLfixed *) 0;
   5676 
   5677     if (!params_ref) {
   5678         _exception = 1;
   5679         _exceptionType = "java/lang/IllegalArgumentException";
   5680         _exceptionMessage = "params == null";
   5681         goto exit;
   5682     }
   5683     if (offset < 0) {
   5684         _exception = 1;
   5685         _exceptionType = "java/lang/IllegalArgumentException";
   5686         _exceptionMessage = "offset < 0";
   5687         goto exit;
   5688     }
   5689     _remaining = _env->GetArrayLength(params_ref) - offset;
   5690     int _needed;
   5691     switch (pname) {
   5692 #if defined(GL_TEXTURE_ENV_MODE)
   5693         case GL_TEXTURE_ENV_MODE:
   5694 #endif // defined(GL_TEXTURE_ENV_MODE)
   5695 #if defined(GL_COMBINE_RGB)
   5696         case GL_COMBINE_RGB:
   5697 #endif // defined(GL_COMBINE_RGB)
   5698 #if defined(GL_COMBINE_ALPHA)
   5699         case GL_COMBINE_ALPHA:
   5700 #endif // defined(GL_COMBINE_ALPHA)
   5701             _needed = 1;
   5702             break;
   5703 #if defined(GL_TEXTURE_ENV_COLOR)
   5704         case GL_TEXTURE_ENV_COLOR:
   5705 #endif // defined(GL_TEXTURE_ENV_COLOR)
   5706             _needed = 4;
   5707             break;
   5708         default:
   5709             _needed = 1;
   5710             break;
   5711     }
   5712     if (_remaining < _needed) {
   5713         _exception = 1;
   5714         _exceptionType = "java/lang/IllegalArgumentException";
   5715         _exceptionMessage = "length - offset < needed";
   5716         goto exit;
   5717     }
   5718     params_base = (GLfixed *)
   5719         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   5720     params = params_base + offset;
   5721 
   5722     glGetTexEnvxv(
   5723         (GLenum)env,
   5724         (GLenum)pname,
   5725         (GLfixed *)params
   5726     );
   5727 
   5728 exit:
   5729     if (params_base) {
   5730         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   5731             _exception ? JNI_ABORT: 0);
   5732     }
   5733     if (_exception) {
   5734         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5735     }
   5736 }
   5737 
   5738 /* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
   5739 static void
   5740 android_glGetTexEnvxv__IILjava_nio_IntBuffer_2
   5741   (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
   5742     jint _exception = 0;
   5743     const char * _exceptionType = NULL;
   5744     const char * _exceptionMessage = NULL;
   5745     jarray _array = (jarray) 0;
   5746     jint _bufferOffset = (jint) 0;
   5747     jint _remaining;
   5748     GLfixed *params = (GLfixed *) 0;
   5749 
   5750     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   5751     int _needed;
   5752     switch (pname) {
   5753 #if defined(GL_TEXTURE_ENV_MODE)
   5754         case GL_TEXTURE_ENV_MODE:
   5755 #endif // defined(GL_TEXTURE_ENV_MODE)
   5756 #if defined(GL_COMBINE_RGB)
   5757         case GL_COMBINE_RGB:
   5758 #endif // defined(GL_COMBINE_RGB)
   5759 #if defined(GL_COMBINE_ALPHA)
   5760         case GL_COMBINE_ALPHA:
   5761 #endif // defined(GL_COMBINE_ALPHA)
   5762             _needed = 1;
   5763             break;
   5764 #if defined(GL_TEXTURE_ENV_COLOR)
   5765         case GL_TEXTURE_ENV_COLOR:
   5766 #endif // defined(GL_TEXTURE_ENV_COLOR)
   5767             _needed = 4;
   5768             break;
   5769         default:
   5770             _needed = 1;
   5771             break;
   5772     }
   5773     if (_remaining < _needed) {
   5774         _exception = 1;
   5775         _exceptionType = "java/lang/IllegalArgumentException";
   5776         _exceptionMessage = "remaining() < needed";
   5777         goto exit;
   5778     }
   5779     if (params == NULL) {
   5780         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   5781         params = (GLfixed *) (_paramsBase + _bufferOffset);
   5782     }
   5783     glGetTexEnvxv(
   5784         (GLenum)env,
   5785         (GLenum)pname,
   5786         (GLfixed *)params
   5787     );
   5788 
   5789 exit:
   5790     if (_array) {
   5791         releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
   5792     }
   5793     if (_exception) {
   5794         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5795     }
   5796 }
   5797 
   5798 /* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
   5799 static void
   5800 android_glGetTexParameterfv__II_3FI
   5801   (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
   5802     jint _exception = 0;
   5803     const char * _exceptionType = NULL;
   5804     const char * _exceptionMessage = NULL;
   5805     GLfloat *params_base = (GLfloat *) 0;
   5806     jint _remaining;
   5807     GLfloat *params = (GLfloat *) 0;
   5808 
   5809     if (!params_ref) {
   5810         _exception = 1;
   5811         _exceptionType = "java/lang/IllegalArgumentException";
   5812         _exceptionMessage = "params == null";
   5813         goto exit;
   5814     }
   5815     if (offset < 0) {
   5816         _exception = 1;
   5817         _exceptionType = "java/lang/IllegalArgumentException";
   5818         _exceptionMessage = "offset < 0";
   5819         goto exit;
   5820     }
   5821     _remaining = _env->GetArrayLength(params_ref) - offset;
   5822     if (_remaining < 1) {
   5823         _exception = 1;
   5824         _exceptionType = "java/lang/IllegalArgumentException";
   5825         _exceptionMessage = "length - offset < 1 < needed";
   5826         goto exit;
   5827     }
   5828     params_base = (GLfloat *)
   5829         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   5830     params = params_base + offset;
   5831 
   5832     glGetTexParameterfv(
   5833         (GLenum)target,
   5834         (GLenum)pname,
   5835         (GLfloat *)params
   5836     );
   5837 
   5838 exit:
   5839     if (params_base) {
   5840         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   5841             _exception ? JNI_ABORT: 0);
   5842     }
   5843     if (_exception) {
   5844         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5845     }
   5846 }
   5847 
   5848 /* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
   5849 static void
   5850 android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2
   5851   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   5852     jint _exception = 0;
   5853     const char * _exceptionType = NULL;
   5854     const char * _exceptionMessage = NULL;
   5855     jarray _array = (jarray) 0;
   5856     jint _bufferOffset = (jint) 0;
   5857     jint _remaining;
   5858     GLfloat *params = (GLfloat *) 0;
   5859 
   5860     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   5861     if (_remaining < 1) {
   5862         _exception = 1;
   5863         _exceptionType = "java/lang/IllegalArgumentException";
   5864         _exceptionMessage = "remaining() < 1 < needed";
   5865         goto exit;
   5866     }
   5867     if (params == NULL) {
   5868         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   5869         params = (GLfloat *) (_paramsBase + _bufferOffset);
   5870     }
   5871     glGetTexParameterfv(
   5872         (GLenum)target,
   5873         (GLenum)pname,
   5874         (GLfloat *)params
   5875     );
   5876 
   5877 exit:
   5878     if (_array) {
   5879         releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
   5880     }
   5881     if (_exception) {
   5882         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5883     }
   5884 }
   5885 
   5886 /* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
   5887 static void
   5888 android_glGetTexParameteriv__II_3II
   5889   (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
   5890     jint _exception = 0;
   5891     const char * _exceptionType = NULL;
   5892     const char * _exceptionMessage = NULL;
   5893     GLint *params_base = (GLint *) 0;
   5894     jint _remaining;
   5895     GLint *params = (GLint *) 0;
   5896 
   5897     if (!params_ref) {
   5898         _exception = 1;
   5899         _exceptionType = "java/lang/IllegalArgumentException";
   5900         _exceptionMessage = "params == null";
   5901         goto exit;
   5902     }
   5903     if (offset < 0) {
   5904         _exception = 1;
   5905         _exceptionType = "java/lang/IllegalArgumentException";
   5906         _exceptionMessage = "offset < 0";
   5907         goto exit;
   5908     }
   5909     _remaining = _env->GetArrayLength(params_ref) - offset;
   5910     if (_remaining < 1) {
   5911         _exception = 1;
   5912         _exceptionType = "java/lang/IllegalArgumentException";
   5913         _exceptionMessage = "length - offset < 1 < needed";
   5914         goto exit;
   5915     }
   5916     params_base = (GLint *)
   5917         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   5918     params = params_base + offset;
   5919 
   5920     glGetTexParameteriv(
   5921         (GLenum)target,
   5922         (GLenum)pname,
   5923         (GLint *)params
   5924     );
   5925 
   5926 exit:
   5927     if (params_base) {
   5928         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   5929             _exception ? JNI_ABORT: 0);
   5930     }
   5931     if (_exception) {
   5932         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5933     }
   5934 }
   5935 
   5936 /* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
   5937 static void
   5938 android_glGetTexParameteriv__IILjava_nio_IntBuffer_2
   5939   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   5940     jint _exception = 0;
   5941     const char * _exceptionType = NULL;
   5942     const char * _exceptionMessage = NULL;
   5943     jarray _array = (jarray) 0;
   5944     jint _bufferOffset = (jint) 0;
   5945     jint _remaining;
   5946     GLint *params = (GLint *) 0;
   5947 
   5948     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   5949     if (_remaining < 1) {
   5950         _exception = 1;
   5951         _exceptionType = "java/lang/IllegalArgumentException";
   5952         _exceptionMessage = "remaining() < 1 < needed";
   5953         goto exit;
   5954     }
   5955     if (params == NULL) {
   5956         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   5957         params = (GLint *) (_paramsBase + _bufferOffset);
   5958     }
   5959     glGetTexParameteriv(
   5960         (GLenum)target,
   5961         (GLenum)pname,
   5962         (GLint *)params
   5963     );
   5964 
   5965 exit:
   5966     if (_array) {
   5967         releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
   5968     }
   5969     if (_exception) {
   5970         jniThrowException(_env, _exceptionType, _exceptionMessage);
   5971     }
   5972 }
   5973 
   5974 /* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
   5975 static void
   5976 android_glGetTexParameterxv__II_3II
   5977   (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
   5978     jint _exception = 0;
   5979     const char * _exceptionType = NULL;
   5980     const char * _exceptionMessage = NULL;
   5981     GLfixed *params_base = (GLfixed *) 0;
   5982     jint _remaining;
   5983     GLfixed *params = (GLfixed *) 0;
   5984 
   5985     if (!params_ref) {
   5986         _exception = 1;
   5987         _exceptionType = "java/lang/IllegalArgumentException";
   5988         _exceptionMessage = "params == null";
   5989         goto exit;
   5990     }
   5991     if (offset < 0) {
   5992         _exception = 1;
   5993         _exceptionType = "java/lang/IllegalArgumentException";
   5994         _exceptionMessage = "offset < 0";
   5995         goto exit;
   5996     }
   5997     _remaining = _env->GetArrayLength(params_ref) - offset;
   5998     if (_remaining < 1) {
   5999         _exception = 1;
   6000         _exceptionType = "java/lang/IllegalArgumentException";
   6001         _exceptionMessage = "length - offset < 1 < needed";
   6002         goto exit;
   6003     }
   6004     params_base = (GLfixed *)
   6005         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   6006     params = params_base + offset;
   6007 
   6008     glGetTexParameterxv(
   6009         (GLenum)target,
   6010         (GLenum)pname,
   6011         (GLfixed *)params
   6012     );
   6013 
   6014 exit:
   6015     if (params_base) {
   6016         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   6017             _exception ? JNI_ABORT: 0);
   6018     }
   6019     if (_exception) {
   6020         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6021     }
   6022 }
   6023 
   6024 /* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
   6025 static void
   6026 android_glGetTexParameterxv__IILjava_nio_IntBuffer_2
   6027   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   6028     jint _exception = 0;
   6029     const char * _exceptionType = NULL;
   6030     const char * _exceptionMessage = NULL;
   6031     jarray _array = (jarray) 0;
   6032     jint _bufferOffset = (jint) 0;
   6033     jint _remaining;
   6034     GLfixed *params = (GLfixed *) 0;
   6035 
   6036     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   6037     if (_remaining < 1) {
   6038         _exception = 1;
   6039         _exceptionType = "java/lang/IllegalArgumentException";
   6040         _exceptionMessage = "remaining() < 1 < needed";
   6041         goto exit;
   6042     }
   6043     if (params == NULL) {
   6044         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   6045         params = (GLfixed *) (_paramsBase + _bufferOffset);
   6046     }
   6047     glGetTexParameterxv(
   6048         (GLenum)target,
   6049         (GLenum)pname,
   6050         (GLfixed *)params
   6051     );
   6052 
   6053 exit:
   6054     if (_array) {
   6055         releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
   6056     }
   6057     if (_exception) {
   6058         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6059     }
   6060 }
   6061 
   6062 /* GLboolean glIsBuffer ( GLuint buffer ) */
   6063 static jboolean
   6064 android_glIsBuffer__I
   6065   (JNIEnv *_env, jobject _this, jint buffer) {
   6066     GLboolean _returnValue;
   6067     _returnValue = glIsBuffer(
   6068         (GLuint)buffer
   6069     );
   6070     return _returnValue;
   6071 }
   6072 
   6073 /* GLboolean glIsEnabled ( GLenum cap ) */
   6074 static jboolean
   6075 android_glIsEnabled__I
   6076   (JNIEnv *_env, jobject _this, jint cap) {
   6077     GLboolean _returnValue;
   6078     _returnValue = glIsEnabled(
   6079         (GLenum)cap
   6080     );
   6081     return _returnValue;
   6082 }
   6083 
   6084 /* GLboolean glIsTexture ( GLuint texture ) */
   6085 static jboolean
   6086 android_glIsTexture__I
   6087   (JNIEnv *_env, jobject _this, jint texture) {
   6088     GLboolean _returnValue;
   6089     _returnValue = glIsTexture(
   6090         (GLuint)texture
   6091     );
   6092     return _returnValue;
   6093 }
   6094 
   6095 /* void glNormalPointer ( GLenum type, GLsizei stride, GLint offset ) */
   6096 static void
   6097 android_glNormalPointer__III
   6098   (JNIEnv *_env, jobject _this, jint type, jint stride, jint offset) {
   6099     glNormalPointer(
   6100         (GLenum)type,
   6101         (GLsizei)stride,
   6102         (const GLvoid *)offset
   6103     );
   6104 }
   6105 
   6106 /* void glPointParameterf ( GLenum pname, GLfloat param ) */
   6107 static void
   6108 android_glPointParameterf__IF
   6109   (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
   6110     glPointParameterf(
   6111         (GLenum)pname,
   6112         (GLfloat)param
   6113     );
   6114 }
   6115 
   6116 /* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
   6117 static void
   6118 android_glPointParameterfv__I_3FI
   6119   (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
   6120     jint _exception = 0;
   6121     const char * _exceptionType = NULL;
   6122     const char * _exceptionMessage = NULL;
   6123     GLfloat *params_base = (GLfloat *) 0;
   6124     jint _remaining;
   6125     GLfloat *params = (GLfloat *) 0;
   6126 
   6127     if (!params_ref) {
   6128         _exception = 1;
   6129         _exceptionType = "java/lang/IllegalArgumentException";
   6130         _exceptionMessage = "params == null";
   6131         goto exit;
   6132     }
   6133     if (offset < 0) {
   6134         _exception = 1;
   6135         _exceptionType = "java/lang/IllegalArgumentException";
   6136         _exceptionMessage = "offset < 0";
   6137         goto exit;
   6138     }
   6139     _remaining = _env->GetArrayLength(params_ref) - offset;
   6140     if (_remaining < 1) {
   6141         _exception = 1;
   6142         _exceptionType = "java/lang/IllegalArgumentException";
   6143         _exceptionMessage = "length - offset < 1 < needed";
   6144         goto exit;
   6145     }
   6146     params_base = (GLfloat *)
   6147         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   6148     params = params_base + offset;
   6149 
   6150     glPointParameterfv(
   6151         (GLenum)pname,
   6152         (GLfloat *)params
   6153     );
   6154 
   6155 exit:
   6156     if (params_base) {
   6157         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   6158             JNI_ABORT);
   6159     }
   6160     if (_exception) {
   6161         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6162     }
   6163 }
   6164 
   6165 /* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
   6166 static void
   6167 android_glPointParameterfv__ILjava_nio_FloatBuffer_2
   6168   (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
   6169     jint _exception = 0;
   6170     const char * _exceptionType = NULL;
   6171     const char * _exceptionMessage = NULL;
   6172     jarray _array = (jarray) 0;
   6173     jint _bufferOffset = (jint) 0;
   6174     jint _remaining;
   6175     GLfloat *params = (GLfloat *) 0;
   6176 
   6177     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   6178     if (_remaining < 1) {
   6179         _exception = 1;
   6180         _exceptionType = "java/lang/IllegalArgumentException";
   6181         _exceptionMessage = "remaining() < 1 < needed";
   6182         goto exit;
   6183     }
   6184     if (params == NULL) {
   6185         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   6186         params = (GLfloat *) (_paramsBase + _bufferOffset);
   6187     }
   6188     glPointParameterfv(
   6189         (GLenum)pname,
   6190         (GLfloat *)params
   6191     );
   6192 
   6193 exit:
   6194     if (_array) {
   6195         releasePointer(_env, _array, params, JNI_FALSE);
   6196     }
   6197     if (_exception) {
   6198         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6199     }
   6200 }
   6201 
   6202 /* void glPointParameterx ( GLenum pname, GLfixed param ) */
   6203 static void
   6204 android_glPointParameterx__II
   6205   (JNIEnv *_env, jobject _this, jint pname, jint param) {
   6206     glPointParameterx(
   6207         (GLenum)pname,
   6208         (GLfixed)param
   6209     );
   6210 }
   6211 
   6212 /* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
   6213 static void
   6214 android_glPointParameterxv__I_3II
   6215   (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
   6216     jint _exception = 0;
   6217     const char * _exceptionType = NULL;
   6218     const char * _exceptionMessage = NULL;
   6219     GLfixed *params_base = (GLfixed *) 0;
   6220     jint _remaining;
   6221     GLfixed *params = (GLfixed *) 0;
   6222 
   6223     if (!params_ref) {
   6224         _exception = 1;
   6225         _exceptionType = "java/lang/IllegalArgumentException";
   6226         _exceptionMessage = "params == null";
   6227         goto exit;
   6228     }
   6229     if (offset < 0) {
   6230         _exception = 1;
   6231         _exceptionType = "java/lang/IllegalArgumentException";
   6232         _exceptionMessage = "offset < 0";
   6233         goto exit;
   6234     }
   6235     _remaining = _env->GetArrayLength(params_ref) - offset;
   6236     if (_remaining < 1) {
   6237         _exception = 1;
   6238         _exceptionType = "java/lang/IllegalArgumentException";
   6239         _exceptionMessage = "length - offset < 1 < needed";
   6240         goto exit;
   6241     }
   6242     params_base = (GLfixed *)
   6243         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   6244     params = params_base + offset;
   6245 
   6246     glPointParameterxv(
   6247         (GLenum)pname,
   6248         (GLfixed *)params
   6249     );
   6250 
   6251 exit:
   6252     if (params_base) {
   6253         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   6254             JNI_ABORT);
   6255     }
   6256     if (_exception) {
   6257         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6258     }
   6259 }
   6260 
   6261 /* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
   6262 static void
   6263 android_glPointParameterxv__ILjava_nio_IntBuffer_2
   6264   (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
   6265     jint _exception = 0;
   6266     const char * _exceptionType = NULL;
   6267     const char * _exceptionMessage = NULL;
   6268     jarray _array = (jarray) 0;
   6269     jint _bufferOffset = (jint) 0;
   6270     jint _remaining;
   6271     GLfixed *params = (GLfixed *) 0;
   6272 
   6273     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   6274     if (_remaining < 1) {
   6275         _exception = 1;
   6276         _exceptionType = "java/lang/IllegalArgumentException";
   6277         _exceptionMessage = "remaining() < 1 < needed";
   6278         goto exit;
   6279     }
   6280     if (params == NULL) {
   6281         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   6282         params = (GLfixed *) (_paramsBase + _bufferOffset);
   6283     }
   6284     glPointParameterxv(
   6285         (GLenum)pname,
   6286         (GLfixed *)params
   6287     );
   6288 
   6289 exit:
   6290     if (_array) {
   6291         releasePointer(_env, _array, params, JNI_FALSE);
   6292     }
   6293     if (_exception) {
   6294         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6295     }
   6296 }
   6297 
   6298 /* void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
   6299 static void
   6300 android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I
   6301   (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
   6302     jarray _array = (jarray) 0;
   6303     jint _bufferOffset = (jint) 0;
   6304     jint _remaining;
   6305     GLvoid *pointer = (GLvoid *) 0;
   6306 
   6307     if (pointer_buf) {
   6308         pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
   6309         if ( ! pointer ) {
   6310             return;
   6311         }
   6312     }
   6313     glPointSizePointerOESBounds(
   6314         (GLenum)type,
   6315         (GLsizei)stride,
   6316         (GLvoid *)pointer,
   6317         (GLsizei)remaining
   6318     );
   6319 }
   6320 
   6321 /* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
   6322 static void
   6323 android_glTexCoordPointer__IIII
   6324   (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
   6325     glTexCoordPointer(
   6326         (GLint)size,
   6327         (GLenum)type,
   6328         (GLsizei)stride,
   6329         (const GLvoid *)offset
   6330     );
   6331 }
   6332 
   6333 /* void glTexEnvi ( GLenum target, GLenum pname, GLint param ) */
   6334 static void
   6335 android_glTexEnvi__III
   6336   (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
   6337     glTexEnvi(
   6338         (GLenum)target,
   6339         (GLenum)pname,
   6340         (GLint)param
   6341     );
   6342 }
   6343 
   6344 /* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
   6345 static void
   6346 android_glTexEnviv__II_3II
   6347   (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
   6348     jint _exception = 0;
   6349     const char * _exceptionType = NULL;
   6350     const char * _exceptionMessage = NULL;
   6351     GLint *params_base = (GLint *) 0;
   6352     jint _remaining;
   6353     GLint *params = (GLint *) 0;
   6354 
   6355     if (!params_ref) {
   6356         _exception = 1;
   6357         _exceptionType = "java/lang/IllegalArgumentException";
   6358         _exceptionMessage = "params == null";
   6359         goto exit;
   6360     }
   6361     if (offset < 0) {
   6362         _exception = 1;
   6363         _exceptionType = "java/lang/IllegalArgumentException";
   6364         _exceptionMessage = "offset < 0";
   6365         goto exit;
   6366     }
   6367     _remaining = _env->GetArrayLength(params_ref) - offset;
   6368     int _needed;
   6369     switch (pname) {
   6370 #if defined(GL_TEXTURE_ENV_MODE)
   6371         case GL_TEXTURE_ENV_MODE:
   6372 #endif // defined(GL_TEXTURE_ENV_MODE)
   6373 #if defined(GL_COMBINE_RGB)
   6374         case GL_COMBINE_RGB:
   6375 #endif // defined(GL_COMBINE_RGB)
   6376 #if defined(GL_COMBINE_ALPHA)
   6377         case GL_COMBINE_ALPHA:
   6378 #endif // defined(GL_COMBINE_ALPHA)
   6379             _needed = 1;
   6380             break;
   6381 #if defined(GL_TEXTURE_ENV_COLOR)
   6382         case GL_TEXTURE_ENV_COLOR:
   6383 #endif // defined(GL_TEXTURE_ENV_COLOR)
   6384             _needed = 4;
   6385             break;
   6386         default:
   6387             _needed = 1;
   6388             break;
   6389     }
   6390     if (_remaining < _needed) {
   6391         _exception = 1;
   6392         _exceptionType = "java/lang/IllegalArgumentException";
   6393         _exceptionMessage = "length - offset < needed";
   6394         goto exit;
   6395     }
   6396     params_base = (GLint *)
   6397         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   6398     params = params_base + offset;
   6399 
   6400     glTexEnviv(
   6401         (GLenum)target,
   6402         (GLenum)pname,
   6403         (GLint *)params
   6404     );
   6405 
   6406 exit:
   6407     if (params_base) {
   6408         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   6409             JNI_ABORT);
   6410     }
   6411     if (_exception) {
   6412         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6413     }
   6414 }
   6415 
   6416 /* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
   6417 static void
   6418 android_glTexEnviv__IILjava_nio_IntBuffer_2
   6419   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   6420     jint _exception = 0;
   6421     const char * _exceptionType = NULL;
   6422     const char * _exceptionMessage = NULL;
   6423     jarray _array = (jarray) 0;
   6424     jint _bufferOffset = (jint) 0;
   6425     jint _remaining;
   6426     GLint *params = (GLint *) 0;
   6427 
   6428     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   6429     int _needed;
   6430     switch (pname) {
   6431 #if defined(GL_TEXTURE_ENV_MODE)
   6432         case GL_TEXTURE_ENV_MODE:
   6433 #endif // defined(GL_TEXTURE_ENV_MODE)
   6434 #if defined(GL_COMBINE_RGB)
   6435         case GL_COMBINE_RGB:
   6436 #endif // defined(GL_COMBINE_RGB)
   6437 #if defined(GL_COMBINE_ALPHA)
   6438         case GL_COMBINE_ALPHA:
   6439 #endif // defined(GL_COMBINE_ALPHA)
   6440             _needed = 1;
   6441             break;
   6442 #if defined(GL_TEXTURE_ENV_COLOR)
   6443         case GL_TEXTURE_ENV_COLOR:
   6444 #endif // defined(GL_TEXTURE_ENV_COLOR)
   6445             _needed = 4;
   6446             break;
   6447         default:
   6448             _needed = 1;
   6449             break;
   6450     }
   6451     if (_remaining < _needed) {
   6452         _exception = 1;
   6453         _exceptionType = "java/lang/IllegalArgumentException";
   6454         _exceptionMessage = "remaining() < needed";
   6455         goto exit;
   6456     }
   6457     if (params == NULL) {
   6458         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   6459         params = (GLint *) (_paramsBase + _bufferOffset);
   6460     }
   6461     glTexEnviv(
   6462         (GLenum)target,
   6463         (GLenum)pname,
   6464         (GLint *)params
   6465     );
   6466 
   6467 exit:
   6468     if (_array) {
   6469         releasePointer(_env, _array, params, JNI_FALSE);
   6470     }
   6471     if (_exception) {
   6472         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6473     }
   6474 }
   6475 
   6476 /* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
   6477 static void
   6478 android_glTexParameterfv__II_3FI
   6479   (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
   6480     jint _exception = 0;
   6481     const char * _exceptionType = NULL;
   6482     const char * _exceptionMessage = NULL;
   6483     GLfloat *params_base = (GLfloat *) 0;
   6484     jint _remaining;
   6485     GLfloat *params = (GLfloat *) 0;
   6486 
   6487     if (!params_ref) {
   6488         _exception = 1;
   6489         _exceptionType = "java/lang/IllegalArgumentException";
   6490         _exceptionMessage = "params == null";
   6491         goto exit;
   6492     }
   6493     if (offset < 0) {
   6494         _exception = 1;
   6495         _exceptionType = "java/lang/IllegalArgumentException";
   6496         _exceptionMessage = "offset < 0";
   6497         goto exit;
   6498     }
   6499     _remaining = _env->GetArrayLength(params_ref) - offset;
   6500     if (_remaining < 1) {
   6501         _exception = 1;
   6502         _exceptionType = "java/lang/IllegalArgumentException";
   6503         _exceptionMessage = "length - offset < 1 < needed";
   6504         goto exit;
   6505     }
   6506     params_base = (GLfloat *)
   6507         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   6508     params = params_base + offset;
   6509 
   6510     glTexParameterfv(
   6511         (GLenum)target,
   6512         (GLenum)pname,
   6513         (GLfloat *)params
   6514     );
   6515 
   6516 exit:
   6517     if (params_base) {
   6518         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   6519             JNI_ABORT);
   6520     }
   6521     if (_exception) {
   6522         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6523     }
   6524 }
   6525 
   6526 /* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
   6527 static void
   6528 android_glTexParameterfv__IILjava_nio_FloatBuffer_2
   6529   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   6530     jint _exception = 0;
   6531     const char * _exceptionType = NULL;
   6532     const char * _exceptionMessage = NULL;
   6533     jarray _array = (jarray) 0;
   6534     jint _bufferOffset = (jint) 0;
   6535     jint _remaining;
   6536     GLfloat *params = (GLfloat *) 0;
   6537 
   6538     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   6539     if (_remaining < 1) {
   6540         _exception = 1;
   6541         _exceptionType = "java/lang/IllegalArgumentException";
   6542         _exceptionMessage = "remaining() < 1 < needed";
   6543         goto exit;
   6544     }
   6545     if (params == NULL) {
   6546         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   6547         params = (GLfloat *) (_paramsBase + _bufferOffset);
   6548     }
   6549     glTexParameterfv(
   6550         (GLenum)target,
   6551         (GLenum)pname,
   6552         (GLfloat *)params
   6553     );
   6554 
   6555 exit:
   6556     if (_array) {
   6557         releasePointer(_env, _array, params, JNI_FALSE);
   6558     }
   6559     if (_exception) {
   6560         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6561     }
   6562 }
   6563 
   6564 /* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */
   6565 static void
   6566 android_glTexParameteri__III
   6567   (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
   6568     glTexParameteri(
   6569         (GLenum)target,
   6570         (GLenum)pname,
   6571         (GLint)param
   6572     );
   6573 }
   6574 
   6575 /* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
   6576 static void
   6577 android_glTexParameteriv__II_3II
   6578   (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
   6579     jint _exception = 0;
   6580     const char * _exceptionType = NULL;
   6581     const char * _exceptionMessage = NULL;
   6582     GLint *params_base = (GLint *) 0;
   6583     jint _remaining;
   6584     GLint *params = (GLint *) 0;
   6585 
   6586     if (!params_ref) {
   6587         _exception = 1;
   6588         _exceptionType = "java/lang/IllegalArgumentException";
   6589         _exceptionMessage = "params == null";
   6590         goto exit;
   6591     }
   6592     if (offset < 0) {
   6593         _exception = 1;
   6594         _exceptionType = "java/lang/IllegalArgumentException";
   6595         _exceptionMessage = "offset < 0";
   6596         goto exit;
   6597     }
   6598     _remaining = _env->GetArrayLength(params_ref) - offset;
   6599     if (_remaining < 1) {
   6600         _exception = 1;
   6601         _exceptionType = "java/lang/IllegalArgumentException";
   6602         _exceptionMessage = "length - offset < 1 < needed";
   6603         goto exit;
   6604     }
   6605     params_base = (GLint *)
   6606         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   6607     params = params_base + offset;
   6608 
   6609     glTexParameteriv(
   6610         (GLenum)target,
   6611         (GLenum)pname,
   6612         (GLint *)params
   6613     );
   6614 
   6615 exit:
   6616     if (params_base) {
   6617         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   6618             JNI_ABORT);
   6619     }
   6620     if (_exception) {
   6621         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6622     }
   6623 }
   6624 
   6625 /* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
   6626 static void
   6627 android_glTexParameteriv__IILjava_nio_IntBuffer_2
   6628   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   6629     jint _exception = 0;
   6630     const char * _exceptionType = NULL;
   6631     const char * _exceptionMessage = NULL;
   6632     jarray _array = (jarray) 0;
   6633     jint _bufferOffset = (jint) 0;
   6634     jint _remaining;
   6635     GLint *params = (GLint *) 0;
   6636 
   6637     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   6638     if (_remaining < 1) {
   6639         _exception = 1;
   6640         _exceptionType = "java/lang/IllegalArgumentException";
   6641         _exceptionMessage = "remaining() < 1 < needed";
   6642         goto exit;
   6643     }
   6644     if (params == NULL) {
   6645         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   6646         params = (GLint *) (_paramsBase + _bufferOffset);
   6647     }
   6648     glTexParameteriv(
   6649         (GLenum)target,
   6650         (GLenum)pname,
   6651         (GLint *)params
   6652     );
   6653 
   6654 exit:
   6655     if (_array) {
   6656         releasePointer(_env, _array, params, JNI_FALSE);
   6657     }
   6658     if (_exception) {
   6659         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6660     }
   6661 }
   6662 
   6663 /* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
   6664 static void
   6665 android_glTexParameterxv__II_3II
   6666   (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
   6667     jint _exception = 0;
   6668     const char * _exceptionType = NULL;
   6669     const char * _exceptionMessage = NULL;
   6670     GLfixed *params_base = (GLfixed *) 0;
   6671     jint _remaining;
   6672     GLfixed *params = (GLfixed *) 0;
   6673 
   6674     if (!params_ref) {
   6675         _exception = 1;
   6676         _exceptionType = "java/lang/IllegalArgumentException";
   6677         _exceptionMessage = "params == null";
   6678         goto exit;
   6679     }
   6680     if (offset < 0) {
   6681         _exception = 1;
   6682         _exceptionType = "java/lang/IllegalArgumentException";
   6683         _exceptionMessage = "offset < 0";
   6684         goto exit;
   6685     }
   6686     _remaining = _env->GetArrayLength(params_ref) - offset;
   6687     if (_remaining < 1) {
   6688         _exception = 1;
   6689         _exceptionType = "java/lang/IllegalArgumentException";
   6690         _exceptionMessage = "length - offset < 1 < needed";
   6691         goto exit;
   6692     }
   6693     params_base = (GLfixed *)
   6694         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   6695     params = params_base + offset;
   6696 
   6697     glTexParameterxv(
   6698         (GLenum)target,
   6699         (GLenum)pname,
   6700         (GLfixed *)params
   6701     );
   6702 
   6703 exit:
   6704     if (params_base) {
   6705         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   6706             JNI_ABORT);
   6707     }
   6708     if (_exception) {
   6709         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6710     }
   6711 }
   6712 
   6713 /* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
   6714 static void
   6715 android_glTexParameterxv__IILjava_nio_IntBuffer_2
   6716   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   6717     jint _exception = 0;
   6718     const char * _exceptionType = NULL;
   6719     const char * _exceptionMessage = NULL;
   6720     jarray _array = (jarray) 0;
   6721     jint _bufferOffset = (jint) 0;
   6722     jint _remaining;
   6723     GLfixed *params = (GLfixed *) 0;
   6724 
   6725     params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   6726     if (_remaining < 1) {
   6727         _exception = 1;
   6728         _exceptionType = "java/lang/IllegalArgumentException";
   6729         _exceptionMessage = "remaining() < 1 < needed";
   6730         goto exit;
   6731     }
   6732     if (params == NULL) {
   6733         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   6734         params = (GLfixed *) (_paramsBase + _bufferOffset);
   6735     }
   6736     glTexParameterxv(
   6737         (GLenum)target,
   6738         (GLenum)pname,
   6739         (GLfixed *)params
   6740     );
   6741 
   6742 exit:
   6743     if (_array) {
   6744         releasePointer(_env, _array, params, JNI_FALSE);
   6745     }
   6746     if (_exception) {
   6747         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6748     }
   6749 }
   6750 
   6751 /* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
   6752 static void
   6753 android_glVertexPointer__IIII
   6754   (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
   6755     glVertexPointer(
   6756         (GLint)size,
   6757         (GLenum)type,
   6758         (GLsizei)stride,
   6759         (const GLvoid *)offset
   6760     );
   6761 }
   6762 
   6763 /* void glCurrentPaletteMatrixOES ( GLuint matrixpaletteindex ) */
   6764 static void
   6765 android_glCurrentPaletteMatrixOES__I
   6766   (JNIEnv *_env, jobject _this, jint matrixpaletteindex) {
   6767     glCurrentPaletteMatrixOES(
   6768         (GLuint)matrixpaletteindex
   6769     );
   6770 }
   6771 
   6772 /* void glDrawTexfOES ( GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height ) */
   6773 static void
   6774 android_glDrawTexfOES__FFFFF
   6775   (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z, jfloat width, jfloat height) {
   6776     glDrawTexfOES(
   6777         (GLfloat)x,
   6778         (GLfloat)y,
   6779         (GLfloat)z,
   6780         (GLfloat)width,
   6781         (GLfloat)height
   6782     );
   6783 }
   6784 
   6785 /* void glDrawTexfvOES ( const GLfloat *coords ) */
   6786 static void
   6787 android_glDrawTexfvOES___3FI
   6788   (JNIEnv *_env, jobject _this, jfloatArray coords_ref, jint offset) {
   6789     jint _exception = 0;
   6790     const char * _exceptionType = NULL;
   6791     const char * _exceptionMessage = NULL;
   6792     GLfloat *coords_base = (GLfloat *) 0;
   6793     jint _remaining;
   6794     GLfloat *coords = (GLfloat *) 0;
   6795 
   6796     if (!coords_ref) {
   6797         _exception = 1;
   6798         _exceptionType = "java/lang/IllegalArgumentException";
   6799         _exceptionMessage = "coords == null";
   6800         goto exit;
   6801     }
   6802     if (offset < 0) {
   6803         _exception = 1;
   6804         _exceptionType = "java/lang/IllegalArgumentException";
   6805         _exceptionMessage = "offset < 0";
   6806         goto exit;
   6807     }
   6808     _remaining = _env->GetArrayLength(coords_ref) - offset;
   6809     if (_remaining < 5) {
   6810         _exception = 1;
   6811         _exceptionType = "java/lang/IllegalArgumentException";
   6812         _exceptionMessage = "length - offset < 5 < needed";
   6813         goto exit;
   6814     }
   6815     coords_base = (GLfloat *)
   6816         _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
   6817     coords = coords_base + offset;
   6818 
   6819     glDrawTexfvOES(
   6820         (GLfloat *)coords
   6821     );
   6822 
   6823 exit:
   6824     if (coords_base) {
   6825         _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
   6826             JNI_ABORT);
   6827     }
   6828     if (_exception) {
   6829         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6830     }
   6831 }
   6832 
   6833 /* void glDrawTexfvOES ( const GLfloat *coords ) */
   6834 static void
   6835 android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2
   6836   (JNIEnv *_env, jobject _this, jobject coords_buf) {
   6837     jint _exception = 0;
   6838     const char * _exceptionType = NULL;
   6839     const char * _exceptionMessage = NULL;
   6840     jarray _array = (jarray) 0;
   6841     jint _bufferOffset = (jint) 0;
   6842     jint _remaining;
   6843     GLfloat *coords = (GLfloat *) 0;
   6844 
   6845     coords = (GLfloat *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset);
   6846     if (_remaining < 5) {
   6847         _exception = 1;
   6848         _exceptionType = "java/lang/IllegalArgumentException";
   6849         _exceptionMessage = "remaining() < 5 < needed";
   6850         goto exit;
   6851     }
   6852     if (coords == NULL) {
   6853         char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   6854         coords = (GLfloat *) (_coordsBase + _bufferOffset);
   6855     }
   6856     glDrawTexfvOES(
   6857         (GLfloat *)coords
   6858     );
   6859 
   6860 exit:
   6861     if (_array) {
   6862         releasePointer(_env, _array, coords, JNI_FALSE);
   6863     }
   6864     if (_exception) {
   6865         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6866     }
   6867 }
   6868 
   6869 /* void glDrawTexiOES ( GLint x, GLint y, GLint z, GLint width, GLint height ) */
   6870 static void
   6871 android_glDrawTexiOES__IIIII
   6872   (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
   6873     glDrawTexiOES(
   6874         (GLint)x,
   6875         (GLint)y,
   6876         (GLint)z,
   6877         (GLint)width,
   6878         (GLint)height
   6879     );
   6880 }
   6881 
   6882 /* void glDrawTexivOES ( const GLint *coords ) */
   6883 static void
   6884 android_glDrawTexivOES___3II
   6885   (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
   6886     jint _exception = 0;
   6887     const char * _exceptionType = NULL;
   6888     const char * _exceptionMessage = NULL;
   6889     GLint *coords_base = (GLint *) 0;
   6890     jint _remaining;
   6891     GLint *coords = (GLint *) 0;
   6892 
   6893     if (!coords_ref) {
   6894         _exception = 1;
   6895         _exceptionType = "java/lang/IllegalArgumentException";
   6896         _exceptionMessage = "coords == null";
   6897         goto exit;
   6898     }
   6899     if (offset < 0) {
   6900         _exception = 1;
   6901         _exceptionType = "java/lang/IllegalArgumentException";
   6902         _exceptionMessage = "offset < 0";
   6903         goto exit;
   6904     }
   6905     _remaining = _env->GetArrayLength(coords_ref) - offset;
   6906     if (_remaining < 5) {
   6907         _exception = 1;
   6908         _exceptionType = "java/lang/IllegalArgumentException";
   6909         _exceptionMessage = "length - offset < 5 < needed";
   6910         goto exit;
   6911     }
   6912     coords_base = (GLint *)
   6913         _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
   6914     coords = coords_base + offset;
   6915 
   6916     glDrawTexivOES(
   6917         (GLint *)coords
   6918     );
   6919 
   6920 exit:
   6921     if (coords_base) {
   6922         _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
   6923             JNI_ABORT);
   6924     }
   6925     if (_exception) {
   6926         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6927     }
   6928 }
   6929 
   6930 /* void glDrawTexivOES ( const GLint *coords ) */
   6931 static void
   6932 android_glDrawTexivOES__Ljava_nio_IntBuffer_2
   6933   (JNIEnv *_env, jobject _this, jobject coords_buf) {
   6934     jint _exception = 0;
   6935     const char * _exceptionType = NULL;
   6936     const char * _exceptionMessage = NULL;
   6937     jarray _array = (jarray) 0;
   6938     jint _bufferOffset = (jint) 0;
   6939     jint _remaining;
   6940     GLint *coords = (GLint *) 0;
   6941 
   6942     coords = (GLint *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset);
   6943     if (_remaining < 5) {
   6944         _exception = 1;
   6945         _exceptionType = "java/lang/IllegalArgumentException";
   6946         _exceptionMessage = "remaining() < 5 < needed";
   6947         goto exit;
   6948     }
   6949     if (coords == NULL) {
   6950         char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   6951         coords = (GLint *) (_coordsBase + _bufferOffset);
   6952     }
   6953     glDrawTexivOES(
   6954         (GLint *)coords
   6955     );
   6956 
   6957 exit:
   6958     if (_array) {
   6959         releasePointer(_env, _array, coords, JNI_FALSE);
   6960     }
   6961     if (_exception) {
   6962         jniThrowException(_env, _exceptionType, _exceptionMessage);
   6963     }
   6964 }
   6965 
   6966 /* void glDrawTexsOES ( GLshort x, GLshort y, GLshort z, GLshort width, GLshort height ) */
   6967 static void
   6968 android_glDrawTexsOES__SSSSS
   6969   (JNIEnv *_env, jobject _this, jshort x, jshort y, jshort z, jshort width, jshort height) {
   6970     glDrawTexsOES(
   6971         (GLshort)x,
   6972         (GLshort)y,
   6973         (GLshort)z,
   6974         (GLshort)width,
   6975         (GLshort)height
   6976     );
   6977 }
   6978 
   6979 /* void glDrawTexsvOES ( const GLshort *coords ) */
   6980 static void
   6981 android_glDrawTexsvOES___3SI
   6982   (JNIEnv *_env, jobject _this, jshortArray coords_ref, jint offset) {
   6983     jint _exception = 0;
   6984     const char * _exceptionType = NULL;
   6985     const char * _exceptionMessage = NULL;
   6986     GLshort *coords_base = (GLshort *) 0;
   6987     jint _remaining;
   6988     GLshort *coords = (GLshort *) 0;
   6989 
   6990     if (!coords_ref) {
   6991         _exception = 1;
   6992         _exceptionType = "java/lang/IllegalArgumentException";
   6993         _exceptionMessage = "coords == null";
   6994         goto exit;
   6995     }
   6996     if (offset < 0) {
   6997         _exception = 1;
   6998         _exceptionType = "java/lang/IllegalArgumentException";
   6999         _exceptionMessage = "offset < 0";
   7000         goto exit;
   7001     }
   7002     _remaining = _env->GetArrayLength(coords_ref) - offset;
   7003     if (_remaining < 5) {
   7004         _exception = 1;
   7005         _exceptionType = "java/lang/IllegalArgumentException";
   7006         _exceptionMessage = "length - offset < 5 < needed";
   7007         goto exit;
   7008     }
   7009     coords_base = (GLshort *)
   7010         _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
   7011     coords = coords_base + offset;
   7012 
   7013     glDrawTexsvOES(
   7014         (GLshort *)coords
   7015     );
   7016 
   7017 exit:
   7018     if (coords_base) {
   7019         _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
   7020             JNI_ABORT);
   7021     }
   7022     if (_exception) {
   7023         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7024     }
   7025 }
   7026 
   7027 /* void glDrawTexsvOES ( const GLshort *coords ) */
   7028 static void
   7029 android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2
   7030   (JNIEnv *_env, jobject _this, jobject coords_buf) {
   7031     jint _exception = 0;
   7032     const char * _exceptionType = NULL;
   7033     const char * _exceptionMessage = NULL;
   7034     jarray _array = (jarray) 0;
   7035     jint _bufferOffset = (jint) 0;
   7036     jint _remaining;
   7037     GLshort *coords = (GLshort *) 0;
   7038 
   7039     coords = (GLshort *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset);
   7040     if (_remaining < 5) {
   7041         _exception = 1;
   7042         _exceptionType = "java/lang/IllegalArgumentException";
   7043         _exceptionMessage = "remaining() < 5 < needed";
   7044         goto exit;
   7045     }
   7046     if (coords == NULL) {
   7047         char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   7048         coords = (GLshort *) (_coordsBase + _bufferOffset);
   7049     }
   7050     glDrawTexsvOES(
   7051         (GLshort *)coords
   7052     );
   7053 
   7054 exit:
   7055     if (_array) {
   7056         releasePointer(_env, _array, coords, JNI_FALSE);
   7057     }
   7058     if (_exception) {
   7059         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7060     }
   7061 }
   7062 
   7063 /* void glDrawTexxOES ( GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height ) */
   7064 static void
   7065 android_glDrawTexxOES__IIIII
   7066   (JNIEnv *_env, jobject _this, jint x, jint y, jint z, jint width, jint height) {
   7067     glDrawTexxOES(
   7068         (GLfixed)x,
   7069         (GLfixed)y,
   7070         (GLfixed)z,
   7071         (GLfixed)width,
   7072         (GLfixed)height
   7073     );
   7074 }
   7075 
   7076 /* void glDrawTexxvOES ( const GLfixed *coords ) */
   7077 static void
   7078 android_glDrawTexxvOES___3II
   7079   (JNIEnv *_env, jobject _this, jintArray coords_ref, jint offset) {
   7080     jint _exception = 0;
   7081     const char * _exceptionType = NULL;
   7082     const char * _exceptionMessage = NULL;
   7083     GLfixed *coords_base = (GLfixed *) 0;
   7084     jint _remaining;
   7085     GLfixed *coords = (GLfixed *) 0;
   7086 
   7087     if (!coords_ref) {
   7088         _exception = 1;
   7089         _exceptionType = "java/lang/IllegalArgumentException";
   7090         _exceptionMessage = "coords == null";
   7091         goto exit;
   7092     }
   7093     if (offset < 0) {
   7094         _exception = 1;
   7095         _exceptionType = "java/lang/IllegalArgumentException";
   7096         _exceptionMessage = "offset < 0";
   7097         goto exit;
   7098     }
   7099     _remaining = _env->GetArrayLength(coords_ref) - offset;
   7100     if (_remaining < 5) {
   7101         _exception = 1;
   7102         _exceptionType = "java/lang/IllegalArgumentException";
   7103         _exceptionMessage = "length - offset < 5 < needed";
   7104         goto exit;
   7105     }
   7106     coords_base = (GLfixed *)
   7107         _env->GetPrimitiveArrayCritical(coords_ref, (jboolean *)0);
   7108     coords = coords_base + offset;
   7109 
   7110     glDrawTexxvOES(
   7111         (GLfixed *)coords
   7112     );
   7113 
   7114 exit:
   7115     if (coords_base) {
   7116         _env->ReleasePrimitiveArrayCritical(coords_ref, coords_base,
   7117             JNI_ABORT);
   7118     }
   7119     if (_exception) {
   7120         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7121     }
   7122 }
   7123 
   7124 /* void glDrawTexxvOES ( const GLfixed *coords ) */
   7125 static void
   7126 android_glDrawTexxvOES__Ljava_nio_IntBuffer_2
   7127   (JNIEnv *_env, jobject _this, jobject coords_buf) {
   7128     jint _exception = 0;
   7129     const char * _exceptionType = NULL;
   7130     const char * _exceptionMessage = NULL;
   7131     jarray _array = (jarray) 0;
   7132     jint _bufferOffset = (jint) 0;
   7133     jint _remaining;
   7134     GLfixed *coords = (GLfixed *) 0;
   7135 
   7136     coords = (GLfixed *)getPointer(_env, coords_buf, &_array, &_remaining, &_bufferOffset);
   7137     if (_remaining < 5) {
   7138         _exception = 1;
   7139         _exceptionType = "java/lang/IllegalArgumentException";
   7140         _exceptionMessage = "remaining() < 5 < needed";
   7141         goto exit;
   7142     }
   7143     if (coords == NULL) {
   7144         char * _coordsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   7145         coords = (GLfixed *) (_coordsBase + _bufferOffset);
   7146     }
   7147     glDrawTexxvOES(
   7148         (GLfixed *)coords
   7149     );
   7150 
   7151 exit:
   7152     if (_array) {
   7153         releasePointer(_env, _array, coords, JNI_FALSE);
   7154     }
   7155     if (_exception) {
   7156         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7157     }
   7158 }
   7159 
   7160 /* void glLoadPaletteFromModelViewMatrixOES ( void ) */
   7161 static void
   7162 android_glLoadPaletteFromModelViewMatrixOES__
   7163   (JNIEnv *_env, jobject _this) {
   7164     glLoadPaletteFromModelViewMatrixOES();
   7165 }
   7166 
   7167 /* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
   7168 static void
   7169 android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I
   7170   (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
   7171     jarray _array = (jarray) 0;
   7172     jint _bufferOffset = (jint) 0;
   7173     jint _remaining;
   7174     GLvoid *pointer = (GLvoid *) 0;
   7175 
   7176     if (pointer_buf) {
   7177         pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
   7178         if ( ! pointer ) {
   7179             return;
   7180         }
   7181     }
   7182     glMatrixIndexPointerOESBounds(
   7183         (GLint)size,
   7184         (GLenum)type,
   7185         (GLsizei)stride,
   7186         (GLvoid *)pointer,
   7187         (GLsizei)remaining
   7188     );
   7189 }
   7190 
   7191 /* void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
   7192 static void
   7193 android_glMatrixIndexPointerOES__IIII
   7194   (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
   7195     glMatrixIndexPointerOES(
   7196         (GLint)size,
   7197         (GLenum)type,
   7198         (GLsizei)stride,
   7199         (const GLvoid *)offset
   7200     );
   7201 }
   7202 
   7203 /* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
   7204 static void
   7205 android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I
   7206   (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
   7207     jarray _array = (jarray) 0;
   7208     jint _bufferOffset = (jint) 0;
   7209     jint _remaining;
   7210     GLvoid *pointer = (GLvoid *) 0;
   7211 
   7212     if (pointer_buf) {
   7213         pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
   7214         if ( ! pointer ) {
   7215             return;
   7216         }
   7217     }
   7218     glWeightPointerOESBounds(
   7219         (GLint)size,
   7220         (GLenum)type,
   7221         (GLsizei)stride,
   7222         (GLvoid *)pointer,
   7223         (GLsizei)remaining
   7224     );
   7225 }
   7226 
   7227 /* void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
   7228 static void
   7229 android_glWeightPointerOES__IIII
   7230   (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
   7231     glWeightPointerOES(
   7232         (GLint)size,
   7233         (GLenum)type,
   7234         (GLsizei)stride,
   7235         (const GLvoid *)offset
   7236     );
   7237 }
   7238 
   7239 /* void glBindFramebufferOES ( GLint target, GLint framebuffer ) */
   7240 static void
   7241 android_glBindFramebufferOES__II
   7242   (JNIEnv *_env, jobject _this, jint target, jint framebuffer) {
   7243     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7244         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7245             "glBindFramebufferOES");
   7246             return;
   7247     }
   7248     glBindFramebufferOES(
   7249         (GLint)target,
   7250         (GLint)framebuffer
   7251     );
   7252 }
   7253 
   7254 /* void glBindRenderbufferOES ( GLint target, GLint renderbuffer ) */
   7255 static void
   7256 android_glBindRenderbufferOES__II
   7257   (JNIEnv *_env, jobject _this, jint target, jint renderbuffer) {
   7258     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7259         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7260             "glBindRenderbufferOES");
   7261             return;
   7262     }
   7263     glBindRenderbufferOES(
   7264         (GLint)target,
   7265         (GLint)renderbuffer
   7266     );
   7267 }
   7268 
   7269 /* void glBlendEquation ( GLint mode ) */
   7270 static void
   7271 android_glBlendEquation__I
   7272   (JNIEnv *_env, jobject _this, jint mode) {
   7273     if (! supportsExtension(_env, _this, have_OES_blend_subtractID)) {
   7274         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7275             "glBlendEquation");
   7276             return;
   7277     }
   7278     glBlendEquation(
   7279         (GLint)mode
   7280     );
   7281 }
   7282 
   7283 /* void glBlendEquationSeparate ( GLint modeRGB, GLint modeAlpha ) */
   7284 static void
   7285 android_glBlendEquationSeparate__II
   7286   (JNIEnv *_env, jobject _this, jint modeRGB, jint modeAlpha) {
   7287     if (! supportsExtension(_env, _this, have_OES_blend_equation_separateID)) {
   7288         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7289             "glBlendEquationSeparate");
   7290             return;
   7291     }
   7292     glBlendEquationSeparate(
   7293         (GLint)modeRGB,
   7294         (GLint)modeAlpha
   7295     );
   7296 }
   7297 
   7298 /* void glBlendFuncSeparate ( GLint srcRGB, GLint dstRGB, GLint srcAlpha, GLint dstAlpha ) */
   7299 static void
   7300 android_glBlendFuncSeparate__IIII
   7301   (JNIEnv *_env, jobject _this, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) {
   7302     if (! supportsExtension(_env, _this, have_OES_blend_equation_separateID)) {
   7303         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7304             "glBlendFuncSeparate");
   7305             return;
   7306     }
   7307     glBlendFuncSeparate(
   7308         (GLint)srcRGB,
   7309         (GLint)dstRGB,
   7310         (GLint)srcAlpha,
   7311         (GLint)dstAlpha
   7312     );
   7313 }
   7314 
   7315 /* GLint glCheckFramebufferStatusOES ( GLint target ) */
   7316 static jint
   7317 android_glCheckFramebufferStatusOES__I
   7318   (JNIEnv *_env, jobject _this, jint target) {
   7319     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7320         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7321             "glCheckFramebufferStatusOES");
   7322     return 0;
   7323     }
   7324     GLint _returnValue = 0;
   7325     _returnValue = glCheckFramebufferStatusOES(
   7326         (GLint)target
   7327     );
   7328     return _returnValue;
   7329 }
   7330 
   7331 /* void glDeleteFramebuffersOES ( GLint n, GLuint *framebuffers ) */
   7332 static void
   7333 android_glDeleteFramebuffersOES__I_3II
   7334   (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
   7335     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7336         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7337             "glDeleteFramebuffersOES");
   7338             return;
   7339     }
   7340     jint _exception = 0;
   7341     const char * _exceptionType = NULL;
   7342     const char * _exceptionMessage = NULL;
   7343     GLuint *framebuffers_base = (GLuint *) 0;
   7344     jint _remaining;
   7345     GLuint *framebuffers = (GLuint *) 0;
   7346 
   7347     if (!framebuffers_ref) {
   7348         _exception = 1;
   7349         _exceptionType = "java/lang/IllegalArgumentException";
   7350         _exceptionMessage = "framebuffers == null";
   7351         goto exit;
   7352     }
   7353     if (offset < 0) {
   7354         _exception = 1;
   7355         _exceptionType = "java/lang/IllegalArgumentException";
   7356         _exceptionMessage = "offset < 0";
   7357         goto exit;
   7358     }
   7359     _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
   7360     if (_remaining < n) {
   7361         _exception = 1;
   7362         _exceptionType = "java/lang/IllegalArgumentException";
   7363         _exceptionMessage = "length - offset < n < needed";
   7364         goto exit;
   7365     }
   7366     framebuffers_base = (GLuint *)
   7367         _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0);
   7368     framebuffers = framebuffers_base + offset;
   7369 
   7370     glDeleteFramebuffersOES(
   7371         (GLint)n,
   7372         (GLuint *)framebuffers
   7373     );
   7374 
   7375 exit:
   7376     if (framebuffers_base) {
   7377         _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base,
   7378             _exception ? JNI_ABORT: 0);
   7379     }
   7380     if (_exception) {
   7381         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7382     }
   7383 }
   7384 
   7385 /* void glDeleteFramebuffersOES ( GLint n, GLuint *framebuffers ) */
   7386 static void
   7387 android_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2
   7388   (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
   7389     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7390         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7391             "glDeleteFramebuffersOES");
   7392             return;
   7393     }
   7394     jint _exception = 0;
   7395     const char * _exceptionType = NULL;
   7396     const char * _exceptionMessage = NULL;
   7397     jarray _array = (jarray) 0;
   7398     jint _bufferOffset = (jint) 0;
   7399     jint _remaining;
   7400     GLuint *framebuffers = (GLuint *) 0;
   7401 
   7402     framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining, &_bufferOffset);
   7403     if (_remaining < n) {
   7404         _exception = 1;
   7405         _exceptionType = "java/lang/IllegalArgumentException";
   7406         _exceptionMessage = "remaining() < n < needed";
   7407         goto exit;
   7408     }
   7409     if (framebuffers == NULL) {
   7410         char * _framebuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   7411         framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset);
   7412     }
   7413     glDeleteFramebuffersOES(
   7414         (GLint)n,
   7415         (GLuint *)framebuffers
   7416     );
   7417 
   7418 exit:
   7419     if (_array) {
   7420         releasePointer(_env, _array, framebuffers, _exception ? JNI_FALSE : JNI_TRUE);
   7421     }
   7422     if (_exception) {
   7423         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7424     }
   7425 }
   7426 
   7427 /* void glDeleteRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
   7428 static void
   7429 android_glDeleteRenderbuffersOES__I_3II
   7430   (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
   7431     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7432         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7433             "glDeleteRenderbuffersOES");
   7434             return;
   7435     }
   7436     jint _exception = 0;
   7437     const char * _exceptionType = NULL;
   7438     const char * _exceptionMessage = NULL;
   7439     GLuint *renderbuffers_base = (GLuint *) 0;
   7440     jint _remaining;
   7441     GLuint *renderbuffers = (GLuint *) 0;
   7442 
   7443     if (!renderbuffers_ref) {
   7444         _exception = 1;
   7445         _exceptionType = "java/lang/IllegalArgumentException";
   7446         _exceptionMessage = "renderbuffers == null";
   7447         goto exit;
   7448     }
   7449     if (offset < 0) {
   7450         _exception = 1;
   7451         _exceptionType = "java/lang/IllegalArgumentException";
   7452         _exceptionMessage = "offset < 0";
   7453         goto exit;
   7454     }
   7455     _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
   7456     if (_remaining < n) {
   7457         _exception = 1;
   7458         _exceptionType = "java/lang/IllegalArgumentException";
   7459         _exceptionMessage = "length - offset < n < needed";
   7460         goto exit;
   7461     }
   7462     renderbuffers_base = (GLuint *)
   7463         _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0);
   7464     renderbuffers = renderbuffers_base + offset;
   7465 
   7466     glDeleteRenderbuffersOES(
   7467         (GLint)n,
   7468         (GLuint *)renderbuffers
   7469     );
   7470 
   7471 exit:
   7472     if (renderbuffers_base) {
   7473         _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base,
   7474             _exception ? JNI_ABORT: 0);
   7475     }
   7476     if (_exception) {
   7477         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7478     }
   7479 }
   7480 
   7481 /* void glDeleteRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
   7482 static void
   7483 android_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2
   7484   (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
   7485     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7486         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7487             "glDeleteRenderbuffersOES");
   7488             return;
   7489     }
   7490     jint _exception = 0;
   7491     const char * _exceptionType = NULL;
   7492     const char * _exceptionMessage = NULL;
   7493     jarray _array = (jarray) 0;
   7494     jint _bufferOffset = (jint) 0;
   7495     jint _remaining;
   7496     GLuint *renderbuffers = (GLuint *) 0;
   7497 
   7498     renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining, &_bufferOffset);
   7499     if (_remaining < n) {
   7500         _exception = 1;
   7501         _exceptionType = "java/lang/IllegalArgumentException";
   7502         _exceptionMessage = "remaining() < n < needed";
   7503         goto exit;
   7504     }
   7505     if (renderbuffers == NULL) {
   7506         char * _renderbuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   7507         renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset);
   7508     }
   7509     glDeleteRenderbuffersOES(
   7510         (GLint)n,
   7511         (GLuint *)renderbuffers
   7512     );
   7513 
   7514 exit:
   7515     if (_array) {
   7516         releasePointer(_env, _array, renderbuffers, _exception ? JNI_FALSE : JNI_TRUE);
   7517     }
   7518     if (_exception) {
   7519         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7520     }
   7521 }
   7522 
   7523 /* void glFramebufferRenderbufferOES ( GLint target, GLint attachment, GLint renderbuffertarget, GLint renderbuffer ) */
   7524 static void
   7525 android_glFramebufferRenderbufferOES__IIII
   7526   (JNIEnv *_env, jobject _this, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer) {
   7527     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7528         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7529             "glFramebufferRenderbufferOES");
   7530             return;
   7531     }
   7532     glFramebufferRenderbufferOES(
   7533         (GLint)target,
   7534         (GLint)attachment,
   7535         (GLint)renderbuffertarget,
   7536         (GLint)renderbuffer
   7537     );
   7538 }
   7539 
   7540 /* void glFramebufferTexture2DOES ( GLint target, GLint attachment, GLint textarget, GLint texture, GLint level ) */
   7541 static void
   7542 android_glFramebufferTexture2DOES__IIIII
   7543   (JNIEnv *_env, jobject _this, jint target, jint attachment, jint textarget, jint texture, jint level) {
   7544     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7545         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7546             "glFramebufferTexture2DOES");
   7547             return;
   7548     }
   7549     glFramebufferTexture2DOES(
   7550         (GLint)target,
   7551         (GLint)attachment,
   7552         (GLint)textarget,
   7553         (GLint)texture,
   7554         (GLint)level
   7555     );
   7556 }
   7557 
   7558 /* void glGenerateMipmapOES ( GLint target ) */
   7559 static void
   7560 android_glGenerateMipmapOES__I
   7561   (JNIEnv *_env, jobject _this, jint target) {
   7562     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7563         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7564             "glGenerateMipmapOES");
   7565             return;
   7566     }
   7567     glGenerateMipmapOES(
   7568         (GLint)target
   7569     );
   7570 }
   7571 
   7572 /* void glGenFramebuffersOES ( GLint n, GLuint *framebuffers ) */
   7573 static void
   7574 android_glGenFramebuffersOES__I_3II
   7575   (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) {
   7576     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7577         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7578             "glGenFramebuffersOES");
   7579             return;
   7580     }
   7581     jint _exception = 0;
   7582     const char * _exceptionType = NULL;
   7583     const char * _exceptionMessage = NULL;
   7584     GLuint *framebuffers_base = (GLuint *) 0;
   7585     jint _remaining;
   7586     GLuint *framebuffers = (GLuint *) 0;
   7587 
   7588     if (!framebuffers_ref) {
   7589         _exception = 1;
   7590         _exceptionType = "java/lang/IllegalArgumentException";
   7591         _exceptionMessage = "framebuffers == null";
   7592         goto exit;
   7593     }
   7594     if (offset < 0) {
   7595         _exception = 1;
   7596         _exceptionType = "java/lang/IllegalArgumentException";
   7597         _exceptionMessage = "offset < 0";
   7598         goto exit;
   7599     }
   7600     _remaining = _env->GetArrayLength(framebuffers_ref) - offset;
   7601     if (_remaining < n) {
   7602         _exception = 1;
   7603         _exceptionType = "java/lang/IllegalArgumentException";
   7604         _exceptionMessage = "length - offset < n < needed";
   7605         goto exit;
   7606     }
   7607     framebuffers_base = (GLuint *)
   7608         _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0);
   7609     framebuffers = framebuffers_base + offset;
   7610 
   7611     glGenFramebuffersOES(
   7612         (GLint)n,
   7613         (GLuint *)framebuffers
   7614     );
   7615 
   7616 exit:
   7617     if (framebuffers_base) {
   7618         _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base,
   7619             _exception ? JNI_ABORT: 0);
   7620     }
   7621     if (_exception) {
   7622         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7623     }
   7624 }
   7625 
   7626 /* void glGenFramebuffersOES ( GLint n, GLuint *framebuffers ) */
   7627 static void
   7628 android_glGenFramebuffersOES__ILjava_nio_IntBuffer_2
   7629   (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) {
   7630     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7631         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7632             "glGenFramebuffersOES");
   7633             return;
   7634     }
   7635     jint _exception = 0;
   7636     const char * _exceptionType = NULL;
   7637     const char * _exceptionMessage = NULL;
   7638     jarray _array = (jarray) 0;
   7639     jint _bufferOffset = (jint) 0;
   7640     jint _remaining;
   7641     GLuint *framebuffers = (GLuint *) 0;
   7642 
   7643     framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining, &_bufferOffset);
   7644     if (_remaining < n) {
   7645         _exception = 1;
   7646         _exceptionType = "java/lang/IllegalArgumentException";
   7647         _exceptionMessage = "remaining() < n < needed";
   7648         goto exit;
   7649     }
   7650     if (framebuffers == NULL) {
   7651         char * _framebuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   7652         framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset);
   7653     }
   7654     glGenFramebuffersOES(
   7655         (GLint)n,
   7656         (GLuint *)framebuffers
   7657     );
   7658 
   7659 exit:
   7660     if (_array) {
   7661         releasePointer(_env, _array, framebuffers, _exception ? JNI_FALSE : JNI_TRUE);
   7662     }
   7663     if (_exception) {
   7664         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7665     }
   7666 }
   7667 
   7668 /* void glGenRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
   7669 static void
   7670 android_glGenRenderbuffersOES__I_3II
   7671   (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) {
   7672     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7673         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7674             "glGenRenderbuffersOES");
   7675             return;
   7676     }
   7677     jint _exception = 0;
   7678     const char * _exceptionType = NULL;
   7679     const char * _exceptionMessage = NULL;
   7680     GLuint *renderbuffers_base = (GLuint *) 0;
   7681     jint _remaining;
   7682     GLuint *renderbuffers = (GLuint *) 0;
   7683 
   7684     if (!renderbuffers_ref) {
   7685         _exception = 1;
   7686         _exceptionType = "java/lang/IllegalArgumentException";
   7687         _exceptionMessage = "renderbuffers == null";
   7688         goto exit;
   7689     }
   7690     if (offset < 0) {
   7691         _exception = 1;
   7692         _exceptionType = "java/lang/IllegalArgumentException";
   7693         _exceptionMessage = "offset < 0";
   7694         goto exit;
   7695     }
   7696     _remaining = _env->GetArrayLength(renderbuffers_ref) - offset;
   7697     if (_remaining < n) {
   7698         _exception = 1;
   7699         _exceptionType = "java/lang/IllegalArgumentException";
   7700         _exceptionMessage = "length - offset < n < needed";
   7701         goto exit;
   7702     }
   7703     renderbuffers_base = (GLuint *)
   7704         _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0);
   7705     renderbuffers = renderbuffers_base + offset;
   7706 
   7707     glGenRenderbuffersOES(
   7708         (GLint)n,
   7709         (GLuint *)renderbuffers
   7710     );
   7711 
   7712 exit:
   7713     if (renderbuffers_base) {
   7714         _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base,
   7715             _exception ? JNI_ABORT: 0);
   7716     }
   7717     if (_exception) {
   7718         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7719     }
   7720 }
   7721 
   7722 /* void glGenRenderbuffersOES ( GLint n, GLuint *renderbuffers ) */
   7723 static void
   7724 android_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2
   7725   (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) {
   7726     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7727         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7728             "glGenRenderbuffersOES");
   7729             return;
   7730     }
   7731     jint _exception = 0;
   7732     const char * _exceptionType = NULL;
   7733     const char * _exceptionMessage = NULL;
   7734     jarray _array = (jarray) 0;
   7735     jint _bufferOffset = (jint) 0;
   7736     jint _remaining;
   7737     GLuint *renderbuffers = (GLuint *) 0;
   7738 
   7739     renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining, &_bufferOffset);
   7740     if (_remaining < n) {
   7741         _exception = 1;
   7742         _exceptionType = "java/lang/IllegalArgumentException";
   7743         _exceptionMessage = "remaining() < n < needed";
   7744         goto exit;
   7745     }
   7746     if (renderbuffers == NULL) {
   7747         char * _renderbuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   7748         renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset);
   7749     }
   7750     glGenRenderbuffersOES(
   7751         (GLint)n,
   7752         (GLuint *)renderbuffers
   7753     );
   7754 
   7755 exit:
   7756     if (_array) {
   7757         releasePointer(_env, _array, renderbuffers, _exception ? JNI_FALSE : JNI_TRUE);
   7758     }
   7759     if (_exception) {
   7760         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7761     }
   7762 }
   7763 
   7764 /* void glGetFramebufferAttachmentParameterivOES ( GLint target, GLint attachment, GLint pname, GLint *params ) */
   7765 static void
   7766 android_glGetFramebufferAttachmentParameterivOES__III_3II
   7767   (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jintArray params_ref, jint offset) {
   7768     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7769         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7770             "glGetFramebufferAttachmentParameterivOES");
   7771             return;
   7772     }
   7773     jint _exception = 0;
   7774     const char * _exceptionType = NULL;
   7775     const char * _exceptionMessage = NULL;
   7776     GLint *params_base = (GLint *) 0;
   7777     jint _remaining;
   7778     GLint *params = (GLint *) 0;
   7779 
   7780     if (!params_ref) {
   7781         _exception = 1;
   7782         _exceptionType = "java/lang/IllegalArgumentException";
   7783         _exceptionMessage = "params == null";
   7784         goto exit;
   7785     }
   7786     if (offset < 0) {
   7787         _exception = 1;
   7788         _exceptionType = "java/lang/IllegalArgumentException";
   7789         _exceptionMessage = "offset < 0";
   7790         goto exit;
   7791     }
   7792     _remaining = _env->GetArrayLength(params_ref) - offset;
   7793     params_base = (GLint *)
   7794         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   7795     params = params_base + offset;
   7796 
   7797     glGetFramebufferAttachmentParameterivOES(
   7798         (GLint)target,
   7799         (GLint)attachment,
   7800         (GLint)pname,
   7801         (GLint *)params
   7802     );
   7803 
   7804 exit:
   7805     if (params_base) {
   7806         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   7807             _exception ? JNI_ABORT: 0);
   7808     }
   7809     if (_exception) {
   7810         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7811     }
   7812 }
   7813 
   7814 /* void glGetFramebufferAttachmentParameterivOES ( GLint target, GLint attachment, GLint pname, GLint *params ) */
   7815 static void
   7816 android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2
   7817   (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) {
   7818     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7819         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7820             "glGetFramebufferAttachmentParameterivOES");
   7821             return;
   7822     }
   7823     jarray _array = (jarray) 0;
   7824     jint _bufferOffset = (jint) 0;
   7825     jint _remaining;
   7826     GLint *params = (GLint *) 0;
   7827 
   7828     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   7829     if (params == NULL) {
   7830         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   7831         params = (GLint *) (_paramsBase + _bufferOffset);
   7832     }
   7833     glGetFramebufferAttachmentParameterivOES(
   7834         (GLint)target,
   7835         (GLint)attachment,
   7836         (GLint)pname,
   7837         (GLint *)params
   7838     );
   7839     if (_array) {
   7840         releasePointer(_env, _array, params, JNI_TRUE);
   7841     }
   7842 }
   7843 
   7844 /* void glGetRenderbufferParameterivOES ( GLint target, GLint pname, GLint *params ) */
   7845 static void
   7846 android_glGetRenderbufferParameterivOES__II_3II
   7847   (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
   7848     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7849         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7850             "glGetRenderbufferParameterivOES");
   7851             return;
   7852     }
   7853     jint _exception = 0;
   7854     const char * _exceptionType = NULL;
   7855     const char * _exceptionMessage = NULL;
   7856     GLint *params_base = (GLint *) 0;
   7857     jint _remaining;
   7858     GLint *params = (GLint *) 0;
   7859 
   7860     if (!params_ref) {
   7861         _exception = 1;
   7862         _exceptionType = "java/lang/IllegalArgumentException";
   7863         _exceptionMessage = "params == null";
   7864         goto exit;
   7865     }
   7866     if (offset < 0) {
   7867         _exception = 1;
   7868         _exceptionType = "java/lang/IllegalArgumentException";
   7869         _exceptionMessage = "offset < 0";
   7870         goto exit;
   7871     }
   7872     _remaining = _env->GetArrayLength(params_ref) - offset;
   7873     params_base = (GLint *)
   7874         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   7875     params = params_base + offset;
   7876 
   7877     glGetRenderbufferParameterivOES(
   7878         (GLint)target,
   7879         (GLint)pname,
   7880         (GLint *)params
   7881     );
   7882 
   7883 exit:
   7884     if (params_base) {
   7885         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   7886             _exception ? JNI_ABORT: 0);
   7887     }
   7888     if (_exception) {
   7889         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7890     }
   7891 }
   7892 
   7893 /* void glGetRenderbufferParameterivOES ( GLint target, GLint pname, GLint *params ) */
   7894 static void
   7895 android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2
   7896   (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
   7897     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   7898         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7899             "glGetRenderbufferParameterivOES");
   7900             return;
   7901     }
   7902     jarray _array = (jarray) 0;
   7903     jint _bufferOffset = (jint) 0;
   7904     jint _remaining;
   7905     GLint *params = (GLint *) 0;
   7906 
   7907     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   7908     if (params == NULL) {
   7909         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   7910         params = (GLint *) (_paramsBase + _bufferOffset);
   7911     }
   7912     glGetRenderbufferParameterivOES(
   7913         (GLint)target,
   7914         (GLint)pname,
   7915         (GLint *)params
   7916     );
   7917     if (_array) {
   7918         releasePointer(_env, _array, params, JNI_TRUE);
   7919     }
   7920 }
   7921 
   7922 /* void glGetTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
   7923 static void
   7924 android_glGetTexGenfv__II_3FI
   7925   (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
   7926     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   7927         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7928             "glGetTexGenfv");
   7929             return;
   7930     }
   7931     jint _exception = 0;
   7932     const char * _exceptionType = NULL;
   7933     const char * _exceptionMessage = NULL;
   7934     GLfloat *params_base = (GLfloat *) 0;
   7935     jint _remaining;
   7936     GLfloat *params = (GLfloat *) 0;
   7937 
   7938     if (!params_ref) {
   7939         _exception = 1;
   7940         _exceptionType = "java/lang/IllegalArgumentException";
   7941         _exceptionMessage = "params == null";
   7942         goto exit;
   7943     }
   7944     if (offset < 0) {
   7945         _exception = 1;
   7946         _exceptionType = "java/lang/IllegalArgumentException";
   7947         _exceptionMessage = "offset < 0";
   7948         goto exit;
   7949     }
   7950     _remaining = _env->GetArrayLength(params_ref) - offset;
   7951     params_base = (GLfloat *)
   7952         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   7953     params = params_base + offset;
   7954 
   7955     glGetTexGenfv(
   7956         (GLint)coord,
   7957         (GLint)pname,
   7958         (GLfloat *)params
   7959     );
   7960 
   7961 exit:
   7962     if (params_base) {
   7963         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   7964             _exception ? JNI_ABORT: 0);
   7965     }
   7966     if (_exception) {
   7967         jniThrowException(_env, _exceptionType, _exceptionMessage);
   7968     }
   7969 }
   7970 
   7971 /* void glGetTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
   7972 static void
   7973 android_glGetTexGenfv__IILjava_nio_FloatBuffer_2
   7974   (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
   7975     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   7976         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   7977             "glGetTexGenfv");
   7978             return;
   7979     }
   7980     jarray _array = (jarray) 0;
   7981     jint _bufferOffset = (jint) 0;
   7982     jint _remaining;
   7983     GLfloat *params = (GLfloat *) 0;
   7984 
   7985     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   7986     if (params == NULL) {
   7987         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   7988         params = (GLfloat *) (_paramsBase + _bufferOffset);
   7989     }
   7990     glGetTexGenfv(
   7991         (GLint)coord,
   7992         (GLint)pname,
   7993         (GLfloat *)params
   7994     );
   7995     if (_array) {
   7996         releasePointer(_env, _array, params, JNI_TRUE);
   7997     }
   7998 }
   7999 
   8000 /* void glGetTexGeniv ( GLint coord, GLint pname, GLint *params ) */
   8001 static void
   8002 android_glGetTexGeniv__II_3II
   8003   (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
   8004     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8005         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8006             "glGetTexGeniv");
   8007             return;
   8008     }
   8009     jint _exception = 0;
   8010     const char * _exceptionType = NULL;
   8011     const char * _exceptionMessage = NULL;
   8012     GLint *params_base = (GLint *) 0;
   8013     jint _remaining;
   8014     GLint *params = (GLint *) 0;
   8015 
   8016     if (!params_ref) {
   8017         _exception = 1;
   8018         _exceptionType = "java/lang/IllegalArgumentException";
   8019         _exceptionMessage = "params == null";
   8020         goto exit;
   8021     }
   8022     if (offset < 0) {
   8023         _exception = 1;
   8024         _exceptionType = "java/lang/IllegalArgumentException";
   8025         _exceptionMessage = "offset < 0";
   8026         goto exit;
   8027     }
   8028     _remaining = _env->GetArrayLength(params_ref) - offset;
   8029     params_base = (GLint *)
   8030         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   8031     params = params_base + offset;
   8032 
   8033     glGetTexGeniv(
   8034         (GLint)coord,
   8035         (GLint)pname,
   8036         (GLint *)params
   8037     );
   8038 
   8039 exit:
   8040     if (params_base) {
   8041         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   8042             _exception ? JNI_ABORT: 0);
   8043     }
   8044     if (_exception) {
   8045         jniThrowException(_env, _exceptionType, _exceptionMessage);
   8046     }
   8047 }
   8048 
   8049 /* void glGetTexGeniv ( GLint coord, GLint pname, GLint *params ) */
   8050 static void
   8051 android_glGetTexGeniv__IILjava_nio_IntBuffer_2
   8052   (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
   8053     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8054         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8055             "glGetTexGeniv");
   8056             return;
   8057     }
   8058     jarray _array = (jarray) 0;
   8059     jint _bufferOffset = (jint) 0;
   8060     jint _remaining;
   8061     GLint *params = (GLint *) 0;
   8062 
   8063     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   8064     if (params == NULL) {
   8065         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   8066         params = (GLint *) (_paramsBase + _bufferOffset);
   8067     }
   8068     glGetTexGeniv(
   8069         (GLint)coord,
   8070         (GLint)pname,
   8071         (GLint *)params
   8072     );
   8073     if (_array) {
   8074         releasePointer(_env, _array, params, JNI_TRUE);
   8075     }
   8076 }
   8077 
   8078 /* void glGetTexGenxv ( GLint coord, GLint pname, GLint *params ) */
   8079 static void
   8080 android_glGetTexGenxv__II_3II
   8081   (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
   8082     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8083         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8084             "glGetTexGenxv");
   8085             return;
   8086     }
   8087     jint _exception = 0;
   8088     const char * _exceptionType = NULL;
   8089     const char * _exceptionMessage = NULL;
   8090     GLint *params_base = (GLint *) 0;
   8091     jint _remaining;
   8092     GLint *params = (GLint *) 0;
   8093 
   8094     if (!params_ref) {
   8095         _exception = 1;
   8096         _exceptionType = "java/lang/IllegalArgumentException";
   8097         _exceptionMessage = "params == null";
   8098         goto exit;
   8099     }
   8100     if (offset < 0) {
   8101         _exception = 1;
   8102         _exceptionType = "java/lang/IllegalArgumentException";
   8103         _exceptionMessage = "offset < 0";
   8104         goto exit;
   8105     }
   8106     _remaining = _env->GetArrayLength(params_ref) - offset;
   8107     params_base = (GLint *)
   8108         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   8109     params = params_base + offset;
   8110 
   8111     glGetTexGenxv(
   8112         (GLint)coord,
   8113         (GLint)pname,
   8114         (GLint *)params
   8115     );
   8116 
   8117 exit:
   8118     if (params_base) {
   8119         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   8120             _exception ? JNI_ABORT: 0);
   8121     }
   8122     if (_exception) {
   8123         jniThrowException(_env, _exceptionType, _exceptionMessage);
   8124     }
   8125 }
   8126 
   8127 /* void glGetTexGenxv ( GLint coord, GLint pname, GLint *params ) */
   8128 static void
   8129 android_glGetTexGenxv__IILjava_nio_IntBuffer_2
   8130   (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
   8131     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8132         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8133             "glGetTexGenxv");
   8134             return;
   8135     }
   8136     jarray _array = (jarray) 0;
   8137     jint _bufferOffset = (jint) 0;
   8138     jint _remaining;
   8139     GLint *params = (GLint *) 0;
   8140 
   8141     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   8142     if (params == NULL) {
   8143         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   8144         params = (GLint *) (_paramsBase + _bufferOffset);
   8145     }
   8146     glGetTexGenxv(
   8147         (GLint)coord,
   8148         (GLint)pname,
   8149         (GLint *)params
   8150     );
   8151     if (_array) {
   8152         releasePointer(_env, _array, params, JNI_TRUE);
   8153     }
   8154 }
   8155 
   8156 /* GLboolean glIsFramebufferOES ( GLint framebuffer ) */
   8157 static jboolean
   8158 android_glIsFramebufferOES__I
   8159   (JNIEnv *_env, jobject _this, jint framebuffer) {
   8160     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   8161         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8162             "glIsFramebufferOES");
   8163     return JNI_FALSE;
   8164     }
   8165     GLboolean _returnValue = JNI_FALSE;
   8166     _returnValue = glIsFramebufferOES(
   8167         (GLint)framebuffer
   8168     );
   8169     return _returnValue;
   8170 }
   8171 
   8172 /* GLboolean glIsRenderbufferOES ( GLint renderbuffer ) */
   8173 static jboolean
   8174 android_glIsRenderbufferOES__I
   8175   (JNIEnv *_env, jobject _this, jint renderbuffer) {
   8176     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   8177         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8178             "glIsRenderbufferOES");
   8179     return JNI_FALSE;
   8180     }
   8181     GLboolean _returnValue = JNI_FALSE;
   8182     _returnValue = glIsRenderbufferOES(
   8183         (GLint)renderbuffer
   8184     );
   8185     return _returnValue;
   8186 }
   8187 
   8188 /* void glRenderbufferStorageOES ( GLint target, GLint internalformat, GLint width, GLint height ) */
   8189 static void
   8190 android_glRenderbufferStorageOES__IIII
   8191   (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint width, jint height) {
   8192     if (! supportsExtension(_env, _this, have_OES_framebuffer_objectID)) {
   8193         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8194             "glRenderbufferStorageOES");
   8195             return;
   8196     }
   8197     glRenderbufferStorageOES(
   8198         (GLint)target,
   8199         (GLint)internalformat,
   8200         (GLint)width,
   8201         (GLint)height
   8202     );
   8203 }
   8204 
   8205 /* void glTexGenf ( GLint coord, GLint pname, GLfloat param ) */
   8206 static void
   8207 android_glTexGenf__IIF
   8208   (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloat param) {
   8209     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8210         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8211             "glTexGenf");
   8212             return;
   8213     }
   8214     glTexGenf(
   8215         (GLint)coord,
   8216         (GLint)pname,
   8217         (GLfloat)param
   8218     );
   8219 }
   8220 
   8221 /* void glTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
   8222 static void
   8223 android_glTexGenfv__II_3FI
   8224   (JNIEnv *_env, jobject _this, jint coord, jint pname, jfloatArray params_ref, jint offset) {
   8225     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8226         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8227             "glTexGenfv");
   8228             return;
   8229     }
   8230     jint _exception = 0;
   8231     const char * _exceptionType = NULL;
   8232     const char * _exceptionMessage = NULL;
   8233     GLfloat *params_base = (GLfloat *) 0;
   8234     jint _remaining;
   8235     GLfloat *params = (GLfloat *) 0;
   8236 
   8237     if (!params_ref) {
   8238         _exception = 1;
   8239         _exceptionType = "java/lang/IllegalArgumentException";
   8240         _exceptionMessage = "params == null";
   8241         goto exit;
   8242     }
   8243     if (offset < 0) {
   8244         _exception = 1;
   8245         _exceptionType = "java/lang/IllegalArgumentException";
   8246         _exceptionMessage = "offset < 0";
   8247         goto exit;
   8248     }
   8249     _remaining = _env->GetArrayLength(params_ref) - offset;
   8250     params_base = (GLfloat *)
   8251         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   8252     params = params_base + offset;
   8253 
   8254     glTexGenfv(
   8255         (GLint)coord,
   8256         (GLint)pname,
   8257         (GLfloat *)params
   8258     );
   8259 
   8260 exit:
   8261     if (params_base) {
   8262         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   8263             _exception ? JNI_ABORT: 0);
   8264     }
   8265     if (_exception) {
   8266         jniThrowException(_env, _exceptionType, _exceptionMessage);
   8267     }
   8268 }
   8269 
   8270 /* void glTexGenfv ( GLint coord, GLint pname, GLfloat *params ) */
   8271 static void
   8272 android_glTexGenfv__IILjava_nio_FloatBuffer_2
   8273   (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
   8274     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8275         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8276             "glTexGenfv");
   8277             return;
   8278     }
   8279     jarray _array = (jarray) 0;
   8280     jint _bufferOffset = (jint) 0;
   8281     jint _remaining;
   8282     GLfloat *params = (GLfloat *) 0;
   8283 
   8284     params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   8285     if (params == NULL) {
   8286         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   8287         params = (GLfloat *) (_paramsBase + _bufferOffset);
   8288     }
   8289     glTexGenfv(
   8290         (GLint)coord,
   8291         (GLint)pname,
   8292         (GLfloat *)params
   8293     );
   8294     if (_array) {
   8295         releasePointer(_env, _array, params, JNI_TRUE);
   8296     }
   8297 }
   8298 
   8299 /* void glTexGeni ( GLint coord, GLint pname, GLint param ) */
   8300 static void
   8301 android_glTexGeni__III
   8302   (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
   8303     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8304         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8305             "glTexGeni");
   8306             return;
   8307     }
   8308     glTexGeni(
   8309         (GLint)coord,
   8310         (GLint)pname,
   8311         (GLint)param
   8312     );
   8313 }
   8314 
   8315 /* void glTexGeniv ( GLint coord, GLint pname, GLint *params ) */
   8316 static void
   8317 android_glTexGeniv__II_3II
   8318   (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
   8319     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8320         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8321             "glTexGeniv");
   8322             return;
   8323     }
   8324     jint _exception = 0;
   8325     const char * _exceptionType = NULL;
   8326     const char * _exceptionMessage = NULL;
   8327     GLint *params_base = (GLint *) 0;
   8328     jint _remaining;
   8329     GLint *params = (GLint *) 0;
   8330 
   8331     if (!params_ref) {
   8332         _exception = 1;
   8333         _exceptionType = "java/lang/IllegalArgumentException";
   8334         _exceptionMessage = "params == null";
   8335         goto exit;
   8336     }
   8337     if (offset < 0) {
   8338         _exception = 1;
   8339         _exceptionType = "java/lang/IllegalArgumentException";
   8340         _exceptionMessage = "offset < 0";
   8341         goto exit;
   8342     }
   8343     _remaining = _env->GetArrayLength(params_ref) - offset;
   8344     params_base = (GLint *)
   8345         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   8346     params = params_base + offset;
   8347 
   8348     glTexGeniv(
   8349         (GLint)coord,
   8350         (GLint)pname,
   8351         (GLint *)params
   8352     );
   8353 
   8354 exit:
   8355     if (params_base) {
   8356         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   8357             _exception ? JNI_ABORT: 0);
   8358     }
   8359     if (_exception) {
   8360         jniThrowException(_env, _exceptionType, _exceptionMessage);
   8361     }
   8362 }
   8363 
   8364 /* void glTexGeniv ( GLint coord, GLint pname, GLint *params ) */
   8365 static void
   8366 android_glTexGeniv__IILjava_nio_IntBuffer_2
   8367   (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
   8368     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8369         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8370             "glTexGeniv");
   8371             return;
   8372     }
   8373     jarray _array = (jarray) 0;
   8374     jint _bufferOffset = (jint) 0;
   8375     jint _remaining;
   8376     GLint *params = (GLint *) 0;
   8377 
   8378     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   8379     if (params == NULL) {
   8380         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   8381         params = (GLint *) (_paramsBase + _bufferOffset);
   8382     }
   8383     glTexGeniv(
   8384         (GLint)coord,
   8385         (GLint)pname,
   8386         (GLint *)params
   8387     );
   8388     if (_array) {
   8389         releasePointer(_env, _array, params, JNI_TRUE);
   8390     }
   8391 }
   8392 
   8393 /* void glTexGenx ( GLint coord, GLint pname, GLint param ) */
   8394 static void
   8395 android_glTexGenx__III
   8396   (JNIEnv *_env, jobject _this, jint coord, jint pname, jint param) {
   8397     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8398         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8399             "glTexGenx");
   8400             return;
   8401     }
   8402     glTexGenx(
   8403         (GLint)coord,
   8404         (GLint)pname,
   8405         (GLint)param
   8406     );
   8407 }
   8408 
   8409 /* void glTexGenxv ( GLint coord, GLint pname, GLint *params ) */
   8410 static void
   8411 android_glTexGenxv__II_3II
   8412   (JNIEnv *_env, jobject _this, jint coord, jint pname, jintArray params_ref, jint offset) {
   8413     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8414         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8415             "glTexGenxv");
   8416             return;
   8417     }
   8418     jint _exception = 0;
   8419     const char * _exceptionType = NULL;
   8420     const char * _exceptionMessage = NULL;
   8421     GLint *params_base = (GLint *) 0;
   8422     jint _remaining;
   8423     GLint *params = (GLint *) 0;
   8424 
   8425     if (!params_ref) {
   8426         _exception = 1;
   8427         _exceptionType = "java/lang/IllegalArgumentException";
   8428         _exceptionMessage = "params == null";
   8429         goto exit;
   8430     }
   8431     if (offset < 0) {
   8432         _exception = 1;
   8433         _exceptionType = "java/lang/IllegalArgumentException";
   8434         _exceptionMessage = "offset < 0";
   8435         goto exit;
   8436     }
   8437     _remaining = _env->GetArrayLength(params_ref) - offset;
   8438     params_base = (GLint *)
   8439         _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
   8440     params = params_base + offset;
   8441 
   8442     glTexGenxv(
   8443         (GLint)coord,
   8444         (GLint)pname,
   8445         (GLint *)params
   8446     );
   8447 
   8448 exit:
   8449     if (params_base) {
   8450         _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
   8451             _exception ? JNI_ABORT: 0);
   8452     }
   8453     if (_exception) {
   8454         jniThrowException(_env, _exceptionType, _exceptionMessage);
   8455     }
   8456 }
   8457 
   8458 /* void glTexGenxv ( GLint coord, GLint pname, GLint *params ) */
   8459 static void
   8460 android_glTexGenxv__IILjava_nio_IntBuffer_2
   8461   (JNIEnv *_env, jobject _this, jint coord, jint pname, jobject params_buf) {
   8462     if (! supportsExtension(_env, _this, have_OES_texture_cube_mapID)) {
   8463         jniThrowException(_env, "java/lang/UnsupportedOperationException",
   8464             "glTexGenxv");
   8465             return;
   8466     }
   8467     jarray _array = (jarray) 0;
   8468     jint _bufferOffset = (jint) 0;
   8469     jint _remaining;
   8470     GLint *params = (GLint *) 0;
   8471 
   8472     params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
   8473     if (params == NULL) {
   8474         char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
   8475         params = (GLint *) (_paramsBase + _bufferOffset);
   8476     }
   8477     glTexGenxv(
   8478         (GLint)coord,
   8479         (GLint)pname,
   8480         (GLint *)params
   8481     );
   8482     if (_array) {
   8483         releasePointer(_env, _array, params, JNI_TRUE);
   8484     }
   8485 }
   8486 
   8487 static const char *classPathName = "com/google/android/gles_jni/GLImpl";
   8488 
   8489 static JNINativeMethod methods[] = {
   8490 {"_nativeClassInit", "()V", (void*)nativeClassInit },
   8491 {"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I },
   8492 {"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF },
   8493 {"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II },
   8494 {"glBindTexture", "(II)V", (void *) android_glBindTexture__II },
   8495 {"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II },
   8496 {"glClear", "(I)V", (void *) android_glClear__I },
   8497 {"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF },
   8498 {"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII },
   8499 {"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F },
   8500 {"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I },
   8501 {"glClearStencil", "(I)V", (void *) android_glClearStencil__I },
   8502 {"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I },
   8503 {"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF },
   8504 {"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII },
   8505 {"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ },
   8506 {"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I },
   8507 {"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 },
   8508 {"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
   8509 {"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII },
   8510 {"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII },
   8511 {"glCullFace", "(I)V", (void *) android_glCullFace__I },
   8512 {"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II },
   8513 {"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 },
   8514 {"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I },
   8515 {"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z },
   8516 {"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF },
   8517 {"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II },
   8518 {"glDisable", "(I)V", (void *) android_glDisable__I },
   8519 {"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I },
   8520 {"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III },
   8521 {"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 },
   8522 {"glEnable", "(I)V", (void *) android_glEnable__I },
   8523 {"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I },
   8524 {"glFinish", "()V", (void *) android_glFinish__ },
   8525 {"glFlush", "()V", (void *) android_glFlush__ },
   8526 {"glFogf", "(IF)V", (void *) android_glFogf__IF },
   8527 {"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI },
   8528 {"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 },
   8529 {"glFogx", "(II)V", (void *) android_glFogx__II },
   8530 {"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II },
   8531 {"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 },
   8532 {"glFrontFace", "(I)V", (void *) android_glFrontFace__I },
   8533 {"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF },
   8534 {"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII },
   8535 {"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II },
   8536 {"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 },
   8537 {"glGetError", "()I", (void *) android_glGetError__ },
   8538 {"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II },
   8539 {"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 },
   8540 {"_glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },
   8541 {"glHint", "(II)V", (void *) android_glHint__II },
   8542 {"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF },
   8543 {"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI },
   8544 {"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 },
   8545 {"glLightModelx", "(II)V", (void *) android_glLightModelx__II },
   8546 {"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II },
   8547 {"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 },
   8548 {"glLightf", "(IIF)V", (void *) android_glLightf__IIF },
   8549 {"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI },
   8550 {"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 },
   8551 {"glLightx", "(III)V", (void *) android_glLightx__III },
   8552 {"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II },
   8553 {"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 },
   8554 {"glLineWidth", "(F)V", (void *) android_glLineWidth__F },
   8555 {"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I },
   8556 {"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ },
   8557 {"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI },
   8558 {"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 },
   8559 {"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II },
   8560 {"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 },
   8561 {"glLogicOp", "(I)V", (void *) android_glLogicOp__I },
   8562 {"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF },
   8563 {"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI },
   8564 {"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 },
   8565 {"glMaterialx", "(III)V", (void *) android_glMaterialx__III },
   8566 {"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II },
   8567 {"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 },
   8568 {"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I },
   8569 {"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI },
   8570 {"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 },
   8571 {"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II },
   8572 {"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 },
   8573 {"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF },
   8574 {"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII },
   8575 {"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF },
   8576 {"glNormal3x", "(III)V", (void *) android_glNormal3x__III },
   8577 {"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I },
   8578 {"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF },
   8579 {"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII },
   8580 {"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II },
   8581 {"glPointSize", "(F)V", (void *) android_glPointSize__F },
   8582 {"glPointSizex", "(I)V", (void *) android_glPointSizex__I },
   8583 {"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF },
   8584 {"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II },
   8585 {"glPopMatrix", "()V", (void *) android_glPopMatrix__ },
   8586 {"glPushMatrix", "()V", (void *) android_glPushMatrix__ },
   8587 {"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 },
   8588 {"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF },
   8589 {"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII },
   8590 {"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ },
   8591 {"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ },
   8592 {"glScalef", "(FFF)V", (void *) android_glScalef__FFF },
   8593 {"glScalex", "(III)V", (void *) android_glScalex__III },
   8594 {"glScissor", "(IIII)V", (void *) android_glScissor__IIII },
   8595 {"glShadeModel", "(I)V", (void *) android_glShadeModel__I },
   8596 {"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III },
   8597 {"glStencilMask", "(I)V", (void *) android_glStencilMask__I },
   8598 {"glStencilOp", "(III)V", (void *) android_glStencilOp__III },
   8599 {"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I },
   8600 {"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF },
   8601 {"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI },
   8602 {"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 },
   8603 {"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III },
   8604 {"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II },
   8605 {"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 },
   8606 {"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 },
   8607 {"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF },
   8608 {"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III },
   8609 {"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
   8610 {"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF },
   8611 {"glTranslatex", "(III)V", (void *) android_glTranslatex__III },
   8612 {"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I },
   8613 {"glViewport", "(IIII)V", (void *) android_glViewport__IIII },
   8614 {"glQueryMatrixxOES", "([II[II)I", (void *) android_glQueryMatrixxOES___3II_3II },
   8615 {"glQueryMatrixxOES", "(Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)I", (void *) android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 },
   8616 {"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II },
   8617 {"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I },
   8618 {"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 },
   8619 {"glClipPlanef", "(I[FI)V", (void *) android_glClipPlanef__I_3FI },
   8620 {"glClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanef__ILjava_nio_FloatBuffer_2 },
   8621 {"glClipPlanex", "(I[II)V", (void *) android_glClipPlanex__I_3II },
   8622 {"glClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanex__ILjava_nio_IntBuffer_2 },
   8623 {"glColor4ub", "(BBBB)V", (void *) android_glColor4ub__BBBB },
   8624 {"glColorPointer", "(IIII)V", (void *) android_glColorPointer__IIII },
   8625 {"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II },
   8626 {"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 },
   8627 {"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII },
   8628 {"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II },
   8629 {"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 },
   8630 {"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI },
   8631 {"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 },
   8632 {"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II },
   8633 {"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 },
   8634 {"glGetClipPlanef", "(I[FI)V", (void *) android_glGetClipPlanef__I_3FI },
   8635 {"glGetClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 },
   8636 {"glGetClipPlanex", "(I[II)V", (void *) android_glGetClipPlanex__I_3II },
   8637 {"glGetClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanex__ILjava_nio_IntBuffer_2 },
   8638 {"glGetFixedv", "(I[II)V", (void *) android_glGetFixedv__I_3II },
   8639 {"glGetFixedv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedv__ILjava_nio_IntBuffer_2 },
   8640 {"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI },
   8641 {"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 },
   8642 {"glGetLightfv", "(II[FI)V", (void *) android_glGetLightfv__II_3FI },
   8643 {"glGetLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetLightfv__IILjava_nio_FloatBuffer_2 },
   8644 {"glGetLightxv", "(II[II)V", (void *) android_glGetLightxv__II_3II },
   8645 {"glGetLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxv__IILjava_nio_IntBuffer_2 },
   8646 {"glGetMaterialfv", "(II[FI)V", (void *) android_glGetMaterialfv__II_3FI },
   8647 {"glGetMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 },
   8648 {"glGetMaterialxv", "(II[II)V", (void *) android_glGetMaterialxv__II_3II },
   8649 {"glGetMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxv__IILjava_nio_IntBuffer_2 },
   8650 {"glGetTexEnviv", "(II[II)V", (void *) android_glGetTexEnviv__II_3II },
   8651 {"glGetTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnviv__IILjava_nio_IntBuffer_2 },
   8652 {"glGetTexEnvxv", "(II[II)V", (void *) android_glGetTexEnvxv__II_3II },
   8653 {"glGetTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 },
   8654 {"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI },
   8655 {"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 },
   8656 {"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II },
   8657 {"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 },
   8658 {"glGetTexParameterxv", "(II[II)V", (void *) android_glGetTexParameterxv__II_3II },
   8659 {"glGetTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 },
   8660 {"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I },
   8661 {"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I },
   8662 {"glIsTexture", "(I)Z", (void *) android_glIsTexture__I },
   8663 {"glNormalPointer", "(III)V", (void *) android_glNormalPointer__III },
   8664 {"glPointParameterf", "(IF)V", (void *) android_glPointParameterf__IF },
   8665 {"glPointParameterfv", "(I[FI)V", (void *) android_glPointParameterfv__I_3FI },
   8666 {"glPointParameterfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glPointParameterfv__ILjava_nio_FloatBuffer_2 },
   8667 {"glPointParameterx", "(II)V", (void *) android_glPointParameterx__II },
   8668 {"glPointParameterxv", "(I[II)V", (void *) android_glPointParameterxv__I_3II },
   8669 {"glPointParameterxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxv__ILjava_nio_IntBuffer_2 },
   8670 {"glPointSizePointerOESBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I },
   8671 {"glTexCoordPointer", "(IIII)V", (void *) android_glTexCoordPointer__IIII },
   8672 {"glTexEnvi", "(III)V", (void *) android_glTexEnvi__III },
   8673 {"glTexEnviv", "(II[II)V", (void *) android_glTexEnviv__II_3II },
   8674 {"glTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnviv__IILjava_nio_IntBuffer_2 },
   8675 {"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI },
   8676 {"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 },
   8677 {"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III },
   8678 {"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II },
   8679 {"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 },
   8680 {"glTexParameterxv", "(II[II)V", (void *) android_glTexParameterxv__II_3II },
   8681 {"glTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxv__IILjava_nio_IntBuffer_2 },
   8682 {"glVertexPointer", "(IIII)V", (void *) android_glVertexPointer__IIII },
   8683 {"glCurrentPaletteMatrixOES", "(I)V", (void *) android_glCurrentPaletteMatrixOES__I },
   8684 {"glDrawTexfOES", "(FFFFF)V", (void *) android_glDrawTexfOES__FFFFF },
   8685 {"glDrawTexfvOES", "([FI)V", (void *) android_glDrawTexfvOES___3FI },
   8686 {"glDrawTexfvOES", "(Ljava/nio/FloatBuffer;)V", (void *) android_glDrawTexfvOES__Ljava_nio_FloatBuffer_2 },
   8687 {"glDrawTexiOES", "(IIIII)V", (void *) android_glDrawTexiOES__IIIII },
   8688 {"glDrawTexivOES", "([II)V", (void *) android_glDrawTexivOES___3II },
   8689 {"glDrawTexivOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexivOES__Ljava_nio_IntBuffer_2 },
   8690 {"glDrawTexsOES", "(SSSSS)V", (void *) android_glDrawTexsOES__SSSSS },
   8691 {"glDrawTexsvOES", "([SI)V", (void *) android_glDrawTexsvOES___3SI },
   8692 {"glDrawTexsvOES", "(Ljava/nio/ShortBuffer;)V", (void *) android_glDrawTexsvOES__Ljava_nio_ShortBuffer_2 },
   8693 {"glDrawTexxOES", "(IIIII)V", (void *) android_glDrawTexxOES__IIIII },
   8694 {"glDrawTexxvOES", "([II)V", (void *) android_glDrawTexxvOES___3II },
   8695 {"glDrawTexxvOES", "(Ljava/nio/IntBuffer;)V", (void *) android_glDrawTexxvOES__Ljava_nio_IntBuffer_2 },
   8696 {"glLoadPaletteFromModelViewMatrixOES", "()V", (void *) android_glLoadPaletteFromModelViewMatrixOES__ },
   8697 {"glMatrixIndexPointerOESBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glMatrixIndexPointerOESBounds__IIILjava_nio_Buffer_2I },
   8698 {"glMatrixIndexPointerOES", "(IIII)V", (void *) android_glMatrixIndexPointerOES__IIII },
   8699 {"glWeightPointerOESBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glWeightPointerOESBounds__IIILjava_nio_Buffer_2I },
   8700 {"glWeightPointerOES", "(IIII)V", (void *) android_glWeightPointerOES__IIII },
   8701 {"glBindFramebufferOES", "(II)V", (void *) android_glBindFramebufferOES__II },
   8702 {"glBindRenderbufferOES", "(II)V", (void *) android_glBindRenderbufferOES__II },
   8703 {"glBlendEquation", "(I)V", (void *) android_glBlendEquation__I },
   8704 {"glBlendEquationSeparate", "(II)V", (void *) android_glBlendEquationSeparate__II },
   8705 {"glBlendFuncSeparate", "(IIII)V", (void *) android_glBlendFuncSeparate__IIII },
   8706 {"glCheckFramebufferStatusOES", "(I)I", (void *) android_glCheckFramebufferStatusOES__I },
   8707 {"glDeleteFramebuffersOES", "(I[II)V", (void *) android_glDeleteFramebuffersOES__I_3II },
   8708 {"glDeleteFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteFramebuffersOES__ILjava_nio_IntBuffer_2 },
   8709 {"glDeleteRenderbuffersOES", "(I[II)V", (void *) android_glDeleteRenderbuffersOES__I_3II },
   8710 {"glDeleteRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteRenderbuffersOES__ILjava_nio_IntBuffer_2 },
   8711 {"glFramebufferRenderbufferOES", "(IIII)V", (void *) android_glFramebufferRenderbufferOES__IIII },
   8712 {"glFramebufferTexture2DOES", "(IIIII)V", (void *) android_glFramebufferTexture2DOES__IIIII },
   8713 {"glGenerateMipmapOES", "(I)V", (void *) android_glGenerateMipmapOES__I },
   8714 {"glGenFramebuffersOES", "(I[II)V", (void *) android_glGenFramebuffersOES__I_3II },
   8715 {"glGenFramebuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenFramebuffersOES__ILjava_nio_IntBuffer_2 },
   8716 {"glGenRenderbuffersOES", "(I[II)V", (void *) android_glGenRenderbuffersOES__I_3II },
   8717 {"glGenRenderbuffersOES", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenRenderbuffersOES__ILjava_nio_IntBuffer_2 },
   8718 {"glGetFramebufferAttachmentParameterivOES", "(III[II)V", (void *) android_glGetFramebufferAttachmentParameterivOES__III_3II },
   8719 {"glGetFramebufferAttachmentParameterivOES", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetFramebufferAttachmentParameterivOES__IIILjava_nio_IntBuffer_2 },
   8720 {"glGetRenderbufferParameterivOES", "(II[II)V", (void *) android_glGetRenderbufferParameterivOES__II_3II },
   8721 {"glGetRenderbufferParameterivOES", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetRenderbufferParameterivOES__IILjava_nio_IntBuffer_2 },
   8722 {"glGetTexGenfv", "(II[FI)V", (void *) android_glGetTexGenfv__II_3FI },
   8723 {"glGetTexGenfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexGenfv__IILjava_nio_FloatBuffer_2 },
   8724 {"glGetTexGeniv", "(II[II)V", (void *) android_glGetTexGeniv__II_3II },
   8725 {"glGetTexGeniv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGeniv__IILjava_nio_IntBuffer_2 },
   8726 {"glGetTexGenxv", "(II[II)V", (void *) android_glGetTexGenxv__II_3II },
   8727 {"glGetTexGenxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexGenxv__IILjava_nio_IntBuffer_2 },
   8728 {"glIsFramebufferOES", "(I)Z", (void *) android_glIsFramebufferOES__I },
   8729 {"glIsRenderbufferOES", "(I)Z", (void *) android_glIsRenderbufferOES__I },
   8730 {"glRenderbufferStorageOES", "(IIII)V", (void *) android_glRenderbufferStorageOES__IIII },
   8731 {"glTexGenf", "(IIF)V", (void *) android_glTexGenf__IIF },
   8732 {"glTexGenfv", "(II[FI)V", (void *) android_glTexGenfv__II_3FI },
   8733 {"glTexGenfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexGenfv__IILjava_nio_FloatBuffer_2 },
   8734 {"glTexGeni", "(III)V", (void *) android_glTexGeni__III },
   8735 {"glTexGeniv", "(II[II)V", (void *) android_glTexGeniv__II_3II },
   8736 {"glTexGeniv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGeniv__IILjava_nio_IntBuffer_2 },
   8737 {"glTexGenx", "(III)V", (void *) android_glTexGenx__III },
   8738 {"glTexGenxv", "(II[II)V", (void *) android_glTexGenxv__II_3II },
   8739 {"glTexGenxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexGenxv__IILjava_nio_IntBuffer_2 },
   8740 };
   8741 
   8742 int register_com_google_android_gles_jni_GLImpl(JNIEnv *_env)
   8743 {
   8744     int err;
   8745     err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
   8746     return err;
   8747 }
   8748