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