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