blob: 117ff353e4a9e77fc82d4a017ed2db76f4d2017c [file] [log] [blame]
Jack Palevich27f80022009-04-15 19:13:17 -07001/*
2**
3** Copyright 2009, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9** http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17
18// This source file is automatically generated
19
20#include <android_runtime/AndroidRuntime.h>
21#include <utils/misc.h>
22
23#include <assert.h>
24#include <GLES/gl.h>
25
26#include <private/opengles/gl_context.h>
27
28#define _NUM_COMPRESSED_TEXTURE_FORMATS \
29 (::android::OGLES_NUM_COMPRESSED_TEXTURE_FORMATS)
30
31static int initialized = 0;
32
33static jclass nioAccessClass;
34static jclass bufferClass;
35static jclass OOMEClass;
36static jclass UOEClass;
37static jclass IAEClass;
38static jclass AIOOBEClass;
39static jmethodID getBasePointerID;
40static jmethodID getBaseArrayID;
41static jmethodID getBaseArrayOffsetID;
42static jfieldID positionID;
43static jfieldID limitID;
44static jfieldID elementSizeShiftID;
45
46/* Cache method IDs each time the class is loaded. */
47
48static void
49nativeClassInitBuffer(JNIEnv *_env)
50{
51 jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
52 nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
53
54 jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
55 bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
56
57 getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
58 "getBasePointer", "(Ljava/nio/Buffer;)J");
59 getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
60 "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
61 getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
62 "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
63
64 positionID = _env->GetFieldID(bufferClass, "position", "I");
65 limitID = _env->GetFieldID(bufferClass, "limit", "I");
66 elementSizeShiftID =
67 _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
68}
69
70
71static void
72nativeClassInit(JNIEnv *_env, jclass glImplClass)
73{
74 nativeClassInitBuffer(_env);
75
76 jclass IAEClassLocal =
77 _env->FindClass("java/lang/IllegalArgumentException");
78 jclass OOMEClassLocal =
79 _env->FindClass("java/lang/OutOfMemoryError");
80 jclass UOEClassLocal =
81 _env->FindClass("java/lang/UnsupportedOperationException");
82 jclass AIOOBEClassLocal =
83 _env->FindClass("java/lang/ArrayIndexOutOfBoundsException");
84
85 IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
86 OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
87 UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
88 AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal);
89}
90
91static void *
92getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
93{
94 jint position;
95 jint limit;
96 jint elementSizeShift;
97 jlong pointer;
98 jint offset;
99 void *data;
100
101 position = _env->GetIntField(buffer, positionID);
102 limit = _env->GetIntField(buffer, limitID);
103 elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
104 *remaining = (limit - position) << elementSizeShift;
105 pointer = _env->CallStaticLongMethod(nioAccessClass,
106 getBasePointerID, buffer);
107 if (pointer != 0L) {
108 *array = NULL;
109 return (void *) (jint) pointer;
110 }
111
112 *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
113 getBaseArrayID, buffer);
114 offset = _env->CallStaticIntMethod(nioAccessClass,
115 getBaseArrayOffsetID, buffer);
116 data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
117
118 return (void *) ((char *) data + offset);
119}
120
121
122static void
123releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
124{
125 _env->ReleasePrimitiveArrayCritical(array, data,
126 commit ? 0 : JNI_ABORT);
127}
128
129// --------------------------------------------------------------------------
130
131/* void glActiveTexture ( GLenum texture ) */
132static void
133android_glActiveTexture__I
134 (JNIEnv *_env, jobject _this, jint texture) {
135 glActiveTexture(
136 (GLenum)texture
137 );
138}
139
140/* void glAlphaFunc ( GLenum func, GLclampf ref ) */
141static void
142android_glAlphaFunc__IF
143 (JNIEnv *_env, jobject _this, jint func, jfloat ref) {
144 glAlphaFunc(
145 (GLenum)func,
146 (GLclampf)ref
147 );
148}
149
150/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */
151static void
152android_glAlphaFuncx__II
153 (JNIEnv *_env, jobject _this, jint func, jint ref) {
154 glAlphaFuncx(
155 (GLenum)func,
156 (GLclampx)ref
157 );
158}
159
160/* void glBindTexture ( GLenum target, GLuint texture ) */
161static void
162android_glBindTexture__II
163 (JNIEnv *_env, jobject _this, jint target, jint texture) {
164 glBindTexture(
165 (GLenum)target,
166 (GLuint)texture
167 );
168}
169
170/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */
171static void
172android_glBlendFunc__II
173 (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) {
174 glBlendFunc(
175 (GLenum)sfactor,
176 (GLenum)dfactor
177 );
178}
179
180/* void glClear ( GLbitfield mask ) */
181static void
182android_glClear__I
183 (JNIEnv *_env, jobject _this, jint mask) {
184 glClear(
185 (GLbitfield)mask
186 );
187}
188
189/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */
190static void
191android_glClearColor__FFFF
192 (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
193 glClearColor(
194 (GLclampf)red,
195 (GLclampf)green,
196 (GLclampf)blue,
197 (GLclampf)alpha
198 );
199}
200
201/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */
202static void
203android_glClearColorx__IIII
204 (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
205 glClearColorx(
206 (GLclampx)red,
207 (GLclampx)green,
208 (GLclampx)blue,
209 (GLclampx)alpha
210 );
211}
212
213/* void glClearDepthf ( GLclampf depth ) */
214static void
215android_glClearDepthf__F
216 (JNIEnv *_env, jobject _this, jfloat depth) {
217 glClearDepthf(
218 (GLclampf)depth
219 );
220}
221
222/* void glClearDepthx ( GLclampx depth ) */
223static void
224android_glClearDepthx__I
225 (JNIEnv *_env, jobject _this, jint depth) {
226 glClearDepthx(
227 (GLclampx)depth
228 );
229}
230
231/* void glClearStencil ( GLint s ) */
232static void
233android_glClearStencil__I
234 (JNIEnv *_env, jobject _this, jint s) {
235 glClearStencil(
236 (GLint)s
237 );
238}
239
240/* void glClientActiveTexture ( GLenum texture ) */
241static void
242android_glClientActiveTexture__I
243 (JNIEnv *_env, jobject _this, jint texture) {
244 glClientActiveTexture(
245 (GLenum)texture
246 );
247}
248
249/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */
250static void
251android_glColor4f__FFFF
252 (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
253 glColor4f(
254 (GLfloat)red,
255 (GLfloat)green,
256 (GLfloat)blue,
257 (GLfloat)alpha
258 );
259}
260
261/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */
262static void
263android_glColor4x__IIII
264 (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
265 glColor4x(
266 (GLfixed)red,
267 (GLfixed)green,
268 (GLfixed)blue,
269 (GLfixed)alpha
270 );
271}
272
273/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */
274static void
275android_glColorMask__ZZZZ
276 (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) {
277 glColorMask(
278 (GLboolean)red,
279 (GLboolean)green,
280 (GLboolean)blue,
281 (GLboolean)alpha
282 );
283}
284
285/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
286static void
287android_glColorPointerBounds__IIILjava_nio_Buffer_2I
288 (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
289 jarray _array = (jarray) 0;
290 jint _remaining;
291 GLvoid *pointer = (GLvoid *) 0;
292
293 pointer = (GLvoid *)getPointer(_env, pointer_buf, &_array, &_remaining);
294 glColorPointerBounds(
295 (GLint)size,
296 (GLenum)type,
297 (GLsizei)stride,
298 (GLvoid *)pointer,
299 (GLsizei)remaining
300 );
301 if (_array) {
302 releasePointer(_env, _array, pointer, JNI_FALSE);
303 }
304}
305
306/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */
307static void
308android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2
309 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) {
310 jarray _array = (jarray) 0;
311 jint _remaining;
312 GLvoid *data = (GLvoid *) 0;
313
314 data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
315 glCompressedTexImage2D(
316 (GLenum)target,
317 (GLint)level,
318 (GLenum)internalformat,
319 (GLsizei)width,
320 (GLsizei)height,
321 (GLint)border,
322 (GLsizei)imageSize,
323 (GLvoid *)data
324 );
325 if (_array) {
326 releasePointer(_env, _array, data, JNI_FALSE);
327 }
328}
329
330/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */
331static void
332android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
333 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) {
334 jarray _array = (jarray) 0;
335 jint _remaining;
336 GLvoid *data = (GLvoid *) 0;
337
338 data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
339 glCompressedTexSubImage2D(
340 (GLenum)target,
341 (GLint)level,
342 (GLint)xoffset,
343 (GLint)yoffset,
344 (GLsizei)width,
345 (GLsizei)height,
346 (GLenum)format,
347 (GLsizei)imageSize,
348 (GLvoid *)data
349 );
350 if (_array) {
351 releasePointer(_env, _array, data, JNI_FALSE);
352 }
353}
354
355/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */
356static void
357android_glCopyTexImage2D__IIIIIIII
358 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) {
359 glCopyTexImage2D(
360 (GLenum)target,
361 (GLint)level,
362 (GLenum)internalformat,
363 (GLint)x,
364 (GLint)y,
365 (GLsizei)width,
366 (GLsizei)height,
367 (GLint)border
368 );
369}
370
371/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */
372static void
373android_glCopyTexSubImage2D__IIIIIIII
374 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) {
375 glCopyTexSubImage2D(
376 (GLenum)target,
377 (GLint)level,
378 (GLint)xoffset,
379 (GLint)yoffset,
380 (GLint)x,
381 (GLint)y,
382 (GLsizei)width,
383 (GLsizei)height
384 );
385}
386
387/* void glCullFace ( GLenum mode ) */
388static void
389android_glCullFace__I
390 (JNIEnv *_env, jobject _this, jint mode) {
391 glCullFace(
392 (GLenum)mode
393 );
394}
395
396/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
397static void
398android_glDeleteTextures__I_3II
399 (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
400 GLuint *textures_base = (GLuint *) 0;
401 jint _remaining;
402 GLuint *textures = (GLuint *) 0;
403
404 if (!textures_ref) {
405 _env->ThrowNew(IAEClass, "textures == null");
406 goto exit;
407 }
408 if (offset < 0) {
409 _env->ThrowNew(IAEClass, "offset < 0");
410 goto exit;
411 }
412 _remaining = _env->GetArrayLength(textures_ref) - offset;
413 if (_remaining < n) {
414 _env->ThrowNew(IAEClass, "length - offset < n");
415 goto exit;
416 }
417 textures_base = (GLuint *)
418 _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
419 textures = textures_base + offset;
420
421 glDeleteTextures(
422 (GLsizei)n,
423 (GLuint *)textures
424 );
425
426exit:
427 if (textures_base) {
428 _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
429 JNI_ABORT);
430 }
431}
432
433/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
434static void
435android_glDeleteTextures__ILjava_nio_IntBuffer_2
436 (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
437 jarray _array = (jarray) 0;
438 jint _remaining;
439 GLuint *textures = (GLuint *) 0;
440
441 textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining);
442 if (_remaining < n) {
443 _env->ThrowNew(IAEClass, "remaining() < n");
444 goto exit;
445 }
446 glDeleteTextures(
447 (GLsizei)n,
448 (GLuint *)textures
449 );
450
451exit:
452 if (_array) {
453 releasePointer(_env, _array, textures, JNI_FALSE);
454 }
455}
456
457/* void glDepthFunc ( GLenum func ) */
458static void
459android_glDepthFunc__I
460 (JNIEnv *_env, jobject _this, jint func) {
461 glDepthFunc(
462 (GLenum)func
463 );
464}
465
466/* void glDepthMask ( GLboolean flag ) */
467static void
468android_glDepthMask__Z
469 (JNIEnv *_env, jobject _this, jboolean flag) {
470 glDepthMask(
471 (GLboolean)flag
472 );
473}
474
475/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */
476static void
477android_glDepthRangef__FF
478 (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
479 glDepthRangef(
480 (GLclampf)zNear,
481 (GLclampf)zFar
482 );
483}
484
485/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */
486static void
487android_glDepthRangex__II
488 (JNIEnv *_env, jobject _this, jint zNear, jint zFar) {
489 glDepthRangex(
490 (GLclampx)zNear,
491 (GLclampx)zFar
492 );
493}
494
495/* void glDisable ( GLenum cap ) */
496static void
497android_glDisable__I
498 (JNIEnv *_env, jobject _this, jint cap) {
499 glDisable(
500 (GLenum)cap
501 );
502}
503
504/* void glDisableClientState ( GLenum array ) */
505static void
506android_glDisableClientState__I
507 (JNIEnv *_env, jobject _this, jint array) {
508 glDisableClientState(
509 (GLenum)array
510 );
511}
512
513/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */
514static void
515android_glDrawArrays__III
516 (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) {
517 glDrawArrays(
518 (GLenum)mode,
519 (GLint)first,
520 (GLsizei)count
521 );
522}
523
524/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */
525static void
526android_glDrawElements__IIILjava_nio_Buffer_2
527 (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) {
528 jarray _array = (jarray) 0;
529 jint _remaining;
530 GLvoid *indices = (GLvoid *) 0;
531
532 indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining);
533 if (_remaining < count) {
534 _env->ThrowNew(AIOOBEClass, "remaining() < count");
535 goto exit;
536 }
537 glDrawElements(
538 (GLenum)mode,
539 (GLsizei)count,
540 (GLenum)type,
541 (GLvoid *)indices
542 );
543
544exit:
545 if (_array) {
546 releasePointer(_env, _array, indices, JNI_FALSE);
547 }
548}
549
550/* void glEnable ( GLenum cap ) */
551static void
552android_glEnable__I
553 (JNIEnv *_env, jobject _this, jint cap) {
554 glEnable(
555 (GLenum)cap
556 );
557}
558
559/* void glEnableClientState ( GLenum array ) */
560static void
561android_glEnableClientState__I
562 (JNIEnv *_env, jobject _this, jint array) {
563 glEnableClientState(
564 (GLenum)array
565 );
566}
567
568/* void glFinish ( void ) */
569static void
570android_glFinish__
571 (JNIEnv *_env, jobject _this) {
572 glFinish();
573}
574
575/* void glFlush ( void ) */
576static void
577android_glFlush__
578 (JNIEnv *_env, jobject _this) {
579 glFlush();
580}
581
582/* void glFogf ( GLenum pname, GLfloat param ) */
583static void
584android_glFogf__IF
585 (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
586 glFogf(
587 (GLenum)pname,
588 (GLfloat)param
589 );
590}
591
592/* void glFogfv ( GLenum pname, const GLfloat *params ) */
593static void
594android_glFogfv__I_3FI
595 (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
596 GLfloat *params_base = (GLfloat *) 0;
597 jint _remaining;
598 GLfloat *params = (GLfloat *) 0;
599
600 if (!params_ref) {
601 _env->ThrowNew(IAEClass, "params == null");
602 goto exit;
603 }
604 if (offset < 0) {
605 _env->ThrowNew(IAEClass, "offset < 0");
606 goto exit;
607 }
608 _remaining = _env->GetArrayLength(params_ref) - offset;
609 int _needed;
610 switch (pname) {
611#if defined(GL_FOG_MODE)
612 case GL_FOG_MODE:
613#endif // defined(GL_FOG_MODE)
614#if defined(GL_FOG_DENSITY)
615 case GL_FOG_DENSITY:
616#endif // defined(GL_FOG_DENSITY)
617#if defined(GL_FOG_START)
618 case GL_FOG_START:
619#endif // defined(GL_FOG_START)
620#if defined(GL_FOG_END)
621 case GL_FOG_END:
622#endif // defined(GL_FOG_END)
623 _needed = 1;
624 break;
625#if defined(GL_FOG_COLOR)
626 case GL_FOG_COLOR:
627#endif // defined(GL_FOG_COLOR)
628 _needed = 4;
629 break;
630 default:
631 _needed = 0;
632 break;
633 }
634 if (_remaining < _needed) {
635 _env->ThrowNew(IAEClass, "length - offset < needed");
636 goto exit;
637 }
638 params_base = (GLfloat *)
639 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
640 params = params_base + offset;
641
642 glFogfv(
643 (GLenum)pname,
644 (GLfloat *)params
645 );
646
647exit:
648 if (params_base) {
649 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
650 JNI_ABORT);
651 }
652}
653
654/* void glFogfv ( GLenum pname, const GLfloat *params ) */
655static void
656android_glFogfv__ILjava_nio_FloatBuffer_2
657 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
658 jarray _array = (jarray) 0;
659 jint _remaining;
660 GLfloat *params = (GLfloat *) 0;
661
662 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
663 int _needed;
664 switch (pname) {
665#if defined(GL_FOG_MODE)
666 case GL_FOG_MODE:
667#endif // defined(GL_FOG_MODE)
668#if defined(GL_FOG_DENSITY)
669 case GL_FOG_DENSITY:
670#endif // defined(GL_FOG_DENSITY)
671#if defined(GL_FOG_START)
672 case GL_FOG_START:
673#endif // defined(GL_FOG_START)
674#if defined(GL_FOG_END)
675 case GL_FOG_END:
676#endif // defined(GL_FOG_END)
677 _needed = 1;
678 break;
679#if defined(GL_FOG_COLOR)
680 case GL_FOG_COLOR:
681#endif // defined(GL_FOG_COLOR)
682 _needed = 4;
683 break;
684 default:
685 _needed = 0;
686 break;
687 }
688 if (_remaining < _needed) {
689 _env->ThrowNew(IAEClass, "remaining() < needed");
690 goto exit;
691 }
692 glFogfv(
693 (GLenum)pname,
694 (GLfloat *)params
695 );
696
697exit:
698 if (_array) {
699 releasePointer(_env, _array, params, JNI_FALSE);
700 }
701}
702
703/* void glFogx ( GLenum pname, GLfixed param ) */
704static void
705android_glFogx__II
706 (JNIEnv *_env, jobject _this, jint pname, jint param) {
707 glFogx(
708 (GLenum)pname,
709 (GLfixed)param
710 );
711}
712
713/* void glFogxv ( GLenum pname, const GLfixed *params ) */
714static void
715android_glFogxv__I_3II
716 (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
717 GLfixed *params_base = (GLfixed *) 0;
718 jint _remaining;
719 GLfixed *params = (GLfixed *) 0;
720
721 if (!params_ref) {
722 _env->ThrowNew(IAEClass, "params == null");
723 goto exit;
724 }
725 if (offset < 0) {
726 _env->ThrowNew(IAEClass, "offset < 0");
727 goto exit;
728 }
729 _remaining = _env->GetArrayLength(params_ref) - offset;
730 int _needed;
731 switch (pname) {
732#if defined(GL_FOG_MODE)
733 case GL_FOG_MODE:
734#endif // defined(GL_FOG_MODE)
735#if defined(GL_FOG_DENSITY)
736 case GL_FOG_DENSITY:
737#endif // defined(GL_FOG_DENSITY)
738#if defined(GL_FOG_START)
739 case GL_FOG_START:
740#endif // defined(GL_FOG_START)
741#if defined(GL_FOG_END)
742 case GL_FOG_END:
743#endif // defined(GL_FOG_END)
744 _needed = 1;
745 break;
746#if defined(GL_FOG_COLOR)
747 case GL_FOG_COLOR:
748#endif // defined(GL_FOG_COLOR)
749 _needed = 4;
750 break;
751 default:
752 _needed = 0;
753 break;
754 }
755 if (_remaining < _needed) {
756 _env->ThrowNew(IAEClass, "length - offset < needed");
757 goto exit;
758 }
759 params_base = (GLfixed *)
760 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
761 params = params_base + offset;
762
763 glFogxv(
764 (GLenum)pname,
765 (GLfixed *)params
766 );
767
768exit:
769 if (params_base) {
770 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
771 JNI_ABORT);
772 }
773}
774
775/* void glFogxv ( GLenum pname, const GLfixed *params ) */
776static void
777android_glFogxv__ILjava_nio_IntBuffer_2
778 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
779 jarray _array = (jarray) 0;
780 jint _remaining;
781 GLfixed *params = (GLfixed *) 0;
782
783 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
784 int _needed;
785 switch (pname) {
786#if defined(GL_FOG_MODE)
787 case GL_FOG_MODE:
788#endif // defined(GL_FOG_MODE)
789#if defined(GL_FOG_DENSITY)
790 case GL_FOG_DENSITY:
791#endif // defined(GL_FOG_DENSITY)
792#if defined(GL_FOG_START)
793 case GL_FOG_START:
794#endif // defined(GL_FOG_START)
795#if defined(GL_FOG_END)
796 case GL_FOG_END:
797#endif // defined(GL_FOG_END)
798 _needed = 1;
799 break;
800#if defined(GL_FOG_COLOR)
801 case GL_FOG_COLOR:
802#endif // defined(GL_FOG_COLOR)
803 _needed = 4;
804 break;
805 default:
806 _needed = 0;
807 break;
808 }
809 if (_remaining < _needed) {
810 _env->ThrowNew(IAEClass, "remaining() < needed");
811 goto exit;
812 }
813 glFogxv(
814 (GLenum)pname,
815 (GLfixed *)params
816 );
817
818exit:
819 if (_array) {
820 releasePointer(_env, _array, params, JNI_FALSE);
821 }
822}
823
824/* void glFrontFace ( GLenum mode ) */
825static void
826android_glFrontFace__I
827 (JNIEnv *_env, jobject _this, jint mode) {
828 glFrontFace(
829 (GLenum)mode
830 );
831}
832
833/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
834static void
835android_glFrustumf__FFFFFF
836 (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
837 glFrustumf(
838 (GLfloat)left,
839 (GLfloat)right,
840 (GLfloat)bottom,
841 (GLfloat)top,
842 (GLfloat)zNear,
843 (GLfloat)zFar
844 );
845}
846
847/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
848static void
849android_glFrustumx__IIIIII
850 (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
851 glFrustumx(
852 (GLfixed)left,
853 (GLfixed)right,
854 (GLfixed)bottom,
855 (GLfixed)top,
856 (GLfixed)zNear,
857 (GLfixed)zFar
858 );
859}
860
861/* void glGenTextures ( GLsizei n, GLuint *textures ) */
862static void
863android_glGenTextures__I_3II
864 (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
865 jint _exception = 0;
866 GLuint *textures_base = (GLuint *) 0;
867 jint _remaining;
868 GLuint *textures = (GLuint *) 0;
869
870 if (!textures_ref) {
871 _exception = 1;
872 _env->ThrowNew(IAEClass, "textures == null");
873 goto exit;
874 }
875 if (offset < 0) {
876 _exception = 1;
877 _env->ThrowNew(IAEClass, "offset < 0");
878 goto exit;
879 }
880 _remaining = _env->GetArrayLength(textures_ref) - offset;
881 if (_remaining < n) {
882 _exception = 1;
883 _env->ThrowNew(IAEClass, "length - offset < n");
884 goto exit;
885 }
886 textures_base = (GLuint *)
887 _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
888 textures = textures_base + offset;
889
890 glGenTextures(
891 (GLsizei)n,
892 (GLuint *)textures
893 );
894
895exit:
896 if (textures_base) {
897 _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
898 _exception ? JNI_ABORT: 0);
899 }
900}
901
902/* void glGenTextures ( GLsizei n, GLuint *textures ) */
903static void
904android_glGenTextures__ILjava_nio_IntBuffer_2
905 (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
906 jint _exception = 0;
907 jarray _array = (jarray) 0;
908 jint _remaining;
909 GLuint *textures = (GLuint *) 0;
910
911 textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining);
912 if (_remaining < n) {
913 _exception = 1;
914 _env->ThrowNew(IAEClass, "remaining() < n");
915 goto exit;
916 }
917 glGenTextures(
918 (GLsizei)n,
919 (GLuint *)textures
920 );
921
922exit:
923 if (_array) {
924 releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE);
925 }
926}
927
928/* GLenum glGetError ( void ) */
929static jint
930android_glGetError__
931 (JNIEnv *_env, jobject _this) {
932 GLenum _returnValue;
933 _returnValue = glGetError();
934 return _returnValue;
935}
936
937/* void glGetIntegerv ( GLenum pname, GLint *params ) */
938static void
939android_glGetIntegerv__I_3II
940 (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
941 jint _exception = 0;
942 GLint *params_base = (GLint *) 0;
943 jint _remaining;
944 GLint *params = (GLint *) 0;
945
946 if (!params_ref) {
947 _exception = 1;
948 _env->ThrowNew(IAEClass, "params == null");
949 goto exit;
950 }
951 if (offset < 0) {
952 _exception = 1;
953 _env->ThrowNew(IAEClass, "offset < 0");
954 goto exit;
955 }
956 _remaining = _env->GetArrayLength(params_ref) - offset;
957 int _needed;
958 switch (pname) {
959#if defined(GL_ALPHA_BITS)
960 case GL_ALPHA_BITS:
961#endif // defined(GL_ALPHA_BITS)
962#if defined(GL_ALPHA_TEST_FUNC)
963 case GL_ALPHA_TEST_FUNC:
964#endif // defined(GL_ALPHA_TEST_FUNC)
965#if defined(GL_ALPHA_TEST_REF)
966 case GL_ALPHA_TEST_REF:
967#endif // defined(GL_ALPHA_TEST_REF)
968#if defined(GL_BLEND_DST)
969 case GL_BLEND_DST:
970#endif // defined(GL_BLEND_DST)
971#if defined(GL_BLUE_BITS)
972 case GL_BLUE_BITS:
973#endif // defined(GL_BLUE_BITS)
974#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
975 case GL_COLOR_ARRAY_BUFFER_BINDING:
976#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
977#if defined(GL_COLOR_ARRAY_SIZE)
978 case GL_COLOR_ARRAY_SIZE:
979#endif // defined(GL_COLOR_ARRAY_SIZE)
980#if defined(GL_COLOR_ARRAY_STRIDE)
981 case GL_COLOR_ARRAY_STRIDE:
982#endif // defined(GL_COLOR_ARRAY_STRIDE)
983#if defined(GL_COLOR_ARRAY_TYPE)
984 case GL_COLOR_ARRAY_TYPE:
985#endif // defined(GL_COLOR_ARRAY_TYPE)
986#if defined(GL_CULL_FACE)
987 case GL_CULL_FACE:
988#endif // defined(GL_CULL_FACE)
989#if defined(GL_DEPTH_BITS)
990 case GL_DEPTH_BITS:
991#endif // defined(GL_DEPTH_BITS)
992#if defined(GL_DEPTH_CLEAR_VALUE)
993 case GL_DEPTH_CLEAR_VALUE:
994#endif // defined(GL_DEPTH_CLEAR_VALUE)
995#if defined(GL_DEPTH_FUNC)
996 case GL_DEPTH_FUNC:
997#endif // defined(GL_DEPTH_FUNC)
998#if defined(GL_DEPTH_WRITEMASK)
999 case GL_DEPTH_WRITEMASK:
1000#endif // defined(GL_DEPTH_WRITEMASK)
1001#if defined(GL_FOG_DENSITY)
1002 case GL_FOG_DENSITY:
1003#endif // defined(GL_FOG_DENSITY)
1004#if defined(GL_FOG_END)
1005 case GL_FOG_END:
1006#endif // defined(GL_FOG_END)
1007#if defined(GL_FOG_MODE)
1008 case GL_FOG_MODE:
1009#endif // defined(GL_FOG_MODE)
1010#if defined(GL_FOG_START)
1011 case GL_FOG_START:
1012#endif // defined(GL_FOG_START)
1013#if defined(GL_FRONT_FACE)
1014 case GL_FRONT_FACE:
1015#endif // defined(GL_FRONT_FACE)
1016#if defined(GL_GREEN_BITS)
1017 case GL_GREEN_BITS:
1018#endif // defined(GL_GREEN_BITS)
1019#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
1020 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
1021#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
1022#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1023 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
1024#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1025#if defined(GL_LIGHT_MODEL_TWO_SIDE)
1026 case GL_LIGHT_MODEL_TWO_SIDE:
1027#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
1028#if defined(GL_LINE_SMOOTH_HINT)
1029 case GL_LINE_SMOOTH_HINT:
1030#endif // defined(GL_LINE_SMOOTH_HINT)
1031#if defined(GL_LINE_WIDTH)
1032 case GL_LINE_WIDTH:
1033#endif // defined(GL_LINE_WIDTH)
1034#if defined(GL_LOGIC_OP_MODE)
1035 case GL_LOGIC_OP_MODE:
1036#endif // defined(GL_LOGIC_OP_MODE)
1037#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
1038 case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
1039#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
1040#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
1041 case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
1042#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
1043#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
1044 case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
1045#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
1046#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
1047 case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
1048#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
1049#if defined(GL_MATRIX_MODE)
1050 case GL_MATRIX_MODE:
1051#endif // defined(GL_MATRIX_MODE)
1052#if defined(GL_MAX_CLIP_PLANES)
1053 case GL_MAX_CLIP_PLANES:
1054#endif // defined(GL_MAX_CLIP_PLANES)
1055#if defined(GL_MAX_ELEMENTS_INDICES)
1056 case GL_MAX_ELEMENTS_INDICES:
1057#endif // defined(GL_MAX_ELEMENTS_INDICES)
1058#if defined(GL_MAX_ELEMENTS_VERTICES)
1059 case GL_MAX_ELEMENTS_VERTICES:
1060#endif // defined(GL_MAX_ELEMENTS_VERTICES)
1061#if defined(GL_MAX_LIGHTS)
1062 case GL_MAX_LIGHTS:
1063#endif // defined(GL_MAX_LIGHTS)
1064#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
1065 case GL_MAX_MODELVIEW_STACK_DEPTH:
1066#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
1067#if defined(GL_MAX_PALETTE_MATRICES_OES)
1068 case GL_MAX_PALETTE_MATRICES_OES:
1069#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
1070#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
1071 case GL_MAX_PROJECTION_STACK_DEPTH:
1072#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
1073#if defined(GL_MAX_TEXTURE_SIZE)
1074 case GL_MAX_TEXTURE_SIZE:
1075#endif // defined(GL_MAX_TEXTURE_SIZE)
1076#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
1077 case GL_MAX_TEXTURE_STACK_DEPTH:
1078#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
1079#if defined(GL_MAX_TEXTURE_UNITS)
1080 case GL_MAX_TEXTURE_UNITS:
1081#endif // defined(GL_MAX_TEXTURE_UNITS)
1082#if defined(GL_MAX_VERTEX_UNITS_OES)
1083 case GL_MAX_VERTEX_UNITS_OES:
1084#endif // defined(GL_MAX_VERTEX_UNITS_OES)
1085#if defined(GL_MODELVIEW_STACK_DEPTH)
1086 case GL_MODELVIEW_STACK_DEPTH:
1087#endif // defined(GL_MODELVIEW_STACK_DEPTH)
1088#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
1089 case GL_NORMAL_ARRAY_BUFFER_BINDING:
1090#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
1091#if defined(GL_NORMAL_ARRAY_STRIDE)
1092 case GL_NORMAL_ARRAY_STRIDE:
1093#endif // defined(GL_NORMAL_ARRAY_STRIDE)
1094#if defined(GL_NORMAL_ARRAY_TYPE)
1095 case GL_NORMAL_ARRAY_TYPE:
1096#endif // defined(GL_NORMAL_ARRAY_TYPE)
1097#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
1098 case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
1099#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
1100#if defined(GL_PACK_ALIGNMENT)
1101 case GL_PACK_ALIGNMENT:
1102#endif // defined(GL_PACK_ALIGNMENT)
1103#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
1104 case GL_PERSPECTIVE_CORRECTION_HINT:
1105#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
1106#if defined(GL_POINT_SIZE)
1107 case GL_POINT_SIZE:
1108#endif // defined(GL_POINT_SIZE)
1109#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
1110 case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
1111#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
1112#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
1113 case GL_POINT_SIZE_ARRAY_STRIDE_OES:
1114#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
1115#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
1116 case GL_POINT_SIZE_ARRAY_TYPE_OES:
1117#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
1118#if defined(GL_POINT_SMOOTH_HINT)
1119 case GL_POINT_SMOOTH_HINT:
1120#endif // defined(GL_POINT_SMOOTH_HINT)
1121#if defined(GL_POLYGON_OFFSET_FACTOR)
1122 case GL_POLYGON_OFFSET_FACTOR:
1123#endif // defined(GL_POLYGON_OFFSET_FACTOR)
1124#if defined(GL_POLYGON_OFFSET_UNITS)
1125 case GL_POLYGON_OFFSET_UNITS:
1126#endif // defined(GL_POLYGON_OFFSET_UNITS)
1127#if defined(GL_PROJECTION_STACK_DEPTH)
1128 case GL_PROJECTION_STACK_DEPTH:
1129#endif // defined(GL_PROJECTION_STACK_DEPTH)
1130#if defined(GL_RED_BITS)
1131 case GL_RED_BITS:
1132#endif // defined(GL_RED_BITS)
1133#if defined(GL_SHADE_MODEL)
1134 case GL_SHADE_MODEL:
1135#endif // defined(GL_SHADE_MODEL)
1136#if defined(GL_STENCIL_BITS)
1137 case GL_STENCIL_BITS:
1138#endif // defined(GL_STENCIL_BITS)
1139#if defined(GL_STENCIL_CLEAR_VALUE)
1140 case GL_STENCIL_CLEAR_VALUE:
1141#endif // defined(GL_STENCIL_CLEAR_VALUE)
1142#if defined(GL_STENCIL_FAIL)
1143 case GL_STENCIL_FAIL:
1144#endif // defined(GL_STENCIL_FAIL)
1145#if defined(GL_STENCIL_FUNC)
1146 case GL_STENCIL_FUNC:
1147#endif // defined(GL_STENCIL_FUNC)
1148#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
1149 case GL_STENCIL_PASS_DEPTH_FAIL:
1150#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
1151#if defined(GL_STENCIL_PASS_DEPTH_PASS)
1152 case GL_STENCIL_PASS_DEPTH_PASS:
1153#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
1154#if defined(GL_STENCIL_REF)
1155 case GL_STENCIL_REF:
1156#endif // defined(GL_STENCIL_REF)
1157#if defined(GL_STENCIL_VALUE_MASK)
1158 case GL_STENCIL_VALUE_MASK:
1159#endif // defined(GL_STENCIL_VALUE_MASK)
1160#if defined(GL_STENCIL_WRITEMASK)
1161 case GL_STENCIL_WRITEMASK:
1162#endif // defined(GL_STENCIL_WRITEMASK)
1163#if defined(GL_SUBPIXEL_BITS)
1164 case GL_SUBPIXEL_BITS:
1165#endif // defined(GL_SUBPIXEL_BITS)
1166#if defined(GL_TEXTURE_BINDING_2D)
1167 case GL_TEXTURE_BINDING_2D:
1168#endif // defined(GL_TEXTURE_BINDING_2D)
1169#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
1170 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
1171#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
1172#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
1173 case GL_TEXTURE_COORD_ARRAY_SIZE:
1174#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
1175#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
1176 case GL_TEXTURE_COORD_ARRAY_STRIDE:
1177#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
1178#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
1179 case GL_TEXTURE_COORD_ARRAY_TYPE:
1180#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
1181#if defined(GL_TEXTURE_STACK_DEPTH)
1182 case GL_TEXTURE_STACK_DEPTH:
1183#endif // defined(GL_TEXTURE_STACK_DEPTH)
1184#if defined(GL_UNPACK_ALIGNMENT)
1185 case GL_UNPACK_ALIGNMENT:
1186#endif // defined(GL_UNPACK_ALIGNMENT)
1187#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
1188 case GL_VERTEX_ARRAY_BUFFER_BINDING:
1189#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
1190#if defined(GL_VERTEX_ARRAY_SIZE)
1191 case GL_VERTEX_ARRAY_SIZE:
1192#endif // defined(GL_VERTEX_ARRAY_SIZE)
1193#if defined(GL_VERTEX_ARRAY_STRIDE)
1194 case GL_VERTEX_ARRAY_STRIDE:
1195#endif // defined(GL_VERTEX_ARRAY_STRIDE)
1196#if defined(GL_VERTEX_ARRAY_TYPE)
1197 case GL_VERTEX_ARRAY_TYPE:
1198#endif // defined(GL_VERTEX_ARRAY_TYPE)
1199#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
1200 case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
1201#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
1202#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
1203 case GL_WEIGHT_ARRAY_SIZE_OES:
1204#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
1205#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
1206 case GL_WEIGHT_ARRAY_STRIDE_OES:
1207#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
1208#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
1209 case GL_WEIGHT_ARRAY_TYPE_OES:
1210#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
1211 _needed = 1;
1212 break;
1213#if defined(GL_ALIASED_POINT_SIZE_RANGE)
1214 case GL_ALIASED_POINT_SIZE_RANGE:
1215#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
1216#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
1217 case GL_ALIASED_LINE_WIDTH_RANGE:
1218#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
1219#if defined(GL_DEPTH_RANGE)
1220 case GL_DEPTH_RANGE:
1221#endif // defined(GL_DEPTH_RANGE)
1222#if defined(GL_MAX_VIEWPORT_DIMS)
1223 case GL_MAX_VIEWPORT_DIMS:
1224#endif // defined(GL_MAX_VIEWPORT_DIMS)
1225#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
1226 case GL_SMOOTH_LINE_WIDTH_RANGE:
1227#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
1228#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
1229 case GL_SMOOTH_POINT_SIZE_RANGE:
1230#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
1231 _needed = 2;
1232 break;
1233#if defined(GL_COLOR_CLEAR_VALUE)
1234 case GL_COLOR_CLEAR_VALUE:
1235#endif // defined(GL_COLOR_CLEAR_VALUE)
1236#if defined(GL_COLOR_WRITEMASK)
1237 case GL_COLOR_WRITEMASK:
1238#endif // defined(GL_COLOR_WRITEMASK)
1239#if defined(GL_SCISSOR_BOX)
1240 case GL_SCISSOR_BOX:
1241#endif // defined(GL_SCISSOR_BOX)
1242#if defined(GL_VIEWPORT)
1243 case GL_VIEWPORT:
1244#endif // defined(GL_VIEWPORT)
1245 _needed = 4;
1246 break;
1247#if defined(GL_MODELVIEW_MATRIX)
1248 case GL_MODELVIEW_MATRIX:
1249#endif // defined(GL_MODELVIEW_MATRIX)
1250#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
1251 case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
1252#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
1253#if defined(GL_PROJECTION_MATRIX)
1254 case GL_PROJECTION_MATRIX:
1255#endif // defined(GL_PROJECTION_MATRIX)
1256#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
1257 case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
1258#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
1259#if defined(GL_TEXTURE_MATRIX)
1260 case GL_TEXTURE_MATRIX:
1261#endif // defined(GL_TEXTURE_MATRIX)
1262#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
1263 case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
1264#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
1265 _needed = 16;
1266 break;
1267#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
1268 case GL_COMPRESSED_TEXTURE_FORMATS:
1269#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1270#if defined(GL_FOG_COLOR)
1271 case GL_FOG_COLOR:
1272#endif // defined(GL_FOG_COLOR)
1273#if defined(GL_LIGHT_MODEL_AMBIENT)
1274 case GL_LIGHT_MODEL_AMBIENT:
1275#endif // defined(GL_LIGHT_MODEL_AMBIENT)
1276 _needed = _NUM_COMPRESSED_TEXTURE_FORMATS;
1277 break;
1278 default:
1279 _needed = 0;
1280 break;
1281 }
1282 if (_remaining < _needed) {
1283 _exception = 1;
1284 _env->ThrowNew(IAEClass, "length - offset < needed");
1285 goto exit;
1286 }
1287 params_base = (GLint *)
1288 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1289 params = params_base + offset;
1290
1291 glGetIntegerv(
1292 (GLenum)pname,
1293 (GLint *)params
1294 );
1295
1296exit:
1297 if (params_base) {
1298 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1299 _exception ? JNI_ABORT: 0);
1300 }
1301}
1302
1303/* void glGetIntegerv ( GLenum pname, GLint *params ) */
1304static void
1305android_glGetIntegerv__ILjava_nio_IntBuffer_2
1306 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
1307 jint _exception = 0;
1308 jarray _array = (jarray) 0;
1309 jint _remaining;
1310 GLint *params = (GLint *) 0;
1311
1312 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
1313 int _needed;
1314 switch (pname) {
1315#if defined(GL_ALPHA_BITS)
1316 case GL_ALPHA_BITS:
1317#endif // defined(GL_ALPHA_BITS)
1318#if defined(GL_ALPHA_TEST_FUNC)
1319 case GL_ALPHA_TEST_FUNC:
1320#endif // defined(GL_ALPHA_TEST_FUNC)
1321#if defined(GL_ALPHA_TEST_REF)
1322 case GL_ALPHA_TEST_REF:
1323#endif // defined(GL_ALPHA_TEST_REF)
1324#if defined(GL_BLEND_DST)
1325 case GL_BLEND_DST:
1326#endif // defined(GL_BLEND_DST)
1327#if defined(GL_BLUE_BITS)
1328 case GL_BLUE_BITS:
1329#endif // defined(GL_BLUE_BITS)
1330#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
1331 case GL_COLOR_ARRAY_BUFFER_BINDING:
1332#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING)
1333#if defined(GL_COLOR_ARRAY_SIZE)
1334 case GL_COLOR_ARRAY_SIZE:
1335#endif // defined(GL_COLOR_ARRAY_SIZE)
1336#if defined(GL_COLOR_ARRAY_STRIDE)
1337 case GL_COLOR_ARRAY_STRIDE:
1338#endif // defined(GL_COLOR_ARRAY_STRIDE)
1339#if defined(GL_COLOR_ARRAY_TYPE)
1340 case GL_COLOR_ARRAY_TYPE:
1341#endif // defined(GL_COLOR_ARRAY_TYPE)
1342#if defined(GL_CULL_FACE)
1343 case GL_CULL_FACE:
1344#endif // defined(GL_CULL_FACE)
1345#if defined(GL_DEPTH_BITS)
1346 case GL_DEPTH_BITS:
1347#endif // defined(GL_DEPTH_BITS)
1348#if defined(GL_DEPTH_CLEAR_VALUE)
1349 case GL_DEPTH_CLEAR_VALUE:
1350#endif // defined(GL_DEPTH_CLEAR_VALUE)
1351#if defined(GL_DEPTH_FUNC)
1352 case GL_DEPTH_FUNC:
1353#endif // defined(GL_DEPTH_FUNC)
1354#if defined(GL_DEPTH_WRITEMASK)
1355 case GL_DEPTH_WRITEMASK:
1356#endif // defined(GL_DEPTH_WRITEMASK)
1357#if defined(GL_FOG_DENSITY)
1358 case GL_FOG_DENSITY:
1359#endif // defined(GL_FOG_DENSITY)
1360#if defined(GL_FOG_END)
1361 case GL_FOG_END:
1362#endif // defined(GL_FOG_END)
1363#if defined(GL_FOG_MODE)
1364 case GL_FOG_MODE:
1365#endif // defined(GL_FOG_MODE)
1366#if defined(GL_FOG_START)
1367 case GL_FOG_START:
1368#endif // defined(GL_FOG_START)
1369#if defined(GL_FRONT_FACE)
1370 case GL_FRONT_FACE:
1371#endif // defined(GL_FRONT_FACE)
1372#if defined(GL_GREEN_BITS)
1373 case GL_GREEN_BITS:
1374#endif // defined(GL_GREEN_BITS)
1375#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
1376 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
1377#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES)
1378#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1379 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
1380#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
1381#if defined(GL_LIGHT_MODEL_TWO_SIDE)
1382 case GL_LIGHT_MODEL_TWO_SIDE:
1383#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
1384#if defined(GL_LINE_SMOOTH_HINT)
1385 case GL_LINE_SMOOTH_HINT:
1386#endif // defined(GL_LINE_SMOOTH_HINT)
1387#if defined(GL_LINE_WIDTH)
1388 case GL_LINE_WIDTH:
1389#endif // defined(GL_LINE_WIDTH)
1390#if defined(GL_LOGIC_OP_MODE)
1391 case GL_LOGIC_OP_MODE:
1392#endif // defined(GL_LOGIC_OP_MODE)
1393#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
1394 case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES:
1395#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES)
1396#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
1397 case GL_MATRIX_INDEX_ARRAY_SIZE_OES:
1398#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES)
1399#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
1400 case GL_MATRIX_INDEX_ARRAY_STRIDE_OES:
1401#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES)
1402#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
1403 case GL_MATRIX_INDEX_ARRAY_TYPE_OES:
1404#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES)
1405#if defined(GL_MATRIX_MODE)
1406 case GL_MATRIX_MODE:
1407#endif // defined(GL_MATRIX_MODE)
1408#if defined(GL_MAX_CLIP_PLANES)
1409 case GL_MAX_CLIP_PLANES:
1410#endif // defined(GL_MAX_CLIP_PLANES)
1411#if defined(GL_MAX_ELEMENTS_INDICES)
1412 case GL_MAX_ELEMENTS_INDICES:
1413#endif // defined(GL_MAX_ELEMENTS_INDICES)
1414#if defined(GL_MAX_ELEMENTS_VERTICES)
1415 case GL_MAX_ELEMENTS_VERTICES:
1416#endif // defined(GL_MAX_ELEMENTS_VERTICES)
1417#if defined(GL_MAX_LIGHTS)
1418 case GL_MAX_LIGHTS:
1419#endif // defined(GL_MAX_LIGHTS)
1420#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
1421 case GL_MAX_MODELVIEW_STACK_DEPTH:
1422#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH)
1423#if defined(GL_MAX_PALETTE_MATRICES_OES)
1424 case GL_MAX_PALETTE_MATRICES_OES:
1425#endif // defined(GL_MAX_PALETTE_MATRICES_OES)
1426#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
1427 case GL_MAX_PROJECTION_STACK_DEPTH:
1428#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH)
1429#if defined(GL_MAX_TEXTURE_SIZE)
1430 case GL_MAX_TEXTURE_SIZE:
1431#endif // defined(GL_MAX_TEXTURE_SIZE)
1432#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
1433 case GL_MAX_TEXTURE_STACK_DEPTH:
1434#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH)
1435#if defined(GL_MAX_TEXTURE_UNITS)
1436 case GL_MAX_TEXTURE_UNITS:
1437#endif // defined(GL_MAX_TEXTURE_UNITS)
1438#if defined(GL_MAX_VERTEX_UNITS_OES)
1439 case GL_MAX_VERTEX_UNITS_OES:
1440#endif // defined(GL_MAX_VERTEX_UNITS_OES)
1441#if defined(GL_MODELVIEW_STACK_DEPTH)
1442 case GL_MODELVIEW_STACK_DEPTH:
1443#endif // defined(GL_MODELVIEW_STACK_DEPTH)
1444#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
1445 case GL_NORMAL_ARRAY_BUFFER_BINDING:
1446#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
1447#if defined(GL_NORMAL_ARRAY_STRIDE)
1448 case GL_NORMAL_ARRAY_STRIDE:
1449#endif // defined(GL_NORMAL_ARRAY_STRIDE)
1450#if defined(GL_NORMAL_ARRAY_TYPE)
1451 case GL_NORMAL_ARRAY_TYPE:
1452#endif // defined(GL_NORMAL_ARRAY_TYPE)
1453#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
1454 case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
1455#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
1456#if defined(GL_PACK_ALIGNMENT)
1457 case GL_PACK_ALIGNMENT:
1458#endif // defined(GL_PACK_ALIGNMENT)
1459#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
1460 case GL_PERSPECTIVE_CORRECTION_HINT:
1461#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT)
1462#if defined(GL_POINT_SIZE)
1463 case GL_POINT_SIZE:
1464#endif // defined(GL_POINT_SIZE)
1465#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
1466 case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
1467#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES)
1468#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
1469 case GL_POINT_SIZE_ARRAY_STRIDE_OES:
1470#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES)
1471#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
1472 case GL_POINT_SIZE_ARRAY_TYPE_OES:
1473#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES)
1474#if defined(GL_POINT_SMOOTH_HINT)
1475 case GL_POINT_SMOOTH_HINT:
1476#endif // defined(GL_POINT_SMOOTH_HINT)
1477#if defined(GL_POLYGON_OFFSET_FACTOR)
1478 case GL_POLYGON_OFFSET_FACTOR:
1479#endif // defined(GL_POLYGON_OFFSET_FACTOR)
1480#if defined(GL_POLYGON_OFFSET_UNITS)
1481 case GL_POLYGON_OFFSET_UNITS:
1482#endif // defined(GL_POLYGON_OFFSET_UNITS)
1483#if defined(GL_PROJECTION_STACK_DEPTH)
1484 case GL_PROJECTION_STACK_DEPTH:
1485#endif // defined(GL_PROJECTION_STACK_DEPTH)
1486#if defined(GL_RED_BITS)
1487 case GL_RED_BITS:
1488#endif // defined(GL_RED_BITS)
1489#if defined(GL_SHADE_MODEL)
1490 case GL_SHADE_MODEL:
1491#endif // defined(GL_SHADE_MODEL)
1492#if defined(GL_STENCIL_BITS)
1493 case GL_STENCIL_BITS:
1494#endif // defined(GL_STENCIL_BITS)
1495#if defined(GL_STENCIL_CLEAR_VALUE)
1496 case GL_STENCIL_CLEAR_VALUE:
1497#endif // defined(GL_STENCIL_CLEAR_VALUE)
1498#if defined(GL_STENCIL_FAIL)
1499 case GL_STENCIL_FAIL:
1500#endif // defined(GL_STENCIL_FAIL)
1501#if defined(GL_STENCIL_FUNC)
1502 case GL_STENCIL_FUNC:
1503#endif // defined(GL_STENCIL_FUNC)
1504#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
1505 case GL_STENCIL_PASS_DEPTH_FAIL:
1506#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL)
1507#if defined(GL_STENCIL_PASS_DEPTH_PASS)
1508 case GL_STENCIL_PASS_DEPTH_PASS:
1509#endif // defined(GL_STENCIL_PASS_DEPTH_PASS)
1510#if defined(GL_STENCIL_REF)
1511 case GL_STENCIL_REF:
1512#endif // defined(GL_STENCIL_REF)
1513#if defined(GL_STENCIL_VALUE_MASK)
1514 case GL_STENCIL_VALUE_MASK:
1515#endif // defined(GL_STENCIL_VALUE_MASK)
1516#if defined(GL_STENCIL_WRITEMASK)
1517 case GL_STENCIL_WRITEMASK:
1518#endif // defined(GL_STENCIL_WRITEMASK)
1519#if defined(GL_SUBPIXEL_BITS)
1520 case GL_SUBPIXEL_BITS:
1521#endif // defined(GL_SUBPIXEL_BITS)
1522#if defined(GL_TEXTURE_BINDING_2D)
1523 case GL_TEXTURE_BINDING_2D:
1524#endif // defined(GL_TEXTURE_BINDING_2D)
1525#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
1526 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
1527#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
1528#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
1529 case GL_TEXTURE_COORD_ARRAY_SIZE:
1530#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE)
1531#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
1532 case GL_TEXTURE_COORD_ARRAY_STRIDE:
1533#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
1534#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
1535 case GL_TEXTURE_COORD_ARRAY_TYPE:
1536#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE)
1537#if defined(GL_TEXTURE_STACK_DEPTH)
1538 case GL_TEXTURE_STACK_DEPTH:
1539#endif // defined(GL_TEXTURE_STACK_DEPTH)
1540#if defined(GL_UNPACK_ALIGNMENT)
1541 case GL_UNPACK_ALIGNMENT:
1542#endif // defined(GL_UNPACK_ALIGNMENT)
1543#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
1544 case GL_VERTEX_ARRAY_BUFFER_BINDING:
1545#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
1546#if defined(GL_VERTEX_ARRAY_SIZE)
1547 case GL_VERTEX_ARRAY_SIZE:
1548#endif // defined(GL_VERTEX_ARRAY_SIZE)
1549#if defined(GL_VERTEX_ARRAY_STRIDE)
1550 case GL_VERTEX_ARRAY_STRIDE:
1551#endif // defined(GL_VERTEX_ARRAY_STRIDE)
1552#if defined(GL_VERTEX_ARRAY_TYPE)
1553 case GL_VERTEX_ARRAY_TYPE:
1554#endif // defined(GL_VERTEX_ARRAY_TYPE)
1555#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
1556 case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES:
1557#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES)
1558#if defined(GL_WEIGHT_ARRAY_SIZE_OES)
1559 case GL_WEIGHT_ARRAY_SIZE_OES:
1560#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES)
1561#if defined(GL_WEIGHT_ARRAY_STRIDE_OES)
1562 case GL_WEIGHT_ARRAY_STRIDE_OES:
1563#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES)
1564#if defined(GL_WEIGHT_ARRAY_TYPE_OES)
1565 case GL_WEIGHT_ARRAY_TYPE_OES:
1566#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES)
1567 _needed = 1;
1568 break;
1569#if defined(GL_ALIASED_POINT_SIZE_RANGE)
1570 case GL_ALIASED_POINT_SIZE_RANGE:
1571#endif // defined(GL_ALIASED_POINT_SIZE_RANGE)
1572#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
1573 case GL_ALIASED_LINE_WIDTH_RANGE:
1574#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE)
1575#if defined(GL_DEPTH_RANGE)
1576 case GL_DEPTH_RANGE:
1577#endif // defined(GL_DEPTH_RANGE)
1578#if defined(GL_MAX_VIEWPORT_DIMS)
1579 case GL_MAX_VIEWPORT_DIMS:
1580#endif // defined(GL_MAX_VIEWPORT_DIMS)
1581#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
1582 case GL_SMOOTH_LINE_WIDTH_RANGE:
1583#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE)
1584#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
1585 case GL_SMOOTH_POINT_SIZE_RANGE:
1586#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE)
1587 _needed = 2;
1588 break;
1589#if defined(GL_COLOR_CLEAR_VALUE)
1590 case GL_COLOR_CLEAR_VALUE:
1591#endif // defined(GL_COLOR_CLEAR_VALUE)
1592#if defined(GL_COLOR_WRITEMASK)
1593 case GL_COLOR_WRITEMASK:
1594#endif // defined(GL_COLOR_WRITEMASK)
1595#if defined(GL_SCISSOR_BOX)
1596 case GL_SCISSOR_BOX:
1597#endif // defined(GL_SCISSOR_BOX)
1598#if defined(GL_VIEWPORT)
1599 case GL_VIEWPORT:
1600#endif // defined(GL_VIEWPORT)
1601 _needed = 4;
1602 break;
1603#if defined(GL_MODELVIEW_MATRIX)
1604 case GL_MODELVIEW_MATRIX:
1605#endif // defined(GL_MODELVIEW_MATRIX)
1606#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
1607 case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES:
1608#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES)
1609#if defined(GL_PROJECTION_MATRIX)
1610 case GL_PROJECTION_MATRIX:
1611#endif // defined(GL_PROJECTION_MATRIX)
1612#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
1613 case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES:
1614#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES)
1615#if defined(GL_TEXTURE_MATRIX)
1616 case GL_TEXTURE_MATRIX:
1617#endif // defined(GL_TEXTURE_MATRIX)
1618#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
1619 case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES:
1620#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES)
1621 _needed = 16;
1622 break;
1623#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
1624 case GL_COMPRESSED_TEXTURE_FORMATS:
1625#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS)
1626#if defined(GL_FOG_COLOR)
1627 case GL_FOG_COLOR:
1628#endif // defined(GL_FOG_COLOR)
1629#if defined(GL_LIGHT_MODEL_AMBIENT)
1630 case GL_LIGHT_MODEL_AMBIENT:
1631#endif // defined(GL_LIGHT_MODEL_AMBIENT)
1632 _needed = _NUM_COMPRESSED_TEXTURE_FORMATS;
1633 break;
1634 default:
1635 _needed = 0;
1636 break;
1637 }
1638 if (_remaining < _needed) {
1639 _exception = 1;
1640 _env->ThrowNew(IAEClass, "remaining() < needed");
1641 goto exit;
1642 }
1643 glGetIntegerv(
1644 (GLenum)pname,
1645 (GLint *)params
1646 );
1647
1648exit:
1649 if (_array) {
1650 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1651 }
1652}
1653
1654#include <string.h>
1655
1656/* const GLubyte * glGetString ( GLenum name ) */
1657static
1658jstring
1659android_glGetString
1660 (JNIEnv *_env, jobject _this, jint name) {
1661 const char * chars = (const char *)glGetString((GLenum)name);
1662 jstring output = _env->NewStringUTF(chars);
1663 return output;
1664}
1665/* void glHint ( GLenum target, GLenum mode ) */
1666static void
1667android_glHint__II
1668 (JNIEnv *_env, jobject _this, jint target, jint mode) {
1669 glHint(
1670 (GLenum)target,
1671 (GLenum)mode
1672 );
1673}
1674
1675/* void glLightModelf ( GLenum pname, GLfloat param ) */
1676static void
1677android_glLightModelf__IF
1678 (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
1679 glLightModelf(
1680 (GLenum)pname,
1681 (GLfloat)param
1682 );
1683}
1684
1685/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
1686static void
1687android_glLightModelfv__I_3FI
1688 (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
1689 GLfloat *params_base = (GLfloat *) 0;
1690 jint _remaining;
1691 GLfloat *params = (GLfloat *) 0;
1692
1693 if (!params_ref) {
1694 _env->ThrowNew(IAEClass, "params == null");
1695 goto exit;
1696 }
1697 if (offset < 0) {
1698 _env->ThrowNew(IAEClass, "offset < 0");
1699 goto exit;
1700 }
1701 _remaining = _env->GetArrayLength(params_ref) - offset;
1702 int _needed;
1703 switch (pname) {
1704#if defined(GL_LIGHT_MODEL_TWO_SIDE)
1705 case GL_LIGHT_MODEL_TWO_SIDE:
1706#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
1707 _needed = 1;
1708 break;
1709#if defined(GL_LIGHT_MODEL_AMBIENT)
1710 case GL_LIGHT_MODEL_AMBIENT:
1711#endif // defined(GL_LIGHT_MODEL_AMBIENT)
1712 _needed = 4;
1713 break;
1714 default:
1715 _needed = 0;
1716 break;
1717 }
1718 if (_remaining < _needed) {
1719 _env->ThrowNew(IAEClass, "length - offset < needed");
1720 goto exit;
1721 }
1722 params_base = (GLfloat *)
1723 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1724 params = params_base + offset;
1725
1726 glLightModelfv(
1727 (GLenum)pname,
1728 (GLfloat *)params
1729 );
1730
1731exit:
1732 if (params_base) {
1733 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1734 JNI_ABORT);
1735 }
1736}
1737
1738/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
1739static void
1740android_glLightModelfv__ILjava_nio_FloatBuffer_2
1741 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
1742 jarray _array = (jarray) 0;
1743 jint _remaining;
1744 GLfloat *params = (GLfloat *) 0;
1745
1746 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
1747 int _needed;
1748 switch (pname) {
1749#if defined(GL_LIGHT_MODEL_TWO_SIDE)
1750 case GL_LIGHT_MODEL_TWO_SIDE:
1751#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
1752 _needed = 1;
1753 break;
1754#if defined(GL_LIGHT_MODEL_AMBIENT)
1755 case GL_LIGHT_MODEL_AMBIENT:
1756#endif // defined(GL_LIGHT_MODEL_AMBIENT)
1757 _needed = 4;
1758 break;
1759 default:
1760 _needed = 0;
1761 break;
1762 }
1763 if (_remaining < _needed) {
1764 _env->ThrowNew(IAEClass, "remaining() < needed");
1765 goto exit;
1766 }
1767 glLightModelfv(
1768 (GLenum)pname,
1769 (GLfloat *)params
1770 );
1771
1772exit:
1773 if (_array) {
1774 releasePointer(_env, _array, params, JNI_FALSE);
1775 }
1776}
1777
1778/* void glLightModelx ( GLenum pname, GLfixed param ) */
1779static void
1780android_glLightModelx__II
1781 (JNIEnv *_env, jobject _this, jint pname, jint param) {
1782 glLightModelx(
1783 (GLenum)pname,
1784 (GLfixed)param
1785 );
1786}
1787
1788/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
1789static void
1790android_glLightModelxv__I_3II
1791 (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
1792 GLfixed *params_base = (GLfixed *) 0;
1793 jint _remaining;
1794 GLfixed *params = (GLfixed *) 0;
1795
1796 if (!params_ref) {
1797 _env->ThrowNew(IAEClass, "params == null");
1798 goto exit;
1799 }
1800 if (offset < 0) {
1801 _env->ThrowNew(IAEClass, "offset < 0");
1802 goto exit;
1803 }
1804 _remaining = _env->GetArrayLength(params_ref) - offset;
1805 int _needed;
1806 switch (pname) {
1807#if defined(GL_LIGHT_MODEL_TWO_SIDE)
1808 case GL_LIGHT_MODEL_TWO_SIDE:
1809#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
1810 _needed = 1;
1811 break;
1812#if defined(GL_LIGHT_MODEL_AMBIENT)
1813 case GL_LIGHT_MODEL_AMBIENT:
1814#endif // defined(GL_LIGHT_MODEL_AMBIENT)
1815 _needed = 4;
1816 break;
1817 default:
1818 _needed = 0;
1819 break;
1820 }
1821 if (_remaining < _needed) {
1822 _env->ThrowNew(IAEClass, "length - offset < needed");
1823 goto exit;
1824 }
1825 params_base = (GLfixed *)
1826 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1827 params = params_base + offset;
1828
1829 glLightModelxv(
1830 (GLenum)pname,
1831 (GLfixed *)params
1832 );
1833
1834exit:
1835 if (params_base) {
1836 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1837 JNI_ABORT);
1838 }
1839}
1840
1841/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
1842static void
1843android_glLightModelxv__ILjava_nio_IntBuffer_2
1844 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
1845 jarray _array = (jarray) 0;
1846 jint _remaining;
1847 GLfixed *params = (GLfixed *) 0;
1848
1849 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1850 int _needed;
1851 switch (pname) {
1852#if defined(GL_LIGHT_MODEL_TWO_SIDE)
1853 case GL_LIGHT_MODEL_TWO_SIDE:
1854#endif // defined(GL_LIGHT_MODEL_TWO_SIDE)
1855 _needed = 1;
1856 break;
1857#if defined(GL_LIGHT_MODEL_AMBIENT)
1858 case GL_LIGHT_MODEL_AMBIENT:
1859#endif // defined(GL_LIGHT_MODEL_AMBIENT)
1860 _needed = 4;
1861 break;
1862 default:
1863 _needed = 0;
1864 break;
1865 }
1866 if (_remaining < _needed) {
1867 _env->ThrowNew(IAEClass, "remaining() < needed");
1868 goto exit;
1869 }
1870 glLightModelxv(
1871 (GLenum)pname,
1872 (GLfixed *)params
1873 );
1874
1875exit:
1876 if (_array) {
1877 releasePointer(_env, _array, params, JNI_FALSE);
1878 }
1879}
1880
1881/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */
1882static void
1883android_glLightf__IIF
1884 (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) {
1885 glLightf(
1886 (GLenum)light,
1887 (GLenum)pname,
1888 (GLfloat)param
1889 );
1890}
1891
1892/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
1893static void
1894android_glLightfv__II_3FI
1895 (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
1896 GLfloat *params_base = (GLfloat *) 0;
1897 jint _remaining;
1898 GLfloat *params = (GLfloat *) 0;
1899
1900 if (!params_ref) {
1901 _env->ThrowNew(IAEClass, "params == null");
1902 goto exit;
1903 }
1904 if (offset < 0) {
1905 _env->ThrowNew(IAEClass, "offset < 0");
1906 goto exit;
1907 }
1908 _remaining = _env->GetArrayLength(params_ref) - offset;
1909 int _needed;
1910 switch (pname) {
1911#if defined(GL_SPOT_EXPONENT)
1912 case GL_SPOT_EXPONENT:
1913#endif // defined(GL_SPOT_EXPONENT)
1914#if defined(GL_SPOT_CUTOFF)
1915 case GL_SPOT_CUTOFF:
1916#endif // defined(GL_SPOT_CUTOFF)
1917#if defined(GL_CONSTANT_ATTENUATION)
1918 case GL_CONSTANT_ATTENUATION:
1919#endif // defined(GL_CONSTANT_ATTENUATION)
1920#if defined(GL_LINEAR_ATTENUATION)
1921 case GL_LINEAR_ATTENUATION:
1922#endif // defined(GL_LINEAR_ATTENUATION)
1923#if defined(GL_QUADRATIC_ATTENUATION)
1924 case GL_QUADRATIC_ATTENUATION:
1925#endif // defined(GL_QUADRATIC_ATTENUATION)
1926 _needed = 1;
1927 break;
1928#if defined(GL_SPOT_DIRECTION)
1929 case GL_SPOT_DIRECTION:
1930#endif // defined(GL_SPOT_DIRECTION)
1931 _needed = 3;
1932 break;
1933#if defined(GL_AMBIENT)
1934 case GL_AMBIENT:
1935#endif // defined(GL_AMBIENT)
1936#if defined(GL_DIFFUSE)
1937 case GL_DIFFUSE:
1938#endif // defined(GL_DIFFUSE)
1939#if defined(GL_SPECULAR)
1940 case GL_SPECULAR:
1941#endif // defined(GL_SPECULAR)
1942#if defined(GL_EMISSION)
1943 case GL_EMISSION:
1944#endif // defined(GL_EMISSION)
1945 _needed = 4;
1946 break;
1947 default:
1948 _needed = 0;
1949 break;
1950 }
1951 if (_remaining < _needed) {
1952 _env->ThrowNew(IAEClass, "length - offset < needed");
1953 goto exit;
1954 }
1955 params_base = (GLfloat *)
1956 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1957 params = params_base + offset;
1958
1959 glLightfv(
1960 (GLenum)light,
1961 (GLenum)pname,
1962 (GLfloat *)params
1963 );
1964
1965exit:
1966 if (params_base) {
1967 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1968 JNI_ABORT);
1969 }
1970}
1971
1972/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
1973static void
1974android_glLightfv__IILjava_nio_FloatBuffer_2
1975 (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
1976 jarray _array = (jarray) 0;
1977 jint _remaining;
1978 GLfloat *params = (GLfloat *) 0;
1979
1980 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
1981 int _needed;
1982 switch (pname) {
1983#if defined(GL_SPOT_EXPONENT)
1984 case GL_SPOT_EXPONENT:
1985#endif // defined(GL_SPOT_EXPONENT)
1986#if defined(GL_SPOT_CUTOFF)
1987 case GL_SPOT_CUTOFF:
1988#endif // defined(GL_SPOT_CUTOFF)
1989#if defined(GL_CONSTANT_ATTENUATION)
1990 case GL_CONSTANT_ATTENUATION:
1991#endif // defined(GL_CONSTANT_ATTENUATION)
1992#if defined(GL_LINEAR_ATTENUATION)
1993 case GL_LINEAR_ATTENUATION:
1994#endif // defined(GL_LINEAR_ATTENUATION)
1995#if defined(GL_QUADRATIC_ATTENUATION)
1996 case GL_QUADRATIC_ATTENUATION:
1997#endif // defined(GL_QUADRATIC_ATTENUATION)
1998 _needed = 1;
1999 break;
2000#if defined(GL_SPOT_DIRECTION)
2001 case GL_SPOT_DIRECTION:
2002#endif // defined(GL_SPOT_DIRECTION)
2003 _needed = 3;
2004 break;
2005#if defined(GL_AMBIENT)
2006 case GL_AMBIENT:
2007#endif // defined(GL_AMBIENT)
2008#if defined(GL_DIFFUSE)
2009 case GL_DIFFUSE:
2010#endif // defined(GL_DIFFUSE)
2011#if defined(GL_SPECULAR)
2012 case GL_SPECULAR:
2013#endif // defined(GL_SPECULAR)
2014#if defined(GL_EMISSION)
2015 case GL_EMISSION:
2016#endif // defined(GL_EMISSION)
2017 _needed = 4;
2018 break;
2019 default:
2020 _needed = 0;
2021 break;
2022 }
2023 if (_remaining < _needed) {
2024 _env->ThrowNew(IAEClass, "remaining() < needed");
2025 goto exit;
2026 }
2027 glLightfv(
2028 (GLenum)light,
2029 (GLenum)pname,
2030 (GLfloat *)params
2031 );
2032
2033exit:
2034 if (_array) {
2035 releasePointer(_env, _array, params, JNI_FALSE);
2036 }
2037}
2038
2039/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */
2040static void
2041android_glLightx__III
2042 (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) {
2043 glLightx(
2044 (GLenum)light,
2045 (GLenum)pname,
2046 (GLfixed)param
2047 );
2048}
2049
2050/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
2051static void
2052android_glLightxv__II_3II
2053 (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
2054 GLfixed *params_base = (GLfixed *) 0;
2055 jint _remaining;
2056 GLfixed *params = (GLfixed *) 0;
2057
2058 if (!params_ref) {
2059 _env->ThrowNew(IAEClass, "params == null");
2060 goto exit;
2061 }
2062 if (offset < 0) {
2063 _env->ThrowNew(IAEClass, "offset < 0");
2064 goto exit;
2065 }
2066 _remaining = _env->GetArrayLength(params_ref) - offset;
2067 int _needed;
2068 switch (pname) {
2069#if defined(GL_SPOT_EXPONENT)
2070 case GL_SPOT_EXPONENT:
2071#endif // defined(GL_SPOT_EXPONENT)
2072#if defined(GL_SPOT_CUTOFF)
2073 case GL_SPOT_CUTOFF:
2074#endif // defined(GL_SPOT_CUTOFF)
2075#if defined(GL_CONSTANT_ATTENUATION)
2076 case GL_CONSTANT_ATTENUATION:
2077#endif // defined(GL_CONSTANT_ATTENUATION)
2078#if defined(GL_LINEAR_ATTENUATION)
2079 case GL_LINEAR_ATTENUATION:
2080#endif // defined(GL_LINEAR_ATTENUATION)
2081#if defined(GL_QUADRATIC_ATTENUATION)
2082 case GL_QUADRATIC_ATTENUATION:
2083#endif // defined(GL_QUADRATIC_ATTENUATION)
2084 _needed = 1;
2085 break;
2086#if defined(GL_SPOT_DIRECTION)
2087 case GL_SPOT_DIRECTION:
2088#endif // defined(GL_SPOT_DIRECTION)
2089 _needed = 3;
2090 break;
2091#if defined(GL_AMBIENT)
2092 case GL_AMBIENT:
2093#endif // defined(GL_AMBIENT)
2094#if defined(GL_DIFFUSE)
2095 case GL_DIFFUSE:
2096#endif // defined(GL_DIFFUSE)
2097#if defined(GL_SPECULAR)
2098 case GL_SPECULAR:
2099#endif // defined(GL_SPECULAR)
2100#if defined(GL_EMISSION)
2101 case GL_EMISSION:
2102#endif // defined(GL_EMISSION)
2103 _needed = 4;
2104 break;
2105 default:
2106 _needed = 0;
2107 break;
2108 }
2109 if (_remaining < _needed) {
2110 _env->ThrowNew(IAEClass, "length - offset < needed");
2111 goto exit;
2112 }
2113 params_base = (GLfixed *)
2114 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2115 params = params_base + offset;
2116
2117 glLightxv(
2118 (GLenum)light,
2119 (GLenum)pname,
2120 (GLfixed *)params
2121 );
2122
2123exit:
2124 if (params_base) {
2125 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2126 JNI_ABORT);
2127 }
2128}
2129
2130/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
2131static void
2132android_glLightxv__IILjava_nio_IntBuffer_2
2133 (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
2134 jarray _array = (jarray) 0;
2135 jint _remaining;
2136 GLfixed *params = (GLfixed *) 0;
2137
2138 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
2139 int _needed;
2140 switch (pname) {
2141#if defined(GL_SPOT_EXPONENT)
2142 case GL_SPOT_EXPONENT:
2143#endif // defined(GL_SPOT_EXPONENT)
2144#if defined(GL_SPOT_CUTOFF)
2145 case GL_SPOT_CUTOFF:
2146#endif // defined(GL_SPOT_CUTOFF)
2147#if defined(GL_CONSTANT_ATTENUATION)
2148 case GL_CONSTANT_ATTENUATION:
2149#endif // defined(GL_CONSTANT_ATTENUATION)
2150#if defined(GL_LINEAR_ATTENUATION)
2151 case GL_LINEAR_ATTENUATION:
2152#endif // defined(GL_LINEAR_ATTENUATION)
2153#if defined(GL_QUADRATIC_ATTENUATION)
2154 case GL_QUADRATIC_ATTENUATION:
2155#endif // defined(GL_QUADRATIC_ATTENUATION)
2156 _needed = 1;
2157 break;
2158#if defined(GL_SPOT_DIRECTION)
2159 case GL_SPOT_DIRECTION:
2160#endif // defined(GL_SPOT_DIRECTION)
2161 _needed = 3;
2162 break;
2163#if defined(GL_AMBIENT)
2164 case GL_AMBIENT:
2165#endif // defined(GL_AMBIENT)
2166#if defined(GL_DIFFUSE)
2167 case GL_DIFFUSE:
2168#endif // defined(GL_DIFFUSE)
2169#if defined(GL_SPECULAR)
2170 case GL_SPECULAR:
2171#endif // defined(GL_SPECULAR)
2172#if defined(GL_EMISSION)
2173 case GL_EMISSION:
2174#endif // defined(GL_EMISSION)
2175 _needed = 4;
2176 break;
2177 default:
2178 _needed = 0;
2179 break;
2180 }
2181 if (_remaining < _needed) {
2182 _env->ThrowNew(IAEClass, "remaining() < needed");
2183 goto exit;
2184 }
2185 glLightxv(
2186 (GLenum)light,
2187 (GLenum)pname,
2188 (GLfixed *)params
2189 );
2190
2191exit:
2192 if (_array) {
2193 releasePointer(_env, _array, params, JNI_FALSE);
2194 }
2195}
2196
2197/* void glLineWidth ( GLfloat width ) */
2198static void
2199android_glLineWidth__F
2200 (JNIEnv *_env, jobject _this, jfloat width) {
2201 glLineWidth(
2202 (GLfloat)width
2203 );
2204}
2205
2206/* void glLineWidthx ( GLfixed width ) */
2207static void
2208android_glLineWidthx__I
2209 (JNIEnv *_env, jobject _this, jint width) {
2210 glLineWidthx(
2211 (GLfixed)width
2212 );
2213}
2214
2215/* void glLoadIdentity ( void ) */
2216static void
2217android_glLoadIdentity__
2218 (JNIEnv *_env, jobject _this) {
2219 glLoadIdentity();
2220}
2221
2222/* void glLoadMatrixf ( const GLfloat *m ) */
2223static void
2224android_glLoadMatrixf___3FI
2225 (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
2226 GLfloat *m_base = (GLfloat *) 0;
2227 jint _remaining;
2228 GLfloat *m = (GLfloat *) 0;
2229
2230 if (!m_ref) {
2231 _env->ThrowNew(IAEClass, "m == null");
2232 goto exit;
2233 }
2234 if (offset < 0) {
2235 _env->ThrowNew(IAEClass, "offset < 0");
2236 goto exit;
2237 }
2238 _remaining = _env->GetArrayLength(m_ref) - offset;
2239 m_base = (GLfloat *)
2240 _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
2241 m = m_base + offset;
2242
2243 glLoadMatrixf(
2244 (GLfloat *)m
2245 );
2246
2247exit:
2248 if (m_base) {
2249 _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
2250 JNI_ABORT);
2251 }
2252}
2253
2254/* void glLoadMatrixf ( const GLfloat *m ) */
2255static void
2256android_glLoadMatrixf__Ljava_nio_FloatBuffer_2
2257 (JNIEnv *_env, jobject _this, jobject m_buf) {
2258 jarray _array = (jarray) 0;
2259 jint _remaining;
2260 GLfloat *m = (GLfloat *) 0;
2261
2262 m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining);
2263 glLoadMatrixf(
2264 (GLfloat *)m
2265 );
2266 if (_array) {
2267 releasePointer(_env, _array, m, JNI_FALSE);
2268 }
2269}
2270
2271/* void glLoadMatrixx ( const GLfixed *m ) */
2272static void
2273android_glLoadMatrixx___3II
2274 (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
2275 GLfixed *m_base = (GLfixed *) 0;
2276 jint _remaining;
2277 GLfixed *m = (GLfixed *) 0;
2278
2279 if (!m_ref) {
2280 _env->ThrowNew(IAEClass, "m == null");
2281 goto exit;
2282 }
2283 if (offset < 0) {
2284 _env->ThrowNew(IAEClass, "offset < 0");
2285 goto exit;
2286 }
2287 _remaining = _env->GetArrayLength(m_ref) - offset;
2288 m_base = (GLfixed *)
2289 _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
2290 m = m_base + offset;
2291
2292 glLoadMatrixx(
2293 (GLfixed *)m
2294 );
2295
2296exit:
2297 if (m_base) {
2298 _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
2299 JNI_ABORT);
2300 }
2301}
2302
2303/* void glLoadMatrixx ( const GLfixed *m ) */
2304static void
2305android_glLoadMatrixx__Ljava_nio_IntBuffer_2
2306 (JNIEnv *_env, jobject _this, jobject m_buf) {
2307 jarray _array = (jarray) 0;
2308 jint _remaining;
2309 GLfixed *m = (GLfixed *) 0;
2310
2311 m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining);
2312 glLoadMatrixx(
2313 (GLfixed *)m
2314 );
2315 if (_array) {
2316 releasePointer(_env, _array, m, JNI_FALSE);
2317 }
2318}
2319
2320/* void glLogicOp ( GLenum opcode ) */
2321static void
2322android_glLogicOp__I
2323 (JNIEnv *_env, jobject _this, jint opcode) {
2324 glLogicOp(
2325 (GLenum)opcode
2326 );
2327}
2328
2329/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */
2330static void
2331android_glMaterialf__IIF
2332 (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) {
2333 glMaterialf(
2334 (GLenum)face,
2335 (GLenum)pname,
2336 (GLfloat)param
2337 );
2338}
2339
2340/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
2341static void
2342android_glMaterialfv__II_3FI
2343 (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
2344 GLfloat *params_base = (GLfloat *) 0;
2345 jint _remaining;
2346 GLfloat *params = (GLfloat *) 0;
2347
2348 if (!params_ref) {
2349 _env->ThrowNew(IAEClass, "params == null");
2350 goto exit;
2351 }
2352 if (offset < 0) {
2353 _env->ThrowNew(IAEClass, "offset < 0");
2354 goto exit;
2355 }
2356 _remaining = _env->GetArrayLength(params_ref) - offset;
2357 int _needed;
2358 switch (pname) {
2359#if defined(GL_SHININESS)
2360 case GL_SHININESS:
2361#endif // defined(GL_SHININESS)
2362 _needed = 1;
2363 break;
2364#if defined(GL_AMBIENT)
2365 case GL_AMBIENT:
2366#endif // defined(GL_AMBIENT)
2367#if defined(GL_DIFFUSE)
2368 case GL_DIFFUSE:
2369#endif // defined(GL_DIFFUSE)
2370#if defined(GL_SPECULAR)
2371 case GL_SPECULAR:
2372#endif // defined(GL_SPECULAR)
2373#if defined(GL_EMISSION)
2374 case GL_EMISSION:
2375#endif // defined(GL_EMISSION)
2376#if defined(GL_AMBIENT_AND_DIFFUSE)
2377 case GL_AMBIENT_AND_DIFFUSE:
2378#endif // defined(GL_AMBIENT_AND_DIFFUSE)
2379 _needed = 4;
2380 break;
2381 default:
2382 _needed = 0;
2383 break;
2384 }
2385 if (_remaining < _needed) {
2386 _env->ThrowNew(IAEClass, "length - offset < needed");
2387 goto exit;
2388 }
2389 params_base = (GLfloat *)
2390 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2391 params = params_base + offset;
2392
2393 glMaterialfv(
2394 (GLenum)face,
2395 (GLenum)pname,
2396 (GLfloat *)params
2397 );
2398
2399exit:
2400 if (params_base) {
2401 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2402 JNI_ABORT);
2403 }
2404}
2405
2406/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
2407static void
2408android_glMaterialfv__IILjava_nio_FloatBuffer_2
2409 (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
2410 jarray _array = (jarray) 0;
2411 jint _remaining;
2412 GLfloat *params = (GLfloat *) 0;
2413
2414 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
2415 int _needed;
2416 switch (pname) {
2417#if defined(GL_SHININESS)
2418 case GL_SHININESS:
2419#endif // defined(GL_SHININESS)
2420 _needed = 1;
2421 break;
2422#if defined(GL_AMBIENT)
2423 case GL_AMBIENT:
2424#endif // defined(GL_AMBIENT)
2425#if defined(GL_DIFFUSE)
2426 case GL_DIFFUSE:
2427#endif // defined(GL_DIFFUSE)
2428#if defined(GL_SPECULAR)
2429 case GL_SPECULAR:
2430#endif // defined(GL_SPECULAR)
2431#if defined(GL_EMISSION)
2432 case GL_EMISSION:
2433#endif // defined(GL_EMISSION)
2434#if defined(GL_AMBIENT_AND_DIFFUSE)
2435 case GL_AMBIENT_AND_DIFFUSE:
2436#endif // defined(GL_AMBIENT_AND_DIFFUSE)
2437 _needed = 4;
2438 break;
2439 default:
2440 _needed = 0;
2441 break;
2442 }
2443 if (_remaining < _needed) {
2444 _env->ThrowNew(IAEClass, "remaining() < needed");
2445 goto exit;
2446 }
2447 glMaterialfv(
2448 (GLenum)face,
2449 (GLenum)pname,
2450 (GLfloat *)params
2451 );
2452
2453exit:
2454 if (_array) {
2455 releasePointer(_env, _array, params, JNI_FALSE);
2456 }
2457}
2458
2459/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */
2460static void
2461android_glMaterialx__III
2462 (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) {
2463 glMaterialx(
2464 (GLenum)face,
2465 (GLenum)pname,
2466 (GLfixed)param
2467 );
2468}
2469
2470/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
2471static void
2472android_glMaterialxv__II_3II
2473 (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
2474 GLfixed *params_base = (GLfixed *) 0;
2475 jint _remaining;
2476 GLfixed *params = (GLfixed *) 0;
2477
2478 if (!params_ref) {
2479 _env->ThrowNew(IAEClass, "params == null");
2480 goto exit;
2481 }
2482 if (offset < 0) {
2483 _env->ThrowNew(IAEClass, "offset < 0");
2484 goto exit;
2485 }
2486 _remaining = _env->GetArrayLength(params_ref) - offset;
2487 int _needed;
2488 switch (pname) {
2489#if defined(GL_SHININESS)
2490 case GL_SHININESS:
2491#endif // defined(GL_SHININESS)
2492 _needed = 1;
2493 break;
2494#if defined(GL_AMBIENT)
2495 case GL_AMBIENT:
2496#endif // defined(GL_AMBIENT)
2497#if defined(GL_DIFFUSE)
2498 case GL_DIFFUSE:
2499#endif // defined(GL_DIFFUSE)
2500#if defined(GL_SPECULAR)
2501 case GL_SPECULAR:
2502#endif // defined(GL_SPECULAR)
2503#if defined(GL_EMISSION)
2504 case GL_EMISSION:
2505#endif // defined(GL_EMISSION)
2506#if defined(GL_AMBIENT_AND_DIFFUSE)
2507 case GL_AMBIENT_AND_DIFFUSE:
2508#endif // defined(GL_AMBIENT_AND_DIFFUSE)
2509 _needed = 4;
2510 break;
2511 default:
2512 _needed = 0;
2513 break;
2514 }
2515 if (_remaining < _needed) {
2516 _env->ThrowNew(IAEClass, "length - offset < needed");
2517 goto exit;
2518 }
2519 params_base = (GLfixed *)
2520 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2521 params = params_base + offset;
2522
2523 glMaterialxv(
2524 (GLenum)face,
2525 (GLenum)pname,
2526 (GLfixed *)params
2527 );
2528
2529exit:
2530 if (params_base) {
2531 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2532 JNI_ABORT);
2533 }
2534}
2535
2536/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
2537static void
2538android_glMaterialxv__IILjava_nio_IntBuffer_2
2539 (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
2540 jarray _array = (jarray) 0;
2541 jint _remaining;
2542 GLfixed *params = (GLfixed *) 0;
2543
2544 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
2545 int _needed;
2546 switch (pname) {
2547#if defined(GL_SHININESS)
2548 case GL_SHININESS:
2549#endif // defined(GL_SHININESS)
2550 _needed = 1;
2551 break;
2552#if defined(GL_AMBIENT)
2553 case GL_AMBIENT:
2554#endif // defined(GL_AMBIENT)
2555#if defined(GL_DIFFUSE)
2556 case GL_DIFFUSE:
2557#endif // defined(GL_DIFFUSE)
2558#if defined(GL_SPECULAR)
2559 case GL_SPECULAR:
2560#endif // defined(GL_SPECULAR)
2561#if defined(GL_EMISSION)
2562 case GL_EMISSION:
2563#endif // defined(GL_EMISSION)
2564#if defined(GL_AMBIENT_AND_DIFFUSE)
2565 case GL_AMBIENT_AND_DIFFUSE:
2566#endif // defined(GL_AMBIENT_AND_DIFFUSE)
2567 _needed = 4;
2568 break;
2569 default:
2570 _needed = 0;
2571 break;
2572 }
2573 if (_remaining < _needed) {
2574 _env->ThrowNew(IAEClass, "remaining() < needed");
2575 goto exit;
2576 }
2577 glMaterialxv(
2578 (GLenum)face,
2579 (GLenum)pname,
2580 (GLfixed *)params
2581 );
2582
2583exit:
2584 if (_array) {
2585 releasePointer(_env, _array, params, JNI_FALSE);
2586 }
2587}
2588
2589/* void glMatrixMode ( GLenum mode ) */
2590static void
2591android_glMatrixMode__I
2592 (JNIEnv *_env, jobject _this, jint mode) {
2593 glMatrixMode(
2594 (GLenum)mode
2595 );
2596}
2597
2598/* void glMultMatrixf ( const GLfloat *m ) */
2599static void
2600android_glMultMatrixf___3FI
2601 (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
2602 GLfloat *m_base = (GLfloat *) 0;
2603 jint _remaining;
2604 GLfloat *m = (GLfloat *) 0;
2605
2606 if (!m_ref) {
2607 _env->ThrowNew(IAEClass, "m == null");
2608 goto exit;
2609 }
2610 if (offset < 0) {
2611 _env->ThrowNew(IAEClass, "offset < 0");
2612 goto exit;
2613 }
2614 _remaining = _env->GetArrayLength(m_ref) - offset;
2615 m_base = (GLfloat *)
2616 _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
2617 m = m_base + offset;
2618
2619 glMultMatrixf(
2620 (GLfloat *)m
2621 );
2622
2623exit:
2624 if (m_base) {
2625 _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
2626 JNI_ABORT);
2627 }
2628}
2629
2630/* void glMultMatrixf ( const GLfloat *m ) */
2631static void
2632android_glMultMatrixf__Ljava_nio_FloatBuffer_2
2633 (JNIEnv *_env, jobject _this, jobject m_buf) {
2634 jarray _array = (jarray) 0;
2635 jint _remaining;
2636 GLfloat *m = (GLfloat *) 0;
2637
2638 m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining);
2639 glMultMatrixf(
2640 (GLfloat *)m
2641 );
2642 if (_array) {
2643 releasePointer(_env, _array, m, JNI_FALSE);
2644 }
2645}
2646
2647/* void glMultMatrixx ( const GLfixed *m ) */
2648static void
2649android_glMultMatrixx___3II
2650 (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
2651 GLfixed *m_base = (GLfixed *) 0;
2652 jint _remaining;
2653 GLfixed *m = (GLfixed *) 0;
2654
2655 if (!m_ref) {
2656 _env->ThrowNew(IAEClass, "m == null");
2657 goto exit;
2658 }
2659 if (offset < 0) {
2660 _env->ThrowNew(IAEClass, "offset < 0");
2661 goto exit;
2662 }
2663 _remaining = _env->GetArrayLength(m_ref) - offset;
2664 m_base = (GLfixed *)
2665 _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
2666 m = m_base + offset;
2667
2668 glMultMatrixx(
2669 (GLfixed *)m
2670 );
2671
2672exit:
2673 if (m_base) {
2674 _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
2675 JNI_ABORT);
2676 }
2677}
2678
2679/* void glMultMatrixx ( const GLfixed *m ) */
2680static void
2681android_glMultMatrixx__Ljava_nio_IntBuffer_2
2682 (JNIEnv *_env, jobject _this, jobject m_buf) {
2683 jarray _array = (jarray) 0;
2684 jint _remaining;
2685 GLfixed *m = (GLfixed *) 0;
2686
2687 m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining);
2688 glMultMatrixx(
2689 (GLfixed *)m
2690 );
2691 if (_array) {
2692 releasePointer(_env, _array, m, JNI_FALSE);
2693 }
2694}
2695
2696/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */
2697static void
2698android_glMultiTexCoord4f__IFFFF
2699 (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) {
2700 glMultiTexCoord4f(
2701 (GLenum)target,
2702 (GLfloat)s,
2703 (GLfloat)t,
2704 (GLfloat)r,
2705 (GLfloat)q
2706 );
2707}
2708
2709/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */
2710static void
2711android_glMultiTexCoord4x__IIIII
2712 (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) {
2713 glMultiTexCoord4x(
2714 (GLenum)target,
2715 (GLfixed)s,
2716 (GLfixed)t,
2717 (GLfixed)r,
2718 (GLfixed)q
2719 );
2720}
2721
2722/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */
2723static void
2724android_glNormal3f__FFF
2725 (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) {
2726 glNormal3f(
2727 (GLfloat)nx,
2728 (GLfloat)ny,
2729 (GLfloat)nz
2730 );
2731}
2732
2733/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */
2734static void
2735android_glNormal3x__III
2736 (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) {
2737 glNormal3x(
2738 (GLfixed)nx,
2739 (GLfixed)ny,
2740 (GLfixed)nz
2741 );
2742}
2743
2744/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
2745static void
2746android_glNormalPointerBounds__IILjava_nio_Buffer_2I
2747 (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
2748 jarray _array = (jarray) 0;
2749 jint _remaining;
2750 GLvoid *pointer = (GLvoid *) 0;
2751
2752 pointer = (GLvoid *)getPointer(_env, pointer_buf, &_array, &_remaining);
2753 glNormalPointerBounds(
2754 (GLenum)type,
2755 (GLsizei)stride,
2756 (GLvoid *)pointer,
2757 (GLsizei)remaining
2758 );
2759 if (_array) {
2760 releasePointer(_env, _array, pointer, JNI_FALSE);
2761 }
2762}
2763
2764/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
2765static void
2766android_glOrthof__FFFFFF
2767 (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
2768 glOrthof(
2769 (GLfloat)left,
2770 (GLfloat)right,
2771 (GLfloat)bottom,
2772 (GLfloat)top,
2773 (GLfloat)zNear,
2774 (GLfloat)zFar
2775 );
2776}
2777
2778/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
2779static void
2780android_glOrthox__IIIIII
2781 (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
2782 glOrthox(
2783 (GLfixed)left,
2784 (GLfixed)right,
2785 (GLfixed)bottom,
2786 (GLfixed)top,
2787 (GLfixed)zNear,
2788 (GLfixed)zFar
2789 );
2790}
2791
2792/* void glPixelStorei ( GLenum pname, GLint param ) */
2793static void
2794android_glPixelStorei__II
2795 (JNIEnv *_env, jobject _this, jint pname, jint param) {
2796 glPixelStorei(
2797 (GLenum)pname,
2798 (GLint)param
2799 );
2800}
2801
2802/* void glPointSize ( GLfloat size ) */
2803static void
2804android_glPointSize__F
2805 (JNIEnv *_env, jobject _this, jfloat size) {
2806 glPointSize(
2807 (GLfloat)size
2808 );
2809}
2810
2811/* void glPointSizex ( GLfixed size ) */
2812static void
2813android_glPointSizex__I
2814 (JNIEnv *_env, jobject _this, jint size) {
2815 glPointSizex(
2816 (GLfixed)size
2817 );
2818}
2819
2820/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */
2821static void
2822android_glPolygonOffset__FF
2823 (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) {
2824 glPolygonOffset(
2825 (GLfloat)factor,
2826 (GLfloat)units
2827 );
2828}
2829
2830/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */
2831static void
2832android_glPolygonOffsetx__II
2833 (JNIEnv *_env, jobject _this, jint factor, jint units) {
2834 glPolygonOffsetx(
2835 (GLfixed)factor,
2836 (GLfixed)units
2837 );
2838}
2839
2840/* void glPopMatrix ( void ) */
2841static void
2842android_glPopMatrix__
2843 (JNIEnv *_env, jobject _this) {
2844 glPopMatrix();
2845}
2846
2847/* void glPushMatrix ( void ) */
2848static void
2849android_glPushMatrix__
2850 (JNIEnv *_env, jobject _this) {
2851 glPushMatrix();
2852}
2853
2854/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */
2855static void
2856android_glReadPixels__IIIIIILjava_nio_Buffer_2
2857 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) {
2858 jint _exception = 0;
2859 jarray _array = (jarray) 0;
2860 jint _remaining;
2861 GLvoid *pixels = (GLvoid *) 0;
2862
2863 pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
2864 glReadPixels(
2865 (GLint)x,
2866 (GLint)y,
2867 (GLsizei)width,
2868 (GLsizei)height,
2869 (GLenum)format,
2870 (GLenum)type,
2871 (GLvoid *)pixels
2872 );
2873 if (_array) {
2874 releasePointer(_env, _array, pixels, _exception ? JNI_FALSE : JNI_TRUE);
2875 }
2876}
2877
2878/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */
2879static void
2880android_glRotatef__FFFF
2881 (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) {
2882 glRotatef(
2883 (GLfloat)angle,
2884 (GLfloat)x,
2885 (GLfloat)y,
2886 (GLfloat)z
2887 );
2888}
2889
2890/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */
2891static void
2892android_glRotatex__IIII
2893 (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) {
2894 glRotatex(
2895 (GLfixed)angle,
2896 (GLfixed)x,
2897 (GLfixed)y,
2898 (GLfixed)z
2899 );
2900}
2901
2902/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */
2903static void
2904android_glSampleCoverage__FZ
2905 (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) {
2906 glSampleCoverage(
2907 (GLclampf)value,
2908 (GLboolean)invert
2909 );
2910}
2911
2912/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */
2913static void
2914android_glSampleCoveragex__IZ
2915 (JNIEnv *_env, jobject _this, jint value, jboolean invert) {
2916 glSampleCoveragex(
2917 (GLclampx)value,
2918 (GLboolean)invert
2919 );
2920}
2921
2922/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */
2923static void
2924android_glScalef__FFF
2925 (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
2926 glScalef(
2927 (GLfloat)x,
2928 (GLfloat)y,
2929 (GLfloat)z
2930 );
2931}
2932
2933/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */
2934static void
2935android_glScalex__III
2936 (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
2937 glScalex(
2938 (GLfixed)x,
2939 (GLfixed)y,
2940 (GLfixed)z
2941 );
2942}
2943
2944/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */
2945static void
2946android_glScissor__IIII
2947 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
2948 glScissor(
2949 (GLint)x,
2950 (GLint)y,
2951 (GLsizei)width,
2952 (GLsizei)height
2953 );
2954}
2955
2956/* void glShadeModel ( GLenum mode ) */
2957static void
2958android_glShadeModel__I
2959 (JNIEnv *_env, jobject _this, jint mode) {
2960 glShadeModel(
2961 (GLenum)mode
2962 );
2963}
2964
2965/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */
2966static void
2967android_glStencilFunc__III
2968 (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) {
2969 glStencilFunc(
2970 (GLenum)func,
2971 (GLint)ref,
2972 (GLuint)mask
2973 );
2974}
2975
2976/* void glStencilMask ( GLuint mask ) */
2977static void
2978android_glStencilMask__I
2979 (JNIEnv *_env, jobject _this, jint mask) {
2980 glStencilMask(
2981 (GLuint)mask
2982 );
2983}
2984
2985/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */
2986static void
2987android_glStencilOp__III
2988 (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) {
2989 glStencilOp(
2990 (GLenum)fail,
2991 (GLenum)zfail,
2992 (GLenum)zpass
2993 );
2994}
2995
2996/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
2997static void
2998android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I
2999 (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
3000 jarray _array = (jarray) 0;
3001 jint _remaining;
3002 GLvoid *pointer = (GLvoid *) 0;
3003
3004 pointer = (GLvoid *)getPointer(_env, pointer_buf, &_array, &_remaining);
3005 glTexCoordPointerBounds(
3006 (GLint)size,
3007 (GLenum)type,
3008 (GLsizei)stride,
3009 (GLvoid *)pointer,
3010 (GLsizei)remaining
3011 );
3012 if (_array) {
3013 releasePointer(_env, _array, pointer, JNI_FALSE);
3014 }
3015}
3016
3017/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */
3018static void
3019android_glTexEnvf__IIF
3020 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
3021 glTexEnvf(
3022 (GLenum)target,
3023 (GLenum)pname,
3024 (GLfloat)param
3025 );
3026}
3027
3028/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
3029static void
3030android_glTexEnvfv__II_3FI
3031 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
3032 GLfloat *params_base = (GLfloat *) 0;
3033 jint _remaining;
3034 GLfloat *params = (GLfloat *) 0;
3035
3036 if (!params_ref) {
3037 _env->ThrowNew(IAEClass, "params == null");
3038 goto exit;
3039 }
3040 if (offset < 0) {
3041 _env->ThrowNew(IAEClass, "offset < 0");
3042 goto exit;
3043 }
3044 _remaining = _env->GetArrayLength(params_ref) - offset;
3045 int _needed;
3046 switch (pname) {
3047#if defined(GL_TEXTURE_ENV_MODE)
3048 case GL_TEXTURE_ENV_MODE:
3049#endif // defined(GL_TEXTURE_ENV_MODE)
3050#if defined(GL_COMBINE_RGB)
3051 case GL_COMBINE_RGB:
3052#endif // defined(GL_COMBINE_RGB)
3053#if defined(GL_COMBINE_ALPHA)
3054 case GL_COMBINE_ALPHA:
3055#endif // defined(GL_COMBINE_ALPHA)
3056 _needed = 1;
3057 break;
3058#if defined(GL_TEXTURE_ENV_COLOR)
3059 case GL_TEXTURE_ENV_COLOR:
3060#endif // defined(GL_TEXTURE_ENV_COLOR)
3061 _needed = 4;
3062 break;
3063 default:
3064 _needed = 0;
3065 break;
3066 }
3067 if (_remaining < _needed) {
3068 _env->ThrowNew(IAEClass, "length - offset < needed");
3069 goto exit;
3070 }
3071 params_base = (GLfloat *)
3072 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
3073 params = params_base + offset;
3074
3075 glTexEnvfv(
3076 (GLenum)target,
3077 (GLenum)pname,
3078 (GLfloat *)params
3079 );
3080
3081exit:
3082 if (params_base) {
3083 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
3084 JNI_ABORT);
3085 }
3086}
3087
3088/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
3089static void
3090android_glTexEnvfv__IILjava_nio_FloatBuffer_2
3091 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
3092 jarray _array = (jarray) 0;
3093 jint _remaining;
3094 GLfloat *params = (GLfloat *) 0;
3095
3096 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
3097 int _needed;
3098 switch (pname) {
3099#if defined(GL_TEXTURE_ENV_MODE)
3100 case GL_TEXTURE_ENV_MODE:
3101#endif // defined(GL_TEXTURE_ENV_MODE)
3102#if defined(GL_COMBINE_RGB)
3103 case GL_COMBINE_RGB:
3104#endif // defined(GL_COMBINE_RGB)
3105#if defined(GL_COMBINE_ALPHA)
3106 case GL_COMBINE_ALPHA:
3107#endif // defined(GL_COMBINE_ALPHA)
3108 _needed = 1;
3109 break;
3110#if defined(GL_TEXTURE_ENV_COLOR)
3111 case GL_TEXTURE_ENV_COLOR:
3112#endif // defined(GL_TEXTURE_ENV_COLOR)
3113 _needed = 4;
3114 break;
3115 default:
3116 _needed = 0;
3117 break;
3118 }
3119 if (_remaining < _needed) {
3120 _env->ThrowNew(IAEClass, "remaining() < needed");
3121 goto exit;
3122 }
3123 glTexEnvfv(
3124 (GLenum)target,
3125 (GLenum)pname,
3126 (GLfloat *)params
3127 );
3128
3129exit:
3130 if (_array) {
3131 releasePointer(_env, _array, params, JNI_FALSE);
3132 }
3133}
3134
3135/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */
3136static void
3137android_glTexEnvx__III
3138 (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
3139 glTexEnvx(
3140 (GLenum)target,
3141 (GLenum)pname,
3142 (GLfixed)param
3143 );
3144}
3145
3146/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
3147static void
3148android_glTexEnvxv__II_3II
3149 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
3150 GLfixed *params_base = (GLfixed *) 0;
3151 jint _remaining;
3152 GLfixed *params = (GLfixed *) 0;
3153
3154 if (!params_ref) {
3155 _env->ThrowNew(IAEClass, "params == null");
3156 goto exit;
3157 }
3158 if (offset < 0) {
3159 _env->ThrowNew(IAEClass, "offset < 0");
3160 goto exit;
3161 }
3162 _remaining = _env->GetArrayLength(params_ref) - offset;
3163 int _needed;
3164 switch (pname) {
3165#if defined(GL_TEXTURE_ENV_MODE)
3166 case GL_TEXTURE_ENV_MODE:
3167#endif // defined(GL_TEXTURE_ENV_MODE)
3168#if defined(GL_COMBINE_RGB)
3169 case GL_COMBINE_RGB:
3170#endif // defined(GL_COMBINE_RGB)
3171#if defined(GL_COMBINE_ALPHA)
3172 case GL_COMBINE_ALPHA:
3173#endif // defined(GL_COMBINE_ALPHA)
3174 _needed = 1;
3175 break;
3176#if defined(GL_TEXTURE_ENV_COLOR)
3177 case GL_TEXTURE_ENV_COLOR:
3178#endif // defined(GL_TEXTURE_ENV_COLOR)
3179 _needed = 4;
3180 break;
3181 default:
3182 _needed = 0;
3183 break;
3184 }
3185 if (_remaining < _needed) {
3186 _env->ThrowNew(IAEClass, "length - offset < needed");
3187 goto exit;
3188 }
3189 params_base = (GLfixed *)
3190 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
3191 params = params_base + offset;
3192
3193 glTexEnvxv(
3194 (GLenum)target,
3195 (GLenum)pname,
3196 (GLfixed *)params
3197 );
3198
3199exit:
3200 if (params_base) {
3201 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
3202 JNI_ABORT);
3203 }
3204}
3205
3206/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
3207static void
3208android_glTexEnvxv__IILjava_nio_IntBuffer_2
3209 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
3210 jarray _array = (jarray) 0;
3211 jint _remaining;
3212 GLfixed *params = (GLfixed *) 0;
3213
3214 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
3215 int _needed;
3216 switch (pname) {
3217#if defined(GL_TEXTURE_ENV_MODE)
3218 case GL_TEXTURE_ENV_MODE:
3219#endif // defined(GL_TEXTURE_ENV_MODE)
3220#if defined(GL_COMBINE_RGB)
3221 case GL_COMBINE_RGB:
3222#endif // defined(GL_COMBINE_RGB)
3223#if defined(GL_COMBINE_ALPHA)
3224 case GL_COMBINE_ALPHA:
3225#endif // defined(GL_COMBINE_ALPHA)
3226 _needed = 1;
3227 break;
3228#if defined(GL_TEXTURE_ENV_COLOR)
3229 case GL_TEXTURE_ENV_COLOR:
3230#endif // defined(GL_TEXTURE_ENV_COLOR)
3231 _needed = 4;
3232 break;
3233 default:
3234 _needed = 0;
3235 break;
3236 }
3237 if (_remaining < _needed) {
3238 _env->ThrowNew(IAEClass, "remaining() < needed");
3239 goto exit;
3240 }
3241 glTexEnvxv(
3242 (GLenum)target,
3243 (GLenum)pname,
3244 (GLfixed *)params
3245 );
3246
3247exit:
3248 if (_array) {
3249 releasePointer(_env, _array, params, JNI_FALSE);
3250 }
3251}
3252
3253/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */
3254static void
3255android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2
3256 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) {
3257 jarray _array = (jarray) 0;
3258 jint _remaining;
3259 GLvoid *pixels = (GLvoid *) 0;
3260
3261 if (pixels_buf) {
3262 pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
3263 }
3264 glTexImage2D(
3265 (GLenum)target,
3266 (GLint)level,
3267 (GLint)internalformat,
3268 (GLsizei)width,
3269 (GLsizei)height,
3270 (GLint)border,
3271 (GLenum)format,
3272 (GLenum)type,
3273 (GLvoid *)pixels
3274 );
3275 if (_array) {
3276 releasePointer(_env, _array, pixels, JNI_FALSE);
3277 }
3278}
3279
3280/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */
3281static void
3282android_glTexParameterf__IIF
3283 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
3284 glTexParameterf(
3285 (GLenum)target,
3286 (GLenum)pname,
3287 (GLfloat)param
3288 );
3289}
3290
3291/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */
3292static void
3293android_glTexParameterx__III
3294 (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
3295 glTexParameterx(
3296 (GLenum)target,
3297 (GLenum)pname,
3298 (GLfixed)param
3299 );
3300}
3301
3302/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */
3303static void
3304android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
3305 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) {
3306 jarray _array = (jarray) 0;
3307 jint _remaining;
3308 GLvoid *pixels = (GLvoid *) 0;
3309
3310 if (pixels_buf) {
3311 pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining);
3312 }
3313 glTexSubImage2D(
3314 (GLenum)target,
3315 (GLint)level,
3316 (GLint)xoffset,
3317 (GLint)yoffset,
3318 (GLsizei)width,
3319 (GLsizei)height,
3320 (GLenum)format,
3321 (GLenum)type,
3322 (GLvoid *)pixels
3323 );
3324 if (_array) {
3325 releasePointer(_env, _array, pixels, JNI_FALSE);
3326 }
3327}
3328
3329/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */
3330static void
3331android_glTranslatef__FFF
3332 (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
3333 glTranslatef(
3334 (GLfloat)x,
3335 (GLfloat)y,
3336 (GLfloat)z
3337 );
3338}
3339
3340/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */
3341static void
3342android_glTranslatex__III
3343 (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
3344 glTranslatex(
3345 (GLfixed)x,
3346 (GLfixed)y,
3347 (GLfixed)z
3348 );
3349}
3350
3351/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
3352static void
3353android_glVertexPointerBounds__IIILjava_nio_Buffer_2I
3354 (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
3355 jarray _array = (jarray) 0;
3356 jint _remaining;
3357 GLvoid *pointer = (GLvoid *) 0;
3358
3359 pointer = (GLvoid *)getPointer(_env, pointer_buf, &_array, &_remaining);
3360 glVertexPointerBounds(
3361 (GLint)size,
3362 (GLenum)type,
3363 (GLsizei)stride,
3364 (GLvoid *)pointer,
3365 (GLsizei)remaining
3366 );
3367 if (_array) {
3368 releasePointer(_env, _array, pointer, JNI_FALSE);
3369 }
3370}
3371
3372/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */
3373static void
3374android_glViewport__IIII
3375 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
3376 glViewport(
3377 (GLint)x,
3378 (GLint)y,
3379 (GLsizei)width,
3380 (GLsizei)height
3381 );
3382}
3383
3384static const char *classPathName = "android/opengl/GLES10";
3385
3386static JNINativeMethod methods[] = {
3387{"_nativeClassInit", "()V", (void*)nativeClassInit },
3388{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I },
3389{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF },
3390{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II },
3391{"glBindTexture", "(II)V", (void *) android_glBindTexture__II },
3392{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II },
3393{"glClear", "(I)V", (void *) android_glClear__I },
3394{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF },
3395{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII },
3396{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F },
3397{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I },
3398{"glClearStencil", "(I)V", (void *) android_glClearStencil__I },
3399{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I },
3400{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF },
3401{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII },
3402{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ },
3403{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I },
3404{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 },
3405{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
3406{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII },
3407{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII },
3408{"glCullFace", "(I)V", (void *) android_glCullFace__I },
3409{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II },
3410{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 },
3411{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I },
3412{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z },
3413{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF },
3414{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II },
3415{"glDisable", "(I)V", (void *) android_glDisable__I },
3416{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I },
3417{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III },
3418{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 },
3419{"glEnable", "(I)V", (void *) android_glEnable__I },
3420{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I },
3421{"glFinish", "()V", (void *) android_glFinish__ },
3422{"glFlush", "()V", (void *) android_glFlush__ },
3423{"glFogf", "(IF)V", (void *) android_glFogf__IF },
3424{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI },
3425{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 },
3426{"glFogx", "(II)V", (void *) android_glFogx__II },
3427{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II },
3428{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 },
3429{"glFrontFace", "(I)V", (void *) android_glFrontFace__I },
3430{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF },
3431{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII },
3432{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II },
3433{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 },
3434{"glGetError", "()I", (void *) android_glGetError__ },
3435{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II },
3436{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 },
3437{"_glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },
3438{"glHint", "(II)V", (void *) android_glHint__II },
3439{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF },
3440{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI },
3441{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 },
3442{"glLightModelx", "(II)V", (void *) android_glLightModelx__II },
3443{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II },
3444{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 },
3445{"glLightf", "(IIF)V", (void *) android_glLightf__IIF },
3446{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI },
3447{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 },
3448{"glLightx", "(III)V", (void *) android_glLightx__III },
3449{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II },
3450{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 },
3451{"glLineWidth", "(F)V", (void *) android_glLineWidth__F },
3452{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I },
3453{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ },
3454{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI },
3455{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 },
3456{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II },
3457{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 },
3458{"glLogicOp", "(I)V", (void *) android_glLogicOp__I },
3459{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF },
3460{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI },
3461{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 },
3462{"glMaterialx", "(III)V", (void *) android_glMaterialx__III },
3463{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II },
3464{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 },
3465{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I },
3466{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI },
3467{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 },
3468{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II },
3469{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 },
3470{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF },
3471{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII },
3472{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF },
3473{"glNormal3x", "(III)V", (void *) android_glNormal3x__III },
3474{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I },
3475{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF },
3476{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII },
3477{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II },
3478{"glPointSize", "(F)V", (void *) android_glPointSize__F },
3479{"glPointSizex", "(I)V", (void *) android_glPointSizex__I },
3480{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF },
3481{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II },
3482{"glPopMatrix", "()V", (void *) android_glPopMatrix__ },
3483{"glPushMatrix", "()V", (void *) android_glPushMatrix__ },
3484{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 },
3485{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF },
3486{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII },
3487{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ },
3488{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ },
3489{"glScalef", "(FFF)V", (void *) android_glScalef__FFF },
3490{"glScalex", "(III)V", (void *) android_glScalex__III },
3491{"glScissor", "(IIII)V", (void *) android_glScissor__IIII },
3492{"glShadeModel", "(I)V", (void *) android_glShadeModel__I },
3493{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III },
3494{"glStencilMask", "(I)V", (void *) android_glStencilMask__I },
3495{"glStencilOp", "(III)V", (void *) android_glStencilOp__III },
3496{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I },
3497{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF },
3498{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI },
3499{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 },
3500{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III },
3501{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II },
3502{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 },
3503{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 },
3504{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF },
3505{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III },
3506{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
3507{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF },
3508{"glTranslatex", "(III)V", (void *) android_glTranslatex__III },
3509{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I },
3510{"glViewport", "(IIII)V", (void *) android_glViewport__IIII },
3511};
3512
3513int register_android_opengl_jni_GLES10(JNIEnv *_env)
3514{
3515 int err;
3516 err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
3517 return err;
3518}