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 <android_runtime/AndroidRuntime.h>
21 #include <utils/misc.h>
22
23 #include <assert.h>
24 #include <GLES/gl.h>
25 #include <GLES/glext.h>
26
27 /* special calls implemented in Android's GLES wrapper used to more
28 * efficiently bound-check passed arrays */
29 extern "C" {
30 GL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type, GLsizei stride,
31 const GLvoid *ptr, GLsizei count);
32 }
33
34 static int initialized = 0;
35
36 static jclass nioAccessClass;
37 static jclass bufferClass;
38 static jclass OOMEClass;
39 static jclass UOEClass;
40 static jclass IAEClass;
41 static jclass AIOOBEClass;
42 static jmethodID getBasePointerID;
43 static jmethodID getBaseArrayID;
44 static jmethodID getBaseArrayOffsetID;
45 static jfieldID positionID;
46 static jfieldID limitID;
47 static jfieldID elementSizeShiftID;
48
49 /* Cache method IDs each time the class is loaded. */
50
51 static void
nativeClassInitBuffer(JNIEnv * _env)52 nativeClassInitBuffer(JNIEnv *_env)
53 {
54 jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
55 nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
56
57 jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
58 bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
59
60 getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
61 "getBasePointer", "(Ljava/nio/Buffer;)J");
62 getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
63 "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
64 getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
65 "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
66
67 positionID = _env->GetFieldID(bufferClass, "position", "I");
68 limitID = _env->GetFieldID(bufferClass, "limit", "I");
69 elementSizeShiftID =
70 _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
71 }
72
73
74 static void
nativeClassInit(JNIEnv * _env,jclass glImplClass)75 nativeClassInit(JNIEnv *_env, jclass glImplClass)
76 {
77 nativeClassInitBuffer(_env);
78
79 jclass IAEClassLocal =
80 _env->FindClass("java/lang/IllegalArgumentException");
81 jclass OOMEClassLocal =
82 _env->FindClass("java/lang/OutOfMemoryError");
83 jclass UOEClassLocal =
84 _env->FindClass("java/lang/UnsupportedOperationException");
85 jclass AIOOBEClassLocal =
86 _env->FindClass("java/lang/ArrayIndexOutOfBoundsException");
87
88 IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
89 OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
90 UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
91 AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal);
92 }
93
94 static void *
getPointer(JNIEnv * _env,jobject buffer,jarray * array,jint * remaining)95 getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
96 {
97 jint position;
98 jint limit;
99 jint elementSizeShift;
100 jlong pointer;
101 jint offset;
102 void *data;
103
104 position = _env->GetIntField(buffer, positionID);
105 limit = _env->GetIntField(buffer, limitID);
106 elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
107 *remaining = (limit - position) << elementSizeShift;
108 pointer = _env->CallStaticLongMethod(nioAccessClass,
109 getBasePointerID, buffer);
110 if (pointer != 0L) {
111 *array = NULL;
112 return (void *) (jint) pointer;
113 }
114
115 *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
116 getBaseArrayID, buffer);
117 offset = _env->CallStaticIntMethod(nioAccessClass,
118 getBaseArrayOffsetID, buffer);
119 data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
120
121 return (void *) ((char *) data + offset);
122 }
123
124
125 static void
releasePointer(JNIEnv * _env,jarray array,void * data,jboolean commit)126 releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
127 {
128 _env->ReleasePrimitiveArrayCritical(array, data,
129 commit ? 0 : JNI_ABORT);
130 }
131
132 static void *
getDirectBufferPointer(JNIEnv * _env,jobject buffer)133 getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
134 char* buf = (char*) _env->GetDirectBufferAddress(buffer);
135 if (buf) {
136 jint position = _env->GetIntField(buffer, positionID);
137 jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
138 buf += position << elementSizeShift;
139 } else {
140 _env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
141 }
142 return (void*) buf;
143 }
144
145 // --------------------------------------------------------------------------
146
147 /* void glBindBuffer ( GLenum target, GLuint buffer ) */
148 static void
android_glBindBuffer__II(JNIEnv * _env,jobject _this,jint target,jint buffer)149 android_glBindBuffer__II
150 (JNIEnv *_env, jobject _this, jint target, jint buffer) {
151 glBindBuffer(
152 (GLenum)target,
153 (GLuint)buffer
154 );
155 }
156
157 /* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */
158 static void
android_glBufferData__IILjava_nio_Buffer_2I(JNIEnv * _env,jobject _this,jint target,jint size,jobject data_buf,jint usage)159 android_glBufferData__IILjava_nio_Buffer_2I
160 (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) {
161 jarray _array = (jarray) 0;
162 jint _remaining;
163 GLvoid *data = (GLvoid *) 0;
164
165 if (data_buf) {
166 data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
167 if (_remaining < size) {
168 _env->ThrowNew(IAEClass, "remaining() < size");
169 goto exit;
170 }
171 }
172 glBufferData(
173 (GLenum)target,
174 (GLsizeiptr)size,
175 (GLvoid *)data,
176 (GLenum)usage
177 );
178
179 exit:
180 if (_array) {
181 releasePointer(_env, _array, data, JNI_FALSE);
182 }
183 }
184
185 /* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */
186 static void
android_glBufferSubData__IIILjava_nio_Buffer_2(JNIEnv * _env,jobject _this,jint target,jint offset,jint size,jobject data_buf)187 android_glBufferSubData__IIILjava_nio_Buffer_2
188 (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) {
189 jarray _array = (jarray) 0;
190 jint _remaining;
191 GLvoid *data = (GLvoid *) 0;
192
193 data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
194 if (_remaining < size) {
195 _env->ThrowNew(IAEClass, "remaining() < size");
196 goto exit;
197 }
198 glBufferSubData(
199 (GLenum)target,
200 (GLintptr)offset,
201 (GLsizeiptr)size,
202 (GLvoid *)data
203 );
204
205 exit:
206 if (_array) {
207 releasePointer(_env, _array, data, JNI_FALSE);
208 }
209 }
210
211 /* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
212 static void
android_glClipPlanef__I_3FI(JNIEnv * _env,jobject _this,jint plane,jfloatArray equation_ref,jint offset)213 android_glClipPlanef__I_3FI
214 (JNIEnv *_env, jobject _this, jint plane, jfloatArray equation_ref, jint offset) {
215 GLfloat *equation_base = (GLfloat *) 0;
216 jint _remaining;
217 GLfloat *equation = (GLfloat *) 0;
218
219 if (!equation_ref) {
220 _env->ThrowNew(IAEClass, "equation == null");
221 goto exit;
222 }
223 if (offset < 0) {
224 _env->ThrowNew(IAEClass, "offset < 0");
225 goto exit;
226 }
227 _remaining = _env->GetArrayLength(equation_ref) - offset;
228 equation_base = (GLfloat *)
229 _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
230 equation = equation_base + offset;
231
232 glClipPlanef(
233 (GLenum)plane,
234 (GLfloat *)equation
235 );
236
237 exit:
238 if (equation_base) {
239 _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
240 JNI_ABORT);
241 }
242 }
243
244 /* void glClipPlanef ( GLenum plane, const GLfloat *equation ) */
245 static void
android_glClipPlanef__ILjava_nio_FloatBuffer_2(JNIEnv * _env,jobject _this,jint plane,jobject equation_buf)246 android_glClipPlanef__ILjava_nio_FloatBuffer_2
247 (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
248 jarray _array = (jarray) 0;
249 jint _remaining;
250 GLfloat *equation = (GLfloat *) 0;
251
252 equation = (GLfloat *)getPointer(_env, equation_buf, &_array, &_remaining);
253 glClipPlanef(
254 (GLenum)plane,
255 (GLfloat *)equation
256 );
257 if (_array) {
258 releasePointer(_env, _array, equation, JNI_FALSE);
259 }
260 }
261
262 /* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
263 static void
android_glClipPlanex__I_3II(JNIEnv * _env,jobject _this,jint plane,jintArray equation_ref,jint offset)264 android_glClipPlanex__I_3II
265 (JNIEnv *_env, jobject _this, jint plane, jintArray equation_ref, jint offset) {
266 GLfixed *equation_base = (GLfixed *) 0;
267 jint _remaining;
268 GLfixed *equation = (GLfixed *) 0;
269
270 if (!equation_ref) {
271 _env->ThrowNew(IAEClass, "equation == null");
272 goto exit;
273 }
274 if (offset < 0) {
275 _env->ThrowNew(IAEClass, "offset < 0");
276 goto exit;
277 }
278 _remaining = _env->GetArrayLength(equation_ref) - offset;
279 equation_base = (GLfixed *)
280 _env->GetPrimitiveArrayCritical(equation_ref, (jboolean *)0);
281 equation = equation_base + offset;
282
283 glClipPlanex(
284 (GLenum)plane,
285 (GLfixed *)equation
286 );
287
288 exit:
289 if (equation_base) {
290 _env->ReleasePrimitiveArrayCritical(equation_ref, equation_base,
291 JNI_ABORT);
292 }
293 }
294
295 /* void glClipPlanex ( GLenum plane, const GLfixed *equation ) */
296 static void
android_glClipPlanex__ILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint plane,jobject equation_buf)297 android_glClipPlanex__ILjava_nio_IntBuffer_2
298 (JNIEnv *_env, jobject _this, jint plane, jobject equation_buf) {
299 jarray _array = (jarray) 0;
300 jint _remaining;
301 GLfixed *equation = (GLfixed *) 0;
302
303 equation = (GLfixed *)getPointer(_env, equation_buf, &_array, &_remaining);
304 glClipPlanex(
305 (GLenum)plane,
306 (GLfixed *)equation
307 );
308 if (_array) {
309 releasePointer(_env, _array, equation, JNI_FALSE);
310 }
311 }
312
313 /* void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) */
314 static void
android_glColor4ub__BBBB(JNIEnv * _env,jobject _this,jbyte red,jbyte green,jbyte blue,jbyte alpha)315 android_glColor4ub__BBBB
316 (JNIEnv *_env, jobject _this, jbyte red, jbyte green, jbyte blue, jbyte alpha) {
317 glColor4ub(
318 (GLubyte)red,
319 (GLubyte)green,
320 (GLubyte)blue,
321 (GLubyte)alpha
322 );
323 }
324
325 /* void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
326 static void
android_glColorPointer__IIII(JNIEnv * _env,jobject _this,jint size,jint type,jint stride,jint offset)327 android_glColorPointer__IIII
328 (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
329 glColorPointer(
330 (GLint)size,
331 (GLenum)type,
332 (GLsizei)stride,
333 (const GLvoid *)offset
334 );
335 }
336
337 /* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
338 static void
android_glDeleteBuffers__I_3II(JNIEnv * _env,jobject _this,jint n,jintArray buffers_ref,jint offset)339 android_glDeleteBuffers__I_3II
340 (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
341 GLuint *buffers_base = (GLuint *) 0;
342 jint _remaining;
343 GLuint *buffers = (GLuint *) 0;
344
345 if (!buffers_ref) {
346 _env->ThrowNew(IAEClass, "buffers == null");
347 goto exit;
348 }
349 if (offset < 0) {
350 _env->ThrowNew(IAEClass, "offset < 0");
351 goto exit;
352 }
353 _remaining = _env->GetArrayLength(buffers_ref) - offset;
354 if (_remaining < n) {
355 _env->ThrowNew(IAEClass, "length - offset < n");
356 goto exit;
357 }
358 buffers_base = (GLuint *)
359 _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
360 buffers = buffers_base + offset;
361
362 glDeleteBuffers(
363 (GLsizei)n,
364 (GLuint *)buffers
365 );
366
367 exit:
368 if (buffers_base) {
369 _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
370 JNI_ABORT);
371 }
372 }
373
374 /* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */
375 static void
android_glDeleteBuffers__ILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint n,jobject buffers_buf)376 android_glDeleteBuffers__ILjava_nio_IntBuffer_2
377 (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
378 jarray _array = (jarray) 0;
379 jint _remaining;
380 GLuint *buffers = (GLuint *) 0;
381
382 buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining);
383 if (_remaining < n) {
384 _env->ThrowNew(IAEClass, "remaining() < n");
385 goto exit;
386 }
387 glDeleteBuffers(
388 (GLsizei)n,
389 (GLuint *)buffers
390 );
391
392 exit:
393 if (_array) {
394 releasePointer(_env, _array, buffers, JNI_FALSE);
395 }
396 }
397
398 /* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */
399 static void
android_glDrawElements__IIII(JNIEnv * _env,jobject _this,jint mode,jint count,jint type,jint offset)400 android_glDrawElements__IIII
401 (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) {
402 glDrawElements(
403 (GLenum)mode,
404 (GLsizei)count,
405 (GLenum)type,
406 (const GLvoid *)offset
407 );
408 }
409
410 /* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
411 static void
android_glGenBuffers__I_3II(JNIEnv * _env,jobject _this,jint n,jintArray buffers_ref,jint offset)412 android_glGenBuffers__I_3II
413 (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) {
414 jint _exception = 0;
415 GLuint *buffers_base = (GLuint *) 0;
416 jint _remaining;
417 GLuint *buffers = (GLuint *) 0;
418
419 if (!buffers_ref) {
420 _exception = 1;
421 _env->ThrowNew(IAEClass, "buffers == null");
422 goto exit;
423 }
424 if (offset < 0) {
425 _exception = 1;
426 _env->ThrowNew(IAEClass, "offset < 0");
427 goto exit;
428 }
429 _remaining = _env->GetArrayLength(buffers_ref) - offset;
430 if (_remaining < n) {
431 _exception = 1;
432 _env->ThrowNew(IAEClass, "length - offset < n");
433 goto exit;
434 }
435 buffers_base = (GLuint *)
436 _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0);
437 buffers = buffers_base + offset;
438
439 glGenBuffers(
440 (GLsizei)n,
441 (GLuint *)buffers
442 );
443
444 exit:
445 if (buffers_base) {
446 _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base,
447 _exception ? JNI_ABORT: 0);
448 }
449 }
450
451 /* void glGenBuffers ( GLsizei n, GLuint *buffers ) */
452 static void
android_glGenBuffers__ILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint n,jobject buffers_buf)453 android_glGenBuffers__ILjava_nio_IntBuffer_2
454 (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) {
455 jint _exception = 0;
456 jarray _array = (jarray) 0;
457 jint _remaining;
458 GLuint *buffers = (GLuint *) 0;
459
460 buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining);
461 if (_remaining < n) {
462 _exception = 1;
463 _env->ThrowNew(IAEClass, "remaining() < n");
464 goto exit;
465 }
466 glGenBuffers(
467 (GLsizei)n,
468 (GLuint *)buffers
469 );
470
471 exit:
472 if (_array) {
473 releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE);
474 }
475 }
476
477 /* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
478 static void
android_glGetBooleanv__I_3ZI(JNIEnv * _env,jobject _this,jint pname,jbooleanArray params_ref,jint offset)479 android_glGetBooleanv__I_3ZI
480 (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) {
481 jint _exception = 0;
482 GLboolean *params_base = (GLboolean *) 0;
483 jint _remaining;
484 GLboolean *params = (GLboolean *) 0;
485
486 if (!params_ref) {
487 _exception = 1;
488 _env->ThrowNew(IAEClass, "params == null");
489 goto exit;
490 }
491 if (offset < 0) {
492 _exception = 1;
493 _env->ThrowNew(IAEClass, "offset < 0");
494 goto exit;
495 }
496 _remaining = _env->GetArrayLength(params_ref) - offset;
497 params_base = (GLboolean *)
498 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
499 params = params_base + offset;
500
501 glGetBooleanv(
502 (GLenum)pname,
503 (GLboolean *)params
504 );
505
506 exit:
507 if (params_base) {
508 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
509 _exception ? JNI_ABORT: 0);
510 }
511 }
512
513 /* void glGetBooleanv ( GLenum pname, GLboolean *params ) */
514 static void
android_glGetBooleanv__ILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint pname,jobject params_buf)515 android_glGetBooleanv__ILjava_nio_IntBuffer_2
516 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
517 jint _exception = 0;
518 jarray _array = (jarray) 0;
519 jint _remaining;
520 GLboolean *params = (GLboolean *) 0;
521
522 params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining);
523 glGetBooleanv(
524 (GLenum)pname,
525 (GLboolean *)params
526 );
527 if (_array) {
528 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
529 }
530 }
531
532 /* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
533 static void
android_glGetBufferParameteriv__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)534 android_glGetBufferParameteriv__II_3II
535 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
536 _env->ThrowNew(UOEClass,
537 "glGetBufferParameteriv");
538 }
539
540 /* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */
541 static void
android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)542 android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2
543 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
544 _env->ThrowNew(UOEClass,
545 "glGetBufferParameteriv");
546 }
547
548 /* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
549 static void
android_glGetClipPlanef__I_3FI(JNIEnv * _env,jobject _this,jint pname,jfloatArray eqn_ref,jint offset)550 android_glGetClipPlanef__I_3FI
551 (JNIEnv *_env, jobject _this, jint pname, jfloatArray eqn_ref, jint offset) {
552 jint _exception = 0;
553 GLfloat *eqn_base = (GLfloat *) 0;
554 jint _remaining;
555 GLfloat *eqn = (GLfloat *) 0;
556
557 if (!eqn_ref) {
558 _exception = 1;
559 _env->ThrowNew(IAEClass, "eqn == null");
560 goto exit;
561 }
562 if (offset < 0) {
563 _exception = 1;
564 _env->ThrowNew(IAEClass, "offset < 0");
565 goto exit;
566 }
567 _remaining = _env->GetArrayLength(eqn_ref) - offset;
568 eqn_base = (GLfloat *)
569 _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
570 eqn = eqn_base + offset;
571
572 glGetClipPlanef(
573 (GLenum)pname,
574 (GLfloat *)eqn
575 );
576
577 exit:
578 if (eqn_base) {
579 _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
580 _exception ? JNI_ABORT: 0);
581 }
582 }
583
584 /* void glGetClipPlanef ( GLenum pname, GLfloat *eqn ) */
585 static void
android_glGetClipPlanef__ILjava_nio_FloatBuffer_2(JNIEnv * _env,jobject _this,jint pname,jobject eqn_buf)586 android_glGetClipPlanef__ILjava_nio_FloatBuffer_2
587 (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
588 jint _exception = 0;
589 jarray _array = (jarray) 0;
590 jint _remaining;
591 GLfloat *eqn = (GLfloat *) 0;
592
593 eqn = (GLfloat *)getPointer(_env, eqn_buf, &_array, &_remaining);
594 glGetClipPlanef(
595 (GLenum)pname,
596 (GLfloat *)eqn
597 );
598 if (_array) {
599 releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE);
600 }
601 }
602
603 /* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
604 static void
android_glGetClipPlanex__I_3II(JNIEnv * _env,jobject _this,jint pname,jintArray eqn_ref,jint offset)605 android_glGetClipPlanex__I_3II
606 (JNIEnv *_env, jobject _this, jint pname, jintArray eqn_ref, jint offset) {
607 jint _exception = 0;
608 GLfixed *eqn_base = (GLfixed *) 0;
609 jint _remaining;
610 GLfixed *eqn = (GLfixed *) 0;
611
612 if (!eqn_ref) {
613 _exception = 1;
614 _env->ThrowNew(IAEClass, "eqn == null");
615 goto exit;
616 }
617 if (offset < 0) {
618 _exception = 1;
619 _env->ThrowNew(IAEClass, "offset < 0");
620 goto exit;
621 }
622 _remaining = _env->GetArrayLength(eqn_ref) - offset;
623 eqn_base = (GLfixed *)
624 _env->GetPrimitiveArrayCritical(eqn_ref, (jboolean *)0);
625 eqn = eqn_base + offset;
626
627 glGetClipPlanex(
628 (GLenum)pname,
629 (GLfixed *)eqn
630 );
631
632 exit:
633 if (eqn_base) {
634 _env->ReleasePrimitiveArrayCritical(eqn_ref, eqn_base,
635 _exception ? JNI_ABORT: 0);
636 }
637 }
638
639 /* void glGetClipPlanex ( GLenum pname, GLfixed *eqn ) */
640 static void
android_glGetClipPlanex__ILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint pname,jobject eqn_buf)641 android_glGetClipPlanex__ILjava_nio_IntBuffer_2
642 (JNIEnv *_env, jobject _this, jint pname, jobject eqn_buf) {
643 jint _exception = 0;
644 jarray _array = (jarray) 0;
645 jint _remaining;
646 GLfixed *eqn = (GLfixed *) 0;
647
648 eqn = (GLfixed *)getPointer(_env, eqn_buf, &_array, &_remaining);
649 glGetClipPlanex(
650 (GLenum)pname,
651 (GLfixed *)eqn
652 );
653 if (_array) {
654 releasePointer(_env, _array, eqn, _exception ? JNI_FALSE : JNI_TRUE);
655 }
656 }
657
658 /* void glGetFixedv ( GLenum pname, GLfixed *params ) */
659 static void
android_glGetFixedv__I_3II(JNIEnv * _env,jobject _this,jint pname,jintArray params_ref,jint offset)660 android_glGetFixedv__I_3II
661 (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
662 jint _exception = 0;
663 GLfixed *params_base = (GLfixed *) 0;
664 jint _remaining;
665 GLfixed *params = (GLfixed *) 0;
666
667 if (!params_ref) {
668 _exception = 1;
669 _env->ThrowNew(IAEClass, "params == null");
670 goto exit;
671 }
672 if (offset < 0) {
673 _exception = 1;
674 _env->ThrowNew(IAEClass, "offset < 0");
675 goto exit;
676 }
677 _remaining = _env->GetArrayLength(params_ref) - offset;
678 params_base = (GLfixed *)
679 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
680 params = params_base + offset;
681
682 glGetFixedv(
683 (GLenum)pname,
684 (GLfixed *)params
685 );
686
687 exit:
688 if (params_base) {
689 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
690 _exception ? JNI_ABORT: 0);
691 }
692 }
693
694 /* void glGetFixedv ( GLenum pname, GLfixed *params ) */
695 static void
android_glGetFixedv__ILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint pname,jobject params_buf)696 android_glGetFixedv__ILjava_nio_IntBuffer_2
697 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
698 jint _exception = 0;
699 jarray _array = (jarray) 0;
700 jint _remaining;
701 GLfixed *params = (GLfixed *) 0;
702
703 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
704 glGetFixedv(
705 (GLenum)pname,
706 (GLfixed *)params
707 );
708 if (_array) {
709 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
710 }
711 }
712
713 /* void glGetFloatv ( GLenum pname, GLfloat *params ) */
714 static void
android_glGetFloatv__I_3FI(JNIEnv * _env,jobject _this,jint pname,jfloatArray params_ref,jint offset)715 android_glGetFloatv__I_3FI
716 (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
717 jint _exception = 0;
718 GLfloat *params_base = (GLfloat *) 0;
719 jint _remaining;
720 GLfloat *params = (GLfloat *) 0;
721
722 if (!params_ref) {
723 _exception = 1;
724 _env->ThrowNew(IAEClass, "params == null");
725 goto exit;
726 }
727 if (offset < 0) {
728 _exception = 1;
729 _env->ThrowNew(IAEClass, "offset < 0");
730 goto exit;
731 }
732 _remaining = _env->GetArrayLength(params_ref) - offset;
733 params_base = (GLfloat *)
734 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
735 params = params_base + offset;
736
737 glGetFloatv(
738 (GLenum)pname,
739 (GLfloat *)params
740 );
741
742 exit:
743 if (params_base) {
744 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
745 _exception ? JNI_ABORT: 0);
746 }
747 }
748
749 /* void glGetFloatv ( GLenum pname, GLfloat *params ) */
750 static void
android_glGetFloatv__ILjava_nio_FloatBuffer_2(JNIEnv * _env,jobject _this,jint pname,jobject params_buf)751 android_glGetFloatv__ILjava_nio_FloatBuffer_2
752 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
753 jint _exception = 0;
754 jarray _array = (jarray) 0;
755 jint _remaining;
756 GLfloat *params = (GLfloat *) 0;
757
758 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
759 glGetFloatv(
760 (GLenum)pname,
761 (GLfloat *)params
762 );
763 if (_array) {
764 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
765 }
766 }
767
768 /* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
769 static void
android_glGetLightfv__II_3FI(JNIEnv * _env,jobject _this,jint light,jint pname,jfloatArray params_ref,jint offset)770 android_glGetLightfv__II_3FI
771 (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
772 jint _exception = 0;
773 GLfloat *params_base = (GLfloat *) 0;
774 jint _remaining;
775 GLfloat *params = (GLfloat *) 0;
776
777 if (!params_ref) {
778 _exception = 1;
779 _env->ThrowNew(IAEClass, "params == null");
780 goto exit;
781 }
782 if (offset < 0) {
783 _exception = 1;
784 _env->ThrowNew(IAEClass, "offset < 0");
785 goto exit;
786 }
787 _remaining = _env->GetArrayLength(params_ref) - offset;
788 int _needed;
789 switch (pname) {
790 #if defined(GL_SPOT_EXPONENT)
791 case GL_SPOT_EXPONENT:
792 #endif // defined(GL_SPOT_EXPONENT)
793 #if defined(GL_SPOT_CUTOFF)
794 case GL_SPOT_CUTOFF:
795 #endif // defined(GL_SPOT_CUTOFF)
796 #if defined(GL_CONSTANT_ATTENUATION)
797 case GL_CONSTANT_ATTENUATION:
798 #endif // defined(GL_CONSTANT_ATTENUATION)
799 #if defined(GL_LINEAR_ATTENUATION)
800 case GL_LINEAR_ATTENUATION:
801 #endif // defined(GL_LINEAR_ATTENUATION)
802 #if defined(GL_QUADRATIC_ATTENUATION)
803 case GL_QUADRATIC_ATTENUATION:
804 #endif // defined(GL_QUADRATIC_ATTENUATION)
805 _needed = 1;
806 break;
807 #if defined(GL_SPOT_DIRECTION)
808 case GL_SPOT_DIRECTION:
809 #endif // defined(GL_SPOT_DIRECTION)
810 _needed = 3;
811 break;
812 #if defined(GL_AMBIENT)
813 case GL_AMBIENT:
814 #endif // defined(GL_AMBIENT)
815 #if defined(GL_DIFFUSE)
816 case GL_DIFFUSE:
817 #endif // defined(GL_DIFFUSE)
818 #if defined(GL_SPECULAR)
819 case GL_SPECULAR:
820 #endif // defined(GL_SPECULAR)
821 #if defined(GL_EMISSION)
822 case GL_EMISSION:
823 #endif // defined(GL_EMISSION)
824 _needed = 4;
825 break;
826 default:
827 _needed = 0;
828 break;
829 }
830 if (_remaining < _needed) {
831 _exception = 1;
832 _env->ThrowNew(IAEClass, "length - offset < needed");
833 goto exit;
834 }
835 params_base = (GLfloat *)
836 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
837 params = params_base + offset;
838
839 glGetLightfv(
840 (GLenum)light,
841 (GLenum)pname,
842 (GLfloat *)params
843 );
844
845 exit:
846 if (params_base) {
847 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
848 _exception ? JNI_ABORT: 0);
849 }
850 }
851
852 /* void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params ) */
853 static void
android_glGetLightfv__IILjava_nio_FloatBuffer_2(JNIEnv * _env,jobject _this,jint light,jint pname,jobject params_buf)854 android_glGetLightfv__IILjava_nio_FloatBuffer_2
855 (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
856 jint _exception = 0;
857 jarray _array = (jarray) 0;
858 jint _remaining;
859 GLfloat *params = (GLfloat *) 0;
860
861 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
862 int _needed;
863 switch (pname) {
864 #if defined(GL_SPOT_EXPONENT)
865 case GL_SPOT_EXPONENT:
866 #endif // defined(GL_SPOT_EXPONENT)
867 #if defined(GL_SPOT_CUTOFF)
868 case GL_SPOT_CUTOFF:
869 #endif // defined(GL_SPOT_CUTOFF)
870 #if defined(GL_CONSTANT_ATTENUATION)
871 case GL_CONSTANT_ATTENUATION:
872 #endif // defined(GL_CONSTANT_ATTENUATION)
873 #if defined(GL_LINEAR_ATTENUATION)
874 case GL_LINEAR_ATTENUATION:
875 #endif // defined(GL_LINEAR_ATTENUATION)
876 #if defined(GL_QUADRATIC_ATTENUATION)
877 case GL_QUADRATIC_ATTENUATION:
878 #endif // defined(GL_QUADRATIC_ATTENUATION)
879 _needed = 1;
880 break;
881 #if defined(GL_SPOT_DIRECTION)
882 case GL_SPOT_DIRECTION:
883 #endif // defined(GL_SPOT_DIRECTION)
884 _needed = 3;
885 break;
886 #if defined(GL_AMBIENT)
887 case GL_AMBIENT:
888 #endif // defined(GL_AMBIENT)
889 #if defined(GL_DIFFUSE)
890 case GL_DIFFUSE:
891 #endif // defined(GL_DIFFUSE)
892 #if defined(GL_SPECULAR)
893 case GL_SPECULAR:
894 #endif // defined(GL_SPECULAR)
895 #if defined(GL_EMISSION)
896 case GL_EMISSION:
897 #endif // defined(GL_EMISSION)
898 _needed = 4;
899 break;
900 default:
901 _needed = 0;
902 break;
903 }
904 if (_remaining < _needed) {
905 _exception = 1;
906 _env->ThrowNew(IAEClass, "remaining() < needed");
907 goto exit;
908 }
909 glGetLightfv(
910 (GLenum)light,
911 (GLenum)pname,
912 (GLfloat *)params
913 );
914
915 exit:
916 if (_array) {
917 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
918 }
919 }
920
921 /* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
922 static void
android_glGetLightxv__II_3II(JNIEnv * _env,jobject _this,jint light,jint pname,jintArray params_ref,jint offset)923 android_glGetLightxv__II_3II
924 (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
925 jint _exception = 0;
926 GLfixed *params_base = (GLfixed *) 0;
927 jint _remaining;
928 GLfixed *params = (GLfixed *) 0;
929
930 if (!params_ref) {
931 _exception = 1;
932 _env->ThrowNew(IAEClass, "params == null");
933 goto exit;
934 }
935 if (offset < 0) {
936 _exception = 1;
937 _env->ThrowNew(IAEClass, "offset < 0");
938 goto exit;
939 }
940 _remaining = _env->GetArrayLength(params_ref) - offset;
941 int _needed;
942 switch (pname) {
943 #if defined(GL_SPOT_EXPONENT)
944 case GL_SPOT_EXPONENT:
945 #endif // defined(GL_SPOT_EXPONENT)
946 #if defined(GL_SPOT_CUTOFF)
947 case GL_SPOT_CUTOFF:
948 #endif // defined(GL_SPOT_CUTOFF)
949 #if defined(GL_CONSTANT_ATTENUATION)
950 case GL_CONSTANT_ATTENUATION:
951 #endif // defined(GL_CONSTANT_ATTENUATION)
952 #if defined(GL_LINEAR_ATTENUATION)
953 case GL_LINEAR_ATTENUATION:
954 #endif // defined(GL_LINEAR_ATTENUATION)
955 #if defined(GL_QUADRATIC_ATTENUATION)
956 case GL_QUADRATIC_ATTENUATION:
957 #endif // defined(GL_QUADRATIC_ATTENUATION)
958 _needed = 1;
959 break;
960 #if defined(GL_SPOT_DIRECTION)
961 case GL_SPOT_DIRECTION:
962 #endif // defined(GL_SPOT_DIRECTION)
963 _needed = 3;
964 break;
965 #if defined(GL_AMBIENT)
966 case GL_AMBIENT:
967 #endif // defined(GL_AMBIENT)
968 #if defined(GL_DIFFUSE)
969 case GL_DIFFUSE:
970 #endif // defined(GL_DIFFUSE)
971 #if defined(GL_SPECULAR)
972 case GL_SPECULAR:
973 #endif // defined(GL_SPECULAR)
974 #if defined(GL_EMISSION)
975 case GL_EMISSION:
976 #endif // defined(GL_EMISSION)
977 _needed = 4;
978 break;
979 default:
980 _needed = 0;
981 break;
982 }
983 if (_remaining < _needed) {
984 _exception = 1;
985 _env->ThrowNew(IAEClass, "length - offset < needed");
986 goto exit;
987 }
988 params_base = (GLfixed *)
989 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
990 params = params_base + offset;
991
992 glGetLightxv(
993 (GLenum)light,
994 (GLenum)pname,
995 (GLfixed *)params
996 );
997
998 exit:
999 if (params_base) {
1000 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1001 _exception ? JNI_ABORT: 0);
1002 }
1003 }
1004
1005 /* void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params ) */
1006 static void
android_glGetLightxv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint light,jint pname,jobject params_buf)1007 android_glGetLightxv__IILjava_nio_IntBuffer_2
1008 (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
1009 jint _exception = 0;
1010 jarray _array = (jarray) 0;
1011 jint _remaining;
1012 GLfixed *params = (GLfixed *) 0;
1013
1014 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1015 int _needed;
1016 switch (pname) {
1017 #if defined(GL_SPOT_EXPONENT)
1018 case GL_SPOT_EXPONENT:
1019 #endif // defined(GL_SPOT_EXPONENT)
1020 #if defined(GL_SPOT_CUTOFF)
1021 case GL_SPOT_CUTOFF:
1022 #endif // defined(GL_SPOT_CUTOFF)
1023 #if defined(GL_CONSTANT_ATTENUATION)
1024 case GL_CONSTANT_ATTENUATION:
1025 #endif // defined(GL_CONSTANT_ATTENUATION)
1026 #if defined(GL_LINEAR_ATTENUATION)
1027 case GL_LINEAR_ATTENUATION:
1028 #endif // defined(GL_LINEAR_ATTENUATION)
1029 #if defined(GL_QUADRATIC_ATTENUATION)
1030 case GL_QUADRATIC_ATTENUATION:
1031 #endif // defined(GL_QUADRATIC_ATTENUATION)
1032 _needed = 1;
1033 break;
1034 #if defined(GL_SPOT_DIRECTION)
1035 case GL_SPOT_DIRECTION:
1036 #endif // defined(GL_SPOT_DIRECTION)
1037 _needed = 3;
1038 break;
1039 #if defined(GL_AMBIENT)
1040 case GL_AMBIENT:
1041 #endif // defined(GL_AMBIENT)
1042 #if defined(GL_DIFFUSE)
1043 case GL_DIFFUSE:
1044 #endif // defined(GL_DIFFUSE)
1045 #if defined(GL_SPECULAR)
1046 case GL_SPECULAR:
1047 #endif // defined(GL_SPECULAR)
1048 #if defined(GL_EMISSION)
1049 case GL_EMISSION:
1050 #endif // defined(GL_EMISSION)
1051 _needed = 4;
1052 break;
1053 default:
1054 _needed = 0;
1055 break;
1056 }
1057 if (_remaining < _needed) {
1058 _exception = 1;
1059 _env->ThrowNew(IAEClass, "remaining() < needed");
1060 goto exit;
1061 }
1062 glGetLightxv(
1063 (GLenum)light,
1064 (GLenum)pname,
1065 (GLfixed *)params
1066 );
1067
1068 exit:
1069 if (_array) {
1070 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1071 }
1072 }
1073
1074 /* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
1075 static void
android_glGetMaterialfv__II_3FI(JNIEnv * _env,jobject _this,jint face,jint pname,jfloatArray params_ref,jint offset)1076 android_glGetMaterialfv__II_3FI
1077 (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
1078 jint _exception = 0;
1079 GLfloat *params_base = (GLfloat *) 0;
1080 jint _remaining;
1081 GLfloat *params = (GLfloat *) 0;
1082
1083 if (!params_ref) {
1084 _exception = 1;
1085 _env->ThrowNew(IAEClass, "params == null");
1086 goto exit;
1087 }
1088 if (offset < 0) {
1089 _exception = 1;
1090 _env->ThrowNew(IAEClass, "offset < 0");
1091 goto exit;
1092 }
1093 _remaining = _env->GetArrayLength(params_ref) - offset;
1094 int _needed;
1095 switch (pname) {
1096 #if defined(GL_SHININESS)
1097 case GL_SHININESS:
1098 #endif // defined(GL_SHININESS)
1099 _needed = 1;
1100 break;
1101 #if defined(GL_AMBIENT)
1102 case GL_AMBIENT:
1103 #endif // defined(GL_AMBIENT)
1104 #if defined(GL_DIFFUSE)
1105 case GL_DIFFUSE:
1106 #endif // defined(GL_DIFFUSE)
1107 #if defined(GL_SPECULAR)
1108 case GL_SPECULAR:
1109 #endif // defined(GL_SPECULAR)
1110 #if defined(GL_EMISSION)
1111 case GL_EMISSION:
1112 #endif // defined(GL_EMISSION)
1113 #if defined(GL_AMBIENT_AND_DIFFUSE)
1114 case GL_AMBIENT_AND_DIFFUSE:
1115 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
1116 _needed = 4;
1117 break;
1118 default:
1119 _needed = 0;
1120 break;
1121 }
1122 if (_remaining < _needed) {
1123 _exception = 1;
1124 _env->ThrowNew(IAEClass, "length - offset < needed");
1125 goto exit;
1126 }
1127 params_base = (GLfloat *)
1128 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1129 params = params_base + offset;
1130
1131 glGetMaterialfv(
1132 (GLenum)face,
1133 (GLenum)pname,
1134 (GLfloat *)params
1135 );
1136
1137 exit:
1138 if (params_base) {
1139 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1140 _exception ? JNI_ABORT: 0);
1141 }
1142 }
1143
1144 /* void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params ) */
1145 static void
android_glGetMaterialfv__IILjava_nio_FloatBuffer_2(JNIEnv * _env,jobject _this,jint face,jint pname,jobject params_buf)1146 android_glGetMaterialfv__IILjava_nio_FloatBuffer_2
1147 (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
1148 jint _exception = 0;
1149 jarray _array = (jarray) 0;
1150 jint _remaining;
1151 GLfloat *params = (GLfloat *) 0;
1152
1153 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
1154 int _needed;
1155 switch (pname) {
1156 #if defined(GL_SHININESS)
1157 case GL_SHININESS:
1158 #endif // defined(GL_SHININESS)
1159 _needed = 1;
1160 break;
1161 #if defined(GL_AMBIENT)
1162 case GL_AMBIENT:
1163 #endif // defined(GL_AMBIENT)
1164 #if defined(GL_DIFFUSE)
1165 case GL_DIFFUSE:
1166 #endif // defined(GL_DIFFUSE)
1167 #if defined(GL_SPECULAR)
1168 case GL_SPECULAR:
1169 #endif // defined(GL_SPECULAR)
1170 #if defined(GL_EMISSION)
1171 case GL_EMISSION:
1172 #endif // defined(GL_EMISSION)
1173 #if defined(GL_AMBIENT_AND_DIFFUSE)
1174 case GL_AMBIENT_AND_DIFFUSE:
1175 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
1176 _needed = 4;
1177 break;
1178 default:
1179 _needed = 0;
1180 break;
1181 }
1182 if (_remaining < _needed) {
1183 _exception = 1;
1184 _env->ThrowNew(IAEClass, "remaining() < needed");
1185 goto exit;
1186 }
1187 glGetMaterialfv(
1188 (GLenum)face,
1189 (GLenum)pname,
1190 (GLfloat *)params
1191 );
1192
1193 exit:
1194 if (_array) {
1195 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1196 }
1197 }
1198
1199 /* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
1200 static void
android_glGetMaterialxv__II_3II(JNIEnv * _env,jobject _this,jint face,jint pname,jintArray params_ref,jint offset)1201 android_glGetMaterialxv__II_3II
1202 (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
1203 jint _exception = 0;
1204 GLfixed *params_base = (GLfixed *) 0;
1205 jint _remaining;
1206 GLfixed *params = (GLfixed *) 0;
1207
1208 if (!params_ref) {
1209 _exception = 1;
1210 _env->ThrowNew(IAEClass, "params == null");
1211 goto exit;
1212 }
1213 if (offset < 0) {
1214 _exception = 1;
1215 _env->ThrowNew(IAEClass, "offset < 0");
1216 goto exit;
1217 }
1218 _remaining = _env->GetArrayLength(params_ref) - offset;
1219 int _needed;
1220 switch (pname) {
1221 #if defined(GL_SHININESS)
1222 case GL_SHININESS:
1223 #endif // defined(GL_SHININESS)
1224 _needed = 1;
1225 break;
1226 #if defined(GL_AMBIENT)
1227 case GL_AMBIENT:
1228 #endif // defined(GL_AMBIENT)
1229 #if defined(GL_DIFFUSE)
1230 case GL_DIFFUSE:
1231 #endif // defined(GL_DIFFUSE)
1232 #if defined(GL_SPECULAR)
1233 case GL_SPECULAR:
1234 #endif // defined(GL_SPECULAR)
1235 #if defined(GL_EMISSION)
1236 case GL_EMISSION:
1237 #endif // defined(GL_EMISSION)
1238 #if defined(GL_AMBIENT_AND_DIFFUSE)
1239 case GL_AMBIENT_AND_DIFFUSE:
1240 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
1241 _needed = 4;
1242 break;
1243 default:
1244 _needed = 0;
1245 break;
1246 }
1247 if (_remaining < _needed) {
1248 _exception = 1;
1249 _env->ThrowNew(IAEClass, "length - offset < needed");
1250 goto exit;
1251 }
1252 params_base = (GLfixed *)
1253 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1254 params = params_base + offset;
1255
1256 glGetMaterialxv(
1257 (GLenum)face,
1258 (GLenum)pname,
1259 (GLfixed *)params
1260 );
1261
1262 exit:
1263 if (params_base) {
1264 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1265 _exception ? JNI_ABORT: 0);
1266 }
1267 }
1268
1269 /* void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params ) */
1270 static void
android_glGetMaterialxv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint face,jint pname,jobject params_buf)1271 android_glGetMaterialxv__IILjava_nio_IntBuffer_2
1272 (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
1273 jint _exception = 0;
1274 jarray _array = (jarray) 0;
1275 jint _remaining;
1276 GLfixed *params = (GLfixed *) 0;
1277
1278 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1279 int _needed;
1280 switch (pname) {
1281 #if defined(GL_SHININESS)
1282 case GL_SHININESS:
1283 #endif // defined(GL_SHININESS)
1284 _needed = 1;
1285 break;
1286 #if defined(GL_AMBIENT)
1287 case GL_AMBIENT:
1288 #endif // defined(GL_AMBIENT)
1289 #if defined(GL_DIFFUSE)
1290 case GL_DIFFUSE:
1291 #endif // defined(GL_DIFFUSE)
1292 #if defined(GL_SPECULAR)
1293 case GL_SPECULAR:
1294 #endif // defined(GL_SPECULAR)
1295 #if defined(GL_EMISSION)
1296 case GL_EMISSION:
1297 #endif // defined(GL_EMISSION)
1298 #if defined(GL_AMBIENT_AND_DIFFUSE)
1299 case GL_AMBIENT_AND_DIFFUSE:
1300 #endif // defined(GL_AMBIENT_AND_DIFFUSE)
1301 _needed = 4;
1302 break;
1303 default:
1304 _needed = 0;
1305 break;
1306 }
1307 if (_remaining < _needed) {
1308 _exception = 1;
1309 _env->ThrowNew(IAEClass, "remaining() < needed");
1310 goto exit;
1311 }
1312 glGetMaterialxv(
1313 (GLenum)face,
1314 (GLenum)pname,
1315 (GLfixed *)params
1316 );
1317
1318 exit:
1319 if (_array) {
1320 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1321 }
1322 }
1323
1324 /* void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params ) */
1325 static void
android_glGetTexEnvfv__II_3FI(JNIEnv * _env,jobject _this,jint env,jint pname,jfloatArray params_ref,jint offset)1326 android_glGetTexEnvfv__II_3FI
1327 (JNIEnv *_env, jobject _this, jint env, jint pname, jfloatArray params_ref, jint offset) {
1328 jint _exception = 0;
1329 GLfloat *params_base = (GLfloat *) 0;
1330 jint _remaining;
1331 GLfloat *params = (GLfloat *) 0;
1332
1333 if (!params_ref) {
1334 _exception = 1;
1335 _env->ThrowNew(IAEClass, "params == null");
1336 goto exit;
1337 }
1338 if (offset < 0) {
1339 _exception = 1;
1340 _env->ThrowNew(IAEClass, "offset < 0");
1341 goto exit;
1342 }
1343 _remaining = _env->GetArrayLength(params_ref) - offset;
1344 int _needed;
1345 switch (pname) {
1346 #if defined(GL_TEXTURE_ENV_MODE)
1347 case GL_TEXTURE_ENV_MODE:
1348 #endif // defined(GL_TEXTURE_ENV_MODE)
1349 #if defined(GL_COMBINE_RGB)
1350 case GL_COMBINE_RGB:
1351 #endif // defined(GL_COMBINE_RGB)
1352 #if defined(GL_COMBINE_ALPHA)
1353 case GL_COMBINE_ALPHA:
1354 #endif // defined(GL_COMBINE_ALPHA)
1355 _needed = 1;
1356 break;
1357 #if defined(GL_TEXTURE_ENV_COLOR)
1358 case GL_TEXTURE_ENV_COLOR:
1359 #endif // defined(GL_TEXTURE_ENV_COLOR)
1360 _needed = 4;
1361 break;
1362 default:
1363 _needed = 0;
1364 break;
1365 }
1366 if (_remaining < _needed) {
1367 _exception = 1;
1368 _env->ThrowNew(IAEClass, "length - offset < needed");
1369 goto exit;
1370 }
1371 params_base = (GLfloat *)
1372 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1373 params = params_base + offset;
1374
1375 glGetTexEnvfv(
1376 (GLenum)env,
1377 (GLenum)pname,
1378 (GLfloat *)params
1379 );
1380
1381 exit:
1382 if (params_base) {
1383 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1384 _exception ? JNI_ABORT: 0);
1385 }
1386 }
1387
1388 /* void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params ) */
1389 static void
android_glGetTexEnvfv__IILjava_nio_FloatBuffer_2(JNIEnv * _env,jobject _this,jint env,jint pname,jobject params_buf)1390 android_glGetTexEnvfv__IILjava_nio_FloatBuffer_2
1391 (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
1392 jint _exception = 0;
1393 jarray _array = (jarray) 0;
1394 jint _remaining;
1395 GLfloat *params = (GLfloat *) 0;
1396
1397 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
1398 int _needed;
1399 switch (pname) {
1400 #if defined(GL_TEXTURE_ENV_MODE)
1401 case GL_TEXTURE_ENV_MODE:
1402 #endif // defined(GL_TEXTURE_ENV_MODE)
1403 #if defined(GL_COMBINE_RGB)
1404 case GL_COMBINE_RGB:
1405 #endif // defined(GL_COMBINE_RGB)
1406 #if defined(GL_COMBINE_ALPHA)
1407 case GL_COMBINE_ALPHA:
1408 #endif // defined(GL_COMBINE_ALPHA)
1409 _needed = 1;
1410 break;
1411 #if defined(GL_TEXTURE_ENV_COLOR)
1412 case GL_TEXTURE_ENV_COLOR:
1413 #endif // defined(GL_TEXTURE_ENV_COLOR)
1414 _needed = 4;
1415 break;
1416 default:
1417 _needed = 0;
1418 break;
1419 }
1420 if (_remaining < _needed) {
1421 _exception = 1;
1422 _env->ThrowNew(IAEClass, "remaining() < needed");
1423 goto exit;
1424 }
1425 glGetTexEnvfv(
1426 (GLenum)env,
1427 (GLenum)pname,
1428 (GLfloat *)params
1429 );
1430
1431 exit:
1432 if (_array) {
1433 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1434 }
1435 }
1436
1437 /* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
1438 static void
android_glGetTexEnviv__II_3II(JNIEnv * _env,jobject _this,jint env,jint pname,jintArray params_ref,jint offset)1439 android_glGetTexEnviv__II_3II
1440 (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
1441 jint _exception = 0;
1442 GLint *params_base = (GLint *) 0;
1443 jint _remaining;
1444 GLint *params = (GLint *) 0;
1445
1446 if (!params_ref) {
1447 _exception = 1;
1448 _env->ThrowNew(IAEClass, "params == null");
1449 goto exit;
1450 }
1451 if (offset < 0) {
1452 _exception = 1;
1453 _env->ThrowNew(IAEClass, "offset < 0");
1454 goto exit;
1455 }
1456 _remaining = _env->GetArrayLength(params_ref) - offset;
1457 int _needed;
1458 switch (pname) {
1459 #if defined(GL_TEXTURE_ENV_MODE)
1460 case GL_TEXTURE_ENV_MODE:
1461 #endif // defined(GL_TEXTURE_ENV_MODE)
1462 #if defined(GL_COMBINE_RGB)
1463 case GL_COMBINE_RGB:
1464 #endif // defined(GL_COMBINE_RGB)
1465 #if defined(GL_COMBINE_ALPHA)
1466 case GL_COMBINE_ALPHA:
1467 #endif // defined(GL_COMBINE_ALPHA)
1468 _needed = 1;
1469 break;
1470 #if defined(GL_TEXTURE_ENV_COLOR)
1471 case GL_TEXTURE_ENV_COLOR:
1472 #endif // defined(GL_TEXTURE_ENV_COLOR)
1473 _needed = 4;
1474 break;
1475 default:
1476 _needed = 0;
1477 break;
1478 }
1479 if (_remaining < _needed) {
1480 _exception = 1;
1481 _env->ThrowNew(IAEClass, "length - offset < needed");
1482 goto exit;
1483 }
1484 params_base = (GLint *)
1485 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1486 params = params_base + offset;
1487
1488 glGetTexEnviv(
1489 (GLenum)env,
1490 (GLenum)pname,
1491 (GLint *)params
1492 );
1493
1494 exit:
1495 if (params_base) {
1496 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1497 _exception ? JNI_ABORT: 0);
1498 }
1499 }
1500
1501 /* void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params ) */
1502 static void
android_glGetTexEnviv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint env,jint pname,jobject params_buf)1503 android_glGetTexEnviv__IILjava_nio_IntBuffer_2
1504 (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
1505 jint _exception = 0;
1506 jarray _array = (jarray) 0;
1507 jint _remaining;
1508 GLint *params = (GLint *) 0;
1509
1510 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
1511 int _needed;
1512 switch (pname) {
1513 #if defined(GL_TEXTURE_ENV_MODE)
1514 case GL_TEXTURE_ENV_MODE:
1515 #endif // defined(GL_TEXTURE_ENV_MODE)
1516 #if defined(GL_COMBINE_RGB)
1517 case GL_COMBINE_RGB:
1518 #endif // defined(GL_COMBINE_RGB)
1519 #if defined(GL_COMBINE_ALPHA)
1520 case GL_COMBINE_ALPHA:
1521 #endif // defined(GL_COMBINE_ALPHA)
1522 _needed = 1;
1523 break;
1524 #if defined(GL_TEXTURE_ENV_COLOR)
1525 case GL_TEXTURE_ENV_COLOR:
1526 #endif // defined(GL_TEXTURE_ENV_COLOR)
1527 _needed = 4;
1528 break;
1529 default:
1530 _needed = 0;
1531 break;
1532 }
1533 if (_remaining < _needed) {
1534 _exception = 1;
1535 _env->ThrowNew(IAEClass, "remaining() < needed");
1536 goto exit;
1537 }
1538 glGetTexEnviv(
1539 (GLenum)env,
1540 (GLenum)pname,
1541 (GLint *)params
1542 );
1543
1544 exit:
1545 if (_array) {
1546 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1547 }
1548 }
1549
1550 /* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
1551 static void
android_glGetTexEnvxv__II_3II(JNIEnv * _env,jobject _this,jint env,jint pname,jintArray params_ref,jint offset)1552 android_glGetTexEnvxv__II_3II
1553 (JNIEnv *_env, jobject _this, jint env, jint pname, jintArray params_ref, jint offset) {
1554 jint _exception = 0;
1555 GLfixed *params_base = (GLfixed *) 0;
1556 jint _remaining;
1557 GLfixed *params = (GLfixed *) 0;
1558
1559 if (!params_ref) {
1560 _exception = 1;
1561 _env->ThrowNew(IAEClass, "params == null");
1562 goto exit;
1563 }
1564 if (offset < 0) {
1565 _exception = 1;
1566 _env->ThrowNew(IAEClass, "offset < 0");
1567 goto exit;
1568 }
1569 _remaining = _env->GetArrayLength(params_ref) - offset;
1570 int _needed;
1571 switch (pname) {
1572 #if defined(GL_TEXTURE_ENV_MODE)
1573 case GL_TEXTURE_ENV_MODE:
1574 #endif // defined(GL_TEXTURE_ENV_MODE)
1575 #if defined(GL_COMBINE_RGB)
1576 case GL_COMBINE_RGB:
1577 #endif // defined(GL_COMBINE_RGB)
1578 #if defined(GL_COMBINE_ALPHA)
1579 case GL_COMBINE_ALPHA:
1580 #endif // defined(GL_COMBINE_ALPHA)
1581 _needed = 1;
1582 break;
1583 #if defined(GL_TEXTURE_ENV_COLOR)
1584 case GL_TEXTURE_ENV_COLOR:
1585 #endif // defined(GL_TEXTURE_ENV_COLOR)
1586 _needed = 4;
1587 break;
1588 default:
1589 _needed = 0;
1590 break;
1591 }
1592 if (_remaining < _needed) {
1593 _exception = 1;
1594 _env->ThrowNew(IAEClass, "length - offset < needed");
1595 goto exit;
1596 }
1597 params_base = (GLfixed *)
1598 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1599 params = params_base + offset;
1600
1601 glGetTexEnvxv(
1602 (GLenum)env,
1603 (GLenum)pname,
1604 (GLfixed *)params
1605 );
1606
1607 exit:
1608 if (params_base) {
1609 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1610 _exception ? JNI_ABORT: 0);
1611 }
1612 }
1613
1614 /* void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params ) */
1615 static void
android_glGetTexEnvxv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint env,jint pname,jobject params_buf)1616 android_glGetTexEnvxv__IILjava_nio_IntBuffer_2
1617 (JNIEnv *_env, jobject _this, jint env, jint pname, jobject params_buf) {
1618 jint _exception = 0;
1619 jarray _array = (jarray) 0;
1620 jint _remaining;
1621 GLfixed *params = (GLfixed *) 0;
1622
1623 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1624 int _needed;
1625 switch (pname) {
1626 #if defined(GL_TEXTURE_ENV_MODE)
1627 case GL_TEXTURE_ENV_MODE:
1628 #endif // defined(GL_TEXTURE_ENV_MODE)
1629 #if defined(GL_COMBINE_RGB)
1630 case GL_COMBINE_RGB:
1631 #endif // defined(GL_COMBINE_RGB)
1632 #if defined(GL_COMBINE_ALPHA)
1633 case GL_COMBINE_ALPHA:
1634 #endif // defined(GL_COMBINE_ALPHA)
1635 _needed = 1;
1636 break;
1637 #if defined(GL_TEXTURE_ENV_COLOR)
1638 case GL_TEXTURE_ENV_COLOR:
1639 #endif // defined(GL_TEXTURE_ENV_COLOR)
1640 _needed = 4;
1641 break;
1642 default:
1643 _needed = 0;
1644 break;
1645 }
1646 if (_remaining < _needed) {
1647 _exception = 1;
1648 _env->ThrowNew(IAEClass, "remaining() < needed");
1649 goto exit;
1650 }
1651 glGetTexEnvxv(
1652 (GLenum)env,
1653 (GLenum)pname,
1654 (GLfixed *)params
1655 );
1656
1657 exit:
1658 if (_array) {
1659 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1660 }
1661 }
1662
1663 /* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
1664 static void
android_glGetTexParameterfv__II_3FI(JNIEnv * _env,jobject _this,jint target,jint pname,jfloatArray params_ref,jint offset)1665 android_glGetTexParameterfv__II_3FI
1666 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
1667 jint _exception = 0;
1668 GLfloat *params_base = (GLfloat *) 0;
1669 jint _remaining;
1670 GLfloat *params = (GLfloat *) 0;
1671
1672 if (!params_ref) {
1673 _exception = 1;
1674 _env->ThrowNew(IAEClass, "params == null");
1675 goto exit;
1676 }
1677 if (offset < 0) {
1678 _exception = 1;
1679 _env->ThrowNew(IAEClass, "offset < 0");
1680 goto exit;
1681 }
1682 _remaining = _env->GetArrayLength(params_ref) - offset;
1683 if (_remaining < 1) {
1684 _exception = 1;
1685 _env->ThrowNew(IAEClass, "length - offset < 1");
1686 goto exit;
1687 }
1688 params_base = (GLfloat *)
1689 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1690 params = params_base + offset;
1691
1692 glGetTexParameterfv(
1693 (GLenum)target,
1694 (GLenum)pname,
1695 (GLfloat *)params
1696 );
1697
1698 exit:
1699 if (params_base) {
1700 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1701 _exception ? JNI_ABORT: 0);
1702 }
1703 }
1704
1705 /* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */
1706 static void
android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)1707 android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2
1708 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1709 jint _exception = 0;
1710 jarray _array = (jarray) 0;
1711 jint _remaining;
1712 GLfloat *params = (GLfloat *) 0;
1713
1714 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
1715 if (_remaining < 1) {
1716 _exception = 1;
1717 _env->ThrowNew(IAEClass, "remaining() < 1");
1718 goto exit;
1719 }
1720 glGetTexParameterfv(
1721 (GLenum)target,
1722 (GLenum)pname,
1723 (GLfloat *)params
1724 );
1725
1726 exit:
1727 if (_array) {
1728 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1729 }
1730 }
1731
1732 /* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
1733 static void
android_glGetTexParameteriv__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)1734 android_glGetTexParameteriv__II_3II
1735 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1736 jint _exception = 0;
1737 GLint *params_base = (GLint *) 0;
1738 jint _remaining;
1739 GLint *params = (GLint *) 0;
1740
1741 if (!params_ref) {
1742 _exception = 1;
1743 _env->ThrowNew(IAEClass, "params == null");
1744 goto exit;
1745 }
1746 if (offset < 0) {
1747 _exception = 1;
1748 _env->ThrowNew(IAEClass, "offset < 0");
1749 goto exit;
1750 }
1751 _remaining = _env->GetArrayLength(params_ref) - offset;
1752 if (_remaining < 1) {
1753 _exception = 1;
1754 _env->ThrowNew(IAEClass, "length - offset < 1");
1755 goto exit;
1756 }
1757 params_base = (GLint *)
1758 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1759 params = params_base + offset;
1760
1761 glGetTexParameteriv(
1762 (GLenum)target,
1763 (GLenum)pname,
1764 (GLint *)params
1765 );
1766
1767 exit:
1768 if (params_base) {
1769 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1770 _exception ? JNI_ABORT: 0);
1771 }
1772 }
1773
1774 /* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */
1775 static void
android_glGetTexParameteriv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)1776 android_glGetTexParameteriv__IILjava_nio_IntBuffer_2
1777 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1778 jint _exception = 0;
1779 jarray _array = (jarray) 0;
1780 jint _remaining;
1781 GLint *params = (GLint *) 0;
1782
1783 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
1784 if (_remaining < 1) {
1785 _exception = 1;
1786 _env->ThrowNew(IAEClass, "remaining() < 1");
1787 goto exit;
1788 }
1789 glGetTexParameteriv(
1790 (GLenum)target,
1791 (GLenum)pname,
1792 (GLint *)params
1793 );
1794
1795 exit:
1796 if (_array) {
1797 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1798 }
1799 }
1800
1801 /* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
1802 static void
android_glGetTexParameterxv__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)1803 android_glGetTexParameterxv__II_3II
1804 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1805 jint _exception = 0;
1806 GLfixed *params_base = (GLfixed *) 0;
1807 jint _remaining;
1808 GLfixed *params = (GLfixed *) 0;
1809
1810 if (!params_ref) {
1811 _exception = 1;
1812 _env->ThrowNew(IAEClass, "params == null");
1813 goto exit;
1814 }
1815 if (offset < 0) {
1816 _exception = 1;
1817 _env->ThrowNew(IAEClass, "offset < 0");
1818 goto exit;
1819 }
1820 _remaining = _env->GetArrayLength(params_ref) - offset;
1821 if (_remaining < 1) {
1822 _exception = 1;
1823 _env->ThrowNew(IAEClass, "length - offset < 1");
1824 goto exit;
1825 }
1826 params_base = (GLfixed *)
1827 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1828 params = params_base + offset;
1829
1830 glGetTexParameterxv(
1831 (GLenum)target,
1832 (GLenum)pname,
1833 (GLfixed *)params
1834 );
1835
1836 exit:
1837 if (params_base) {
1838 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1839 _exception ? JNI_ABORT: 0);
1840 }
1841 }
1842
1843 /* void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params ) */
1844 static void
android_glGetTexParameterxv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)1845 android_glGetTexParameterxv__IILjava_nio_IntBuffer_2
1846 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1847 jint _exception = 0;
1848 jarray _array = (jarray) 0;
1849 jint _remaining;
1850 GLfixed *params = (GLfixed *) 0;
1851
1852 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
1853 if (_remaining < 1) {
1854 _exception = 1;
1855 _env->ThrowNew(IAEClass, "remaining() < 1");
1856 goto exit;
1857 }
1858 glGetTexParameterxv(
1859 (GLenum)target,
1860 (GLenum)pname,
1861 (GLfixed *)params
1862 );
1863
1864 exit:
1865 if (_array) {
1866 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
1867 }
1868 }
1869
1870 /* GLboolean glIsBuffer ( GLuint buffer ) */
1871 static jboolean
android_glIsBuffer__I(JNIEnv * _env,jobject _this,jint buffer)1872 android_glIsBuffer__I
1873 (JNIEnv *_env, jobject _this, jint buffer) {
1874 GLboolean _returnValue;
1875 _returnValue = glIsBuffer(
1876 (GLuint)buffer
1877 );
1878 return _returnValue;
1879 }
1880
1881 /* GLboolean glIsEnabled ( GLenum cap ) */
1882 static jboolean
android_glIsEnabled__I(JNIEnv * _env,jobject _this,jint cap)1883 android_glIsEnabled__I
1884 (JNIEnv *_env, jobject _this, jint cap) {
1885 GLboolean _returnValue;
1886 _returnValue = glIsEnabled(
1887 (GLenum)cap
1888 );
1889 return _returnValue;
1890 }
1891
1892 /* GLboolean glIsTexture ( GLuint texture ) */
1893 static jboolean
android_glIsTexture__I(JNIEnv * _env,jobject _this,jint texture)1894 android_glIsTexture__I
1895 (JNIEnv *_env, jobject _this, jint texture) {
1896 GLboolean _returnValue;
1897 _returnValue = glIsTexture(
1898 (GLuint)texture
1899 );
1900 return _returnValue;
1901 }
1902
1903 /* void glNormalPointer ( GLenum type, GLsizei stride, GLint offset ) */
1904 static void
android_glNormalPointer__III(JNIEnv * _env,jobject _this,jint type,jint stride,jint offset)1905 android_glNormalPointer__III
1906 (JNIEnv *_env, jobject _this, jint type, jint stride, jint offset) {
1907 glNormalPointer(
1908 (GLenum)type,
1909 (GLsizei)stride,
1910 (const GLvoid *)offset
1911 );
1912 }
1913
1914 /* void glPointParameterf ( GLenum pname, GLfloat param ) */
1915 static void
android_glPointParameterf__IF(JNIEnv * _env,jobject _this,jint pname,jfloat param)1916 android_glPointParameterf__IF
1917 (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
1918 glPointParameterf(
1919 (GLenum)pname,
1920 (GLfloat)param
1921 );
1922 }
1923
1924 /* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
1925 static void
android_glPointParameterfv__I_3FI(JNIEnv * _env,jobject _this,jint pname,jfloatArray params_ref,jint offset)1926 android_glPointParameterfv__I_3FI
1927 (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
1928 GLfloat *params_base = (GLfloat *) 0;
1929 jint _remaining;
1930 GLfloat *params = (GLfloat *) 0;
1931
1932 if (!params_ref) {
1933 _env->ThrowNew(IAEClass, "params == null");
1934 goto exit;
1935 }
1936 if (offset < 0) {
1937 _env->ThrowNew(IAEClass, "offset < 0");
1938 goto exit;
1939 }
1940 _remaining = _env->GetArrayLength(params_ref) - offset;
1941 if (_remaining < 1) {
1942 _env->ThrowNew(IAEClass, "length - offset < 1");
1943 goto exit;
1944 }
1945 params_base = (GLfloat *)
1946 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
1947 params = params_base + offset;
1948
1949 glPointParameterfv(
1950 (GLenum)pname,
1951 (GLfloat *)params
1952 );
1953
1954 exit:
1955 if (params_base) {
1956 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
1957 JNI_ABORT);
1958 }
1959 }
1960
1961 /* void glPointParameterfv ( GLenum pname, const GLfloat *params ) */
1962 static void
android_glPointParameterfv__ILjava_nio_FloatBuffer_2(JNIEnv * _env,jobject _this,jint pname,jobject params_buf)1963 android_glPointParameterfv__ILjava_nio_FloatBuffer_2
1964 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
1965 jarray _array = (jarray) 0;
1966 jint _remaining;
1967 GLfloat *params = (GLfloat *) 0;
1968
1969 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
1970 if (_remaining < 1) {
1971 _env->ThrowNew(IAEClass, "remaining() < 1");
1972 goto exit;
1973 }
1974 glPointParameterfv(
1975 (GLenum)pname,
1976 (GLfloat *)params
1977 );
1978
1979 exit:
1980 if (_array) {
1981 releasePointer(_env, _array, params, JNI_FALSE);
1982 }
1983 }
1984
1985 /* void glPointParameterx ( GLenum pname, GLfixed param ) */
1986 static void
android_glPointParameterx__II(JNIEnv * _env,jobject _this,jint pname,jint param)1987 android_glPointParameterx__II
1988 (JNIEnv *_env, jobject _this, jint pname, jint param) {
1989 glPointParameterx(
1990 (GLenum)pname,
1991 (GLfixed)param
1992 );
1993 }
1994
1995 /* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
1996 static void
android_glPointParameterxv__I_3II(JNIEnv * _env,jobject _this,jint pname,jintArray params_ref,jint offset)1997 android_glPointParameterxv__I_3II
1998 (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
1999 GLfixed *params_base = (GLfixed *) 0;
2000 jint _remaining;
2001 GLfixed *params = (GLfixed *) 0;
2002
2003 if (!params_ref) {
2004 _env->ThrowNew(IAEClass, "params == null");
2005 goto exit;
2006 }
2007 if (offset < 0) {
2008 _env->ThrowNew(IAEClass, "offset < 0");
2009 goto exit;
2010 }
2011 _remaining = _env->GetArrayLength(params_ref) - offset;
2012 if (_remaining < 1) {
2013 _env->ThrowNew(IAEClass, "length - offset < 1");
2014 goto exit;
2015 }
2016 params_base = (GLfixed *)
2017 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2018 params = params_base + offset;
2019
2020 glPointParameterxv(
2021 (GLenum)pname,
2022 (GLfixed *)params
2023 );
2024
2025 exit:
2026 if (params_base) {
2027 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2028 JNI_ABORT);
2029 }
2030 }
2031
2032 /* void glPointParameterxv ( GLenum pname, const GLfixed *params ) */
2033 static void
android_glPointParameterxv__ILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint pname,jobject params_buf)2034 android_glPointParameterxv__ILjava_nio_IntBuffer_2
2035 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
2036 jarray _array = (jarray) 0;
2037 jint _remaining;
2038 GLfixed *params = (GLfixed *) 0;
2039
2040 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
2041 if (_remaining < 1) {
2042 _env->ThrowNew(IAEClass, "remaining() < 1");
2043 goto exit;
2044 }
2045 glPointParameterxv(
2046 (GLenum)pname,
2047 (GLfixed *)params
2048 );
2049
2050 exit:
2051 if (_array) {
2052 releasePointer(_env, _array, params, JNI_FALSE);
2053 }
2054 }
2055
2056 /* void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
2057 static void
android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I(JNIEnv * _env,jobject _this,jint type,jint stride,jobject pointer_buf,jint remaining)2058 android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I
2059 (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
2060 jarray _array = (jarray) 0;
2061 jint _remaining;
2062 GLvoid *pointer = (GLvoid *) 0;
2063
2064 if (pointer_buf) {
2065 pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
2066 if ( ! pointer ) {
2067 return;
2068 }
2069 }
2070 glPointSizePointerOESBounds(
2071 (GLenum)type,
2072 (GLsizei)stride,
2073 (GLvoid *)pointer,
2074 (GLsizei)remaining
2075 );
2076 }
2077
2078 /* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
2079 static void
android_glTexCoordPointer__IIII(JNIEnv * _env,jobject _this,jint size,jint type,jint stride,jint offset)2080 android_glTexCoordPointer__IIII
2081 (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
2082 glTexCoordPointer(
2083 (GLint)size,
2084 (GLenum)type,
2085 (GLsizei)stride,
2086 (const GLvoid *)offset
2087 );
2088 }
2089
2090 /* void glTexEnvi ( GLenum target, GLenum pname, GLint param ) */
2091 static void
android_glTexEnvi__III(JNIEnv * _env,jobject _this,jint target,jint pname,jint param)2092 android_glTexEnvi__III
2093 (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
2094 glTexEnvi(
2095 (GLenum)target,
2096 (GLenum)pname,
2097 (GLint)param
2098 );
2099 }
2100
2101 /* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
2102 static void
android_glTexEnviv__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)2103 android_glTexEnviv__II_3II
2104 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
2105 GLint *params_base = (GLint *) 0;
2106 jint _remaining;
2107 GLint *params = (GLint *) 0;
2108
2109 if (!params_ref) {
2110 _env->ThrowNew(IAEClass, "params == null");
2111 goto exit;
2112 }
2113 if (offset < 0) {
2114 _env->ThrowNew(IAEClass, "offset < 0");
2115 goto exit;
2116 }
2117 _remaining = _env->GetArrayLength(params_ref) - offset;
2118 int _needed;
2119 switch (pname) {
2120 #if defined(GL_TEXTURE_ENV_MODE)
2121 case GL_TEXTURE_ENV_MODE:
2122 #endif // defined(GL_TEXTURE_ENV_MODE)
2123 #if defined(GL_COMBINE_RGB)
2124 case GL_COMBINE_RGB:
2125 #endif // defined(GL_COMBINE_RGB)
2126 #if defined(GL_COMBINE_ALPHA)
2127 case GL_COMBINE_ALPHA:
2128 #endif // defined(GL_COMBINE_ALPHA)
2129 _needed = 1;
2130 break;
2131 #if defined(GL_TEXTURE_ENV_COLOR)
2132 case GL_TEXTURE_ENV_COLOR:
2133 #endif // defined(GL_TEXTURE_ENV_COLOR)
2134 _needed = 4;
2135 break;
2136 default:
2137 _needed = 0;
2138 break;
2139 }
2140 if (_remaining < _needed) {
2141 _env->ThrowNew(IAEClass, "length - offset < needed");
2142 goto exit;
2143 }
2144 params_base = (GLint *)
2145 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2146 params = params_base + offset;
2147
2148 glTexEnviv(
2149 (GLenum)target,
2150 (GLenum)pname,
2151 (GLint *)params
2152 );
2153
2154 exit:
2155 if (params_base) {
2156 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2157 JNI_ABORT);
2158 }
2159 }
2160
2161 /* void glTexEnviv ( GLenum target, GLenum pname, const GLint *params ) */
2162 static void
android_glTexEnviv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)2163 android_glTexEnviv__IILjava_nio_IntBuffer_2
2164 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
2165 jarray _array = (jarray) 0;
2166 jint _remaining;
2167 GLint *params = (GLint *) 0;
2168
2169 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
2170 int _needed;
2171 switch (pname) {
2172 #if defined(GL_TEXTURE_ENV_MODE)
2173 case GL_TEXTURE_ENV_MODE:
2174 #endif // defined(GL_TEXTURE_ENV_MODE)
2175 #if defined(GL_COMBINE_RGB)
2176 case GL_COMBINE_RGB:
2177 #endif // defined(GL_COMBINE_RGB)
2178 #if defined(GL_COMBINE_ALPHA)
2179 case GL_COMBINE_ALPHA:
2180 #endif // defined(GL_COMBINE_ALPHA)
2181 _needed = 1;
2182 break;
2183 #if defined(GL_TEXTURE_ENV_COLOR)
2184 case GL_TEXTURE_ENV_COLOR:
2185 #endif // defined(GL_TEXTURE_ENV_COLOR)
2186 _needed = 4;
2187 break;
2188 default:
2189 _needed = 0;
2190 break;
2191 }
2192 if (_remaining < _needed) {
2193 _env->ThrowNew(IAEClass, "remaining() < needed");
2194 goto exit;
2195 }
2196 glTexEnviv(
2197 (GLenum)target,
2198 (GLenum)pname,
2199 (GLint *)params
2200 );
2201
2202 exit:
2203 if (_array) {
2204 releasePointer(_env, _array, params, JNI_FALSE);
2205 }
2206 }
2207
2208 /* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
2209 static void
android_glTexParameterfv__II_3FI(JNIEnv * _env,jobject _this,jint target,jint pname,jfloatArray params_ref,jint offset)2210 android_glTexParameterfv__II_3FI
2211 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
2212 GLfloat *params_base = (GLfloat *) 0;
2213 jint _remaining;
2214 GLfloat *params = (GLfloat *) 0;
2215
2216 if (!params_ref) {
2217 _env->ThrowNew(IAEClass, "params == null");
2218 goto exit;
2219 }
2220 if (offset < 0) {
2221 _env->ThrowNew(IAEClass, "offset < 0");
2222 goto exit;
2223 }
2224 _remaining = _env->GetArrayLength(params_ref) - offset;
2225 if (_remaining < 1) {
2226 _env->ThrowNew(IAEClass, "length - offset < 1");
2227 goto exit;
2228 }
2229 params_base = (GLfloat *)
2230 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2231 params = params_base + offset;
2232
2233 glTexParameterfv(
2234 (GLenum)target,
2235 (GLenum)pname,
2236 (GLfloat *)params
2237 );
2238
2239 exit:
2240 if (params_base) {
2241 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2242 JNI_ABORT);
2243 }
2244 }
2245
2246 /* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */
2247 static void
android_glTexParameterfv__IILjava_nio_FloatBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)2248 android_glTexParameterfv__IILjava_nio_FloatBuffer_2
2249 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
2250 jarray _array = (jarray) 0;
2251 jint _remaining;
2252 GLfloat *params = (GLfloat *) 0;
2253
2254 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining);
2255 if (_remaining < 1) {
2256 _env->ThrowNew(IAEClass, "remaining() < 1");
2257 goto exit;
2258 }
2259 glTexParameterfv(
2260 (GLenum)target,
2261 (GLenum)pname,
2262 (GLfloat *)params
2263 );
2264
2265 exit:
2266 if (_array) {
2267 releasePointer(_env, _array, params, JNI_FALSE);
2268 }
2269 }
2270
2271 /* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */
2272 static void
android_glTexParameteri__III(JNIEnv * _env,jobject _this,jint target,jint pname,jint param)2273 android_glTexParameteri__III
2274 (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
2275 glTexParameteri(
2276 (GLenum)target,
2277 (GLenum)pname,
2278 (GLint)param
2279 );
2280 }
2281
2282 /* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
2283 static void
android_glTexParameteriv__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)2284 android_glTexParameteriv__II_3II
2285 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
2286 GLint *params_base = (GLint *) 0;
2287 jint _remaining;
2288 GLint *params = (GLint *) 0;
2289
2290 if (!params_ref) {
2291 _env->ThrowNew(IAEClass, "params == null");
2292 goto exit;
2293 }
2294 if (offset < 0) {
2295 _env->ThrowNew(IAEClass, "offset < 0");
2296 goto exit;
2297 }
2298 _remaining = _env->GetArrayLength(params_ref) - offset;
2299 if (_remaining < 1) {
2300 _env->ThrowNew(IAEClass, "length - offset < 1");
2301 goto exit;
2302 }
2303 params_base = (GLint *)
2304 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2305 params = params_base + offset;
2306
2307 glTexParameteriv(
2308 (GLenum)target,
2309 (GLenum)pname,
2310 (GLint *)params
2311 );
2312
2313 exit:
2314 if (params_base) {
2315 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2316 JNI_ABORT);
2317 }
2318 }
2319
2320 /* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */
2321 static void
android_glTexParameteriv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)2322 android_glTexParameteriv__IILjava_nio_IntBuffer_2
2323 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
2324 jarray _array = (jarray) 0;
2325 jint _remaining;
2326 GLint *params = (GLint *) 0;
2327
2328 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining);
2329 if (_remaining < 1) {
2330 _env->ThrowNew(IAEClass, "remaining() < 1");
2331 goto exit;
2332 }
2333 glTexParameteriv(
2334 (GLenum)target,
2335 (GLenum)pname,
2336 (GLint *)params
2337 );
2338
2339 exit:
2340 if (_array) {
2341 releasePointer(_env, _array, params, JNI_FALSE);
2342 }
2343 }
2344
2345 /* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
2346 static void
android_glTexParameterxv__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)2347 android_glTexParameterxv__II_3II
2348 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
2349 GLfixed *params_base = (GLfixed *) 0;
2350 jint _remaining;
2351 GLfixed *params = (GLfixed *) 0;
2352
2353 if (!params_ref) {
2354 _env->ThrowNew(IAEClass, "params == null");
2355 goto exit;
2356 }
2357 if (offset < 0) {
2358 _env->ThrowNew(IAEClass, "offset < 0");
2359 goto exit;
2360 }
2361 _remaining = _env->GetArrayLength(params_ref) - offset;
2362 if (_remaining < 1) {
2363 _env->ThrowNew(IAEClass, "length - offset < 1");
2364 goto exit;
2365 }
2366 params_base = (GLfixed *)
2367 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2368 params = params_base + offset;
2369
2370 glTexParameterxv(
2371 (GLenum)target,
2372 (GLenum)pname,
2373 (GLfixed *)params
2374 );
2375
2376 exit:
2377 if (params_base) {
2378 _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2379 JNI_ABORT);
2380 }
2381 }
2382
2383 /* void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params ) */
2384 static void
android_glTexParameterxv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)2385 android_glTexParameterxv__IILjava_nio_IntBuffer_2
2386 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
2387 jarray _array = (jarray) 0;
2388 jint _remaining;
2389 GLfixed *params = (GLfixed *) 0;
2390
2391 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining);
2392 if (_remaining < 1) {
2393 _env->ThrowNew(IAEClass, "remaining() < 1");
2394 goto exit;
2395 }
2396 glTexParameterxv(
2397 (GLenum)target,
2398 (GLenum)pname,
2399 (GLfixed *)params
2400 );
2401
2402 exit:
2403 if (_array) {
2404 releasePointer(_env, _array, params, JNI_FALSE);
2405 }
2406 }
2407
2408 /* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset ) */
2409 static void
android_glVertexPointer__IIII(JNIEnv * _env,jobject _this,jint size,jint type,jint stride,jint offset)2410 android_glVertexPointer__IIII
2411 (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jint offset) {
2412 glVertexPointer(
2413 (GLint)size,
2414 (GLenum)type,
2415 (GLsizei)stride,
2416 (const GLvoid *)offset
2417 );
2418 }
2419
2420 static const char *classPathName = "android/opengl/GLES11";
2421
2422 static JNINativeMethod methods[] = {
2423 {"_nativeClassInit", "()V", (void*)nativeClassInit },
2424 {"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II },
2425 {"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I },
2426 {"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 },
2427 {"glClipPlanef", "(I[FI)V", (void *) android_glClipPlanef__I_3FI },
2428 {"glClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glClipPlanef__ILjava_nio_FloatBuffer_2 },
2429 {"glClipPlanex", "(I[II)V", (void *) android_glClipPlanex__I_3II },
2430 {"glClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glClipPlanex__ILjava_nio_IntBuffer_2 },
2431 {"glColor4ub", "(BBBB)V", (void *) android_glColor4ub__BBBB },
2432 {"glColorPointer", "(IIII)V", (void *) android_glColorPointer__IIII },
2433 {"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II },
2434 {"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 },
2435 {"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII },
2436 {"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II },
2437 {"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 },
2438 {"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI },
2439 {"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 },
2440 {"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II },
2441 {"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 },
2442 {"glGetClipPlanef", "(I[FI)V", (void *) android_glGetClipPlanef__I_3FI },
2443 {"glGetClipPlanef", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetClipPlanef__ILjava_nio_FloatBuffer_2 },
2444 {"glGetClipPlanex", "(I[II)V", (void *) android_glGetClipPlanex__I_3II },
2445 {"glGetClipPlanex", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetClipPlanex__ILjava_nio_IntBuffer_2 },
2446 {"glGetFixedv", "(I[II)V", (void *) android_glGetFixedv__I_3II },
2447 {"glGetFixedv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetFixedv__ILjava_nio_IntBuffer_2 },
2448 {"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI },
2449 {"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 },
2450 {"glGetLightfv", "(II[FI)V", (void *) android_glGetLightfv__II_3FI },
2451 {"glGetLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetLightfv__IILjava_nio_FloatBuffer_2 },
2452 {"glGetLightxv", "(II[II)V", (void *) android_glGetLightxv__II_3II },
2453 {"glGetLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetLightxv__IILjava_nio_IntBuffer_2 },
2454 {"glGetMaterialfv", "(II[FI)V", (void *) android_glGetMaterialfv__II_3FI },
2455 {"glGetMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetMaterialfv__IILjava_nio_FloatBuffer_2 },
2456 {"glGetMaterialxv", "(II[II)V", (void *) android_glGetMaterialxv__II_3II },
2457 {"glGetMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetMaterialxv__IILjava_nio_IntBuffer_2 },
2458 {"glGetTexEnvfv", "(II[FI)V", (void *) android_glGetTexEnvfv__II_3FI },
2459 {"glGetTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexEnvfv__IILjava_nio_FloatBuffer_2 },
2460 {"glGetTexEnviv", "(II[II)V", (void *) android_glGetTexEnviv__II_3II },
2461 {"glGetTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnviv__IILjava_nio_IntBuffer_2 },
2462 {"glGetTexEnvxv", "(II[II)V", (void *) android_glGetTexEnvxv__II_3II },
2463 {"glGetTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexEnvxv__IILjava_nio_IntBuffer_2 },
2464 {"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI },
2465 {"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 },
2466 {"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II },
2467 {"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 },
2468 {"glGetTexParameterxv", "(II[II)V", (void *) android_glGetTexParameterxv__II_3II },
2469 {"glGetTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterxv__IILjava_nio_IntBuffer_2 },
2470 {"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I },
2471 {"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I },
2472 {"glIsTexture", "(I)Z", (void *) android_glIsTexture__I },
2473 {"glNormalPointer", "(III)V", (void *) android_glNormalPointer__III },
2474 {"glPointParameterf", "(IF)V", (void *) android_glPointParameterf__IF },
2475 {"glPointParameterfv", "(I[FI)V", (void *) android_glPointParameterfv__I_3FI },
2476 {"glPointParameterfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glPointParameterfv__ILjava_nio_FloatBuffer_2 },
2477 {"glPointParameterx", "(II)V", (void *) android_glPointParameterx__II },
2478 {"glPointParameterxv", "(I[II)V", (void *) android_glPointParameterxv__I_3II },
2479 {"glPointParameterxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glPointParameterxv__ILjava_nio_IntBuffer_2 },
2480 {"glPointSizePointerOESBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glPointSizePointerOESBounds__IILjava_nio_Buffer_2I },
2481 {"glTexCoordPointer", "(IIII)V", (void *) android_glTexCoordPointer__IIII },
2482 {"glTexEnvi", "(III)V", (void *) android_glTexEnvi__III },
2483 {"glTexEnviv", "(II[II)V", (void *) android_glTexEnviv__II_3II },
2484 {"glTexEnviv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnviv__IILjava_nio_IntBuffer_2 },
2485 {"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI },
2486 {"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 },
2487 {"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III },
2488 {"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II },
2489 {"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 },
2490 {"glTexParameterxv", "(II[II)V", (void *) android_glTexParameterxv__II_3II },
2491 {"glTexParameterxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterxv__IILjava_nio_IntBuffer_2 },
2492 {"glVertexPointer", "(IIII)V", (void *) android_glVertexPointer__IIII },
2493 };
2494
register_android_opengl_jni_GLES11(JNIEnv * _env)2495 int register_android_opengl_jni_GLES11(JNIEnv *_env)
2496 {
2497 int err;
2498 err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
2499 return err;
2500 }
2501