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