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