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