1 /*
2 * Copyright 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 // This source file is automatically generated
18
19 #pragma GCC diagnostic ignored "-Wunused-variable"
20 #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
21 #pragma GCC diagnostic ignored "-Wunused-function"
22
23 #include <stdint.h>
24 #include <GLES3/gl32.h>
25 #include <jni.h>
26 #include <JNIHelp.h>
27 #include <android_runtime/AndroidRuntime.h>
28 #include <utils/misc.h>
29 #include <assert.h>
30
31 static int initialized = 0;
32
33 static jclass nioAccessClass;
34 static jclass bufferClass;
35 static jmethodID getBasePointerID;
36 static jmethodID getBaseArrayID;
37 static jmethodID getBaseArrayOffsetID;
38 static jfieldID positionID;
39 static jfieldID limitID;
40 static jfieldID elementSizeShiftID;
41
42
43 /* special calls implemented in Android's GLES wrapper used to more
44 * efficiently bound-check passed arrays */
45 extern "C" {
46 #ifdef GL_VERSION_ES_CM_1_1
47 GL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride,
48 const GLvoid *ptr, GLsizei count);
49 GL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride,
50 const GLvoid *pointer, GLsizei count);
51 GL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type,
52 GLsizei stride, const GLvoid *pointer, GLsizei count);
53 GL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type,
54 GLsizei stride, const GLvoid *pointer, GLsizei count);
55 GL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type,
56 GLsizei stride, const GLvoid *pointer, GLsizei count);
57 GL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type,
58 GLsizei stride, const GLvoid *pointer, GLsizei count);
59 GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type,
60 GLsizei stride, const GLvoid *pointer, GLsizei count);
61 #endif
62 #ifdef GL_ES_VERSION_2_0
glVertexAttribPointerBounds(GLuint indx,GLint size,GLenum type,GLboolean normalized,GLsizei stride,const GLvoid * pointer,GLsizei count)63 static void glVertexAttribPointerBounds(GLuint indx, GLint size, GLenum type,
64 GLboolean normalized, GLsizei stride, const GLvoid *pointer, GLsizei count) {
65 glVertexAttribPointer(indx, size, type, normalized, stride, pointer);
66 }
67 #endif
68 #ifdef GL_ES_VERSION_3_0
glVertexAttribIPointerBounds(GLuint indx,GLint size,GLenum type,GLsizei stride,const GLvoid * pointer,GLsizei count)69 static void glVertexAttribIPointerBounds(GLuint indx, GLint size, GLenum type,
70 GLsizei stride, const GLvoid *pointer, GLsizei count) {
71 glVertexAttribIPointer(indx, size, type, stride, pointer);
72 }
73 #endif
74 }
75
76 /* Cache method IDs each time the class is loaded. */
77
78 static void
nativeClassInit(JNIEnv * _env,jclass glImplClass)79 nativeClassInit(JNIEnv *_env, jclass glImplClass)
80 {
81 jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
82 nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
83
84 jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
85 bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
86
87 getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
88 "getBasePointer", "(Ljava/nio/Buffer;)J");
89 getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
90 "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
91 getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
92 "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
93
94 positionID = _env->GetFieldID(bufferClass, "position", "I");
95 limitID = _env->GetFieldID(bufferClass, "limit", "I");
96 elementSizeShiftID =
97 _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
98 }
99
100 static void *
getPointer(JNIEnv * _env,jobject buffer,jarray * array,jint * remaining,jint * offset)101 getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset)
102 {
103 jint position;
104 jint limit;
105 jint elementSizeShift;
106 jlong pointer;
107
108 position = _env->GetIntField(buffer, positionID);
109 limit = _env->GetIntField(buffer, limitID);
110 elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
111 *remaining = (limit - position) << elementSizeShift;
112 pointer = _env->CallStaticLongMethod(nioAccessClass,
113 getBasePointerID, buffer);
114 if (pointer != 0L) {
115 *array = NULL;
116 return reinterpret_cast<void*>(pointer);
117 }
118
119 *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
120 getBaseArrayID, buffer);
121 *offset = _env->CallStaticIntMethod(nioAccessClass,
122 getBaseArrayOffsetID, buffer);
123
124 return NULL;
125 }
126
127 class ByteArrayGetter {
128 public:
Get(JNIEnv * _env,jbyteArray array,jboolean * is_copy)129 static void* Get(JNIEnv* _env, jbyteArray array, jboolean* is_copy) {
130 return _env->GetByteArrayElements(array, is_copy);
131 }
132 };
133 class BooleanArrayGetter {
134 public:
Get(JNIEnv * _env,jbooleanArray array,jboolean * is_copy)135 static void* Get(JNIEnv* _env, jbooleanArray array, jboolean* is_copy) {
136 return _env->GetBooleanArrayElements(array, is_copy);
137 }
138 };
139 class CharArrayGetter {
140 public:
Get(JNIEnv * _env,jcharArray array,jboolean * is_copy)141 static void* Get(JNIEnv* _env, jcharArray array, jboolean* is_copy) {
142 return _env->GetCharArrayElements(array, is_copy);
143 }
144 };
145 class ShortArrayGetter {
146 public:
Get(JNIEnv * _env,jshortArray array,jboolean * is_copy)147 static void* Get(JNIEnv* _env, jshortArray array, jboolean* is_copy) {
148 return _env->GetShortArrayElements(array, is_copy);
149 }
150 };
151 class IntArrayGetter {
152 public:
Get(JNIEnv * _env,jintArray array,jboolean * is_copy)153 static void* Get(JNIEnv* _env, jintArray array, jboolean* is_copy) {
154 return _env->GetIntArrayElements(array, is_copy);
155 }
156 };
157 class LongArrayGetter {
158 public:
Get(JNIEnv * _env,jlongArray array,jboolean * is_copy)159 static void* Get(JNIEnv* _env, jlongArray array, jboolean* is_copy) {
160 return _env->GetLongArrayElements(array, is_copy);
161 }
162 };
163 class FloatArrayGetter {
164 public:
Get(JNIEnv * _env,jfloatArray array,jboolean * is_copy)165 static void* Get(JNIEnv* _env, jfloatArray array, jboolean* is_copy) {
166 return _env->GetFloatArrayElements(array, is_copy);
167 }
168 };
169 class DoubleArrayGetter {
170 public:
Get(JNIEnv * _env,jdoubleArray array,jboolean * is_copy)171 static void* Get(JNIEnv* _env, jdoubleArray array, jboolean* is_copy) {
172 return _env->GetDoubleArrayElements(array, is_copy);
173 }
174 };
175
176 template<typename JTYPEARRAY, typename ARRAYGETTER>
177 static void*
getArrayPointer(JNIEnv * _env,JTYPEARRAY array,jboolean * is_copy)178 getArrayPointer(JNIEnv *_env, JTYPEARRAY array, jboolean* is_copy) {
179 return ARRAYGETTER::Get(_env, array, is_copy);
180 }
181
182 class ByteArrayReleaser {
183 public:
Release(JNIEnv * _env,jbyteArray array,jbyte * data,jboolean commit)184 static void Release(JNIEnv* _env, jbyteArray array, jbyte* data, jboolean commit) {
185 _env->ReleaseByteArrayElements(array, data, commit ? 0 : JNI_ABORT);
186 }
187 };
188 class BooleanArrayReleaser {
189 public:
Release(JNIEnv * _env,jbooleanArray array,jboolean * data,jboolean commit)190 static void Release(JNIEnv* _env, jbooleanArray array, jboolean* data, jboolean commit) {
191 _env->ReleaseBooleanArrayElements(array, data, commit ? 0 : JNI_ABORT);
192 }
193 };
194 class CharArrayReleaser {
195 public:
Release(JNIEnv * _env,jcharArray array,jchar * data,jboolean commit)196 static void Release(JNIEnv* _env, jcharArray array, jchar* data, jboolean commit) {
197 _env->ReleaseCharArrayElements(array, data, commit ? 0 : JNI_ABORT);
198 }
199 };
200 class ShortArrayReleaser {
201 public:
Release(JNIEnv * _env,jshortArray array,jshort * data,jboolean commit)202 static void Release(JNIEnv* _env, jshortArray array, jshort* data, jboolean commit) {
203 _env->ReleaseShortArrayElements(array, data, commit ? 0 : JNI_ABORT);
204 }
205 };
206 class IntArrayReleaser {
207 public:
Release(JNIEnv * _env,jintArray array,jint * data,jboolean commit)208 static void Release(JNIEnv* _env, jintArray array, jint* data, jboolean commit) {
209 _env->ReleaseIntArrayElements(array, data, commit ? 0 : JNI_ABORT);
210 }
211 };
212 class LongArrayReleaser {
213 public:
Release(JNIEnv * _env,jlongArray array,jlong * data,jboolean commit)214 static void Release(JNIEnv* _env, jlongArray array, jlong* data, jboolean commit) {
215 _env->ReleaseLongArrayElements(array, data, commit ? 0 : JNI_ABORT);
216 }
217 };
218 class FloatArrayReleaser {
219 public:
Release(JNIEnv * _env,jfloatArray array,jfloat * data,jboolean commit)220 static void Release(JNIEnv* _env, jfloatArray array, jfloat* data, jboolean commit) {
221 _env->ReleaseFloatArrayElements(array, data, commit ? 0 : JNI_ABORT);
222 }
223 };
224 class DoubleArrayReleaser {
225 public:
Release(JNIEnv * _env,jdoubleArray array,jdouble * data,jboolean commit)226 static void Release(JNIEnv* _env, jdoubleArray array, jdouble* data, jboolean commit) {
227 _env->ReleaseDoubleArrayElements(array, data, commit ? 0 : JNI_ABORT);
228 }
229 };
230
231 template<typename JTYPEARRAY, typename NTYPEARRAY, typename ARRAYRELEASER>
232 static void
releaseArrayPointer(JNIEnv * _env,JTYPEARRAY array,NTYPEARRAY data,jboolean commit)233 releaseArrayPointer(JNIEnv *_env, JTYPEARRAY array, NTYPEARRAY data, jboolean commit) {
234 ARRAYRELEASER::Release(_env, array, data, commit);
235 }
236
237 static void
releasePointer(JNIEnv * _env,jarray array,void * data,jboolean commit)238 releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
239 {
240 _env->ReleasePrimitiveArrayCritical(array, data,
241 commit ? 0 : JNI_ABORT);
242 }
243
244 static void *
getDirectBufferPointer(JNIEnv * _env,jobject buffer)245 getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
246 char* buf = (char*) _env->GetDirectBufferAddress(buffer);
247 if (buf) {
248 jint position = _env->GetIntField(buffer, positionID);
249 jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
250 buf += position << elementSizeShift;
251 } else {
252 jniThrowException(_env, "java/lang/IllegalArgumentException",
253 "Must use a native order direct Buffer");
254 }
255 return (void*) buf;
256 }
257
258 // --------------------------------------------------------------------------
259
260 /*
261 * returns the number of values glGet returns for a given pname.
262 *
263 * The code below is written such that pnames requiring only one values
264 * are the default (and are not explicitely tested for). This makes the
265 * checking code much shorter/readable/efficient.
266 *
267 * This means that unknown pnames (e.g.: extensions) will default to 1. If
268 * that unknown pname needs more than 1 value, then the validation check
269 * is incomplete and the app may crash if it passed the wrong number params.
270 */
getNeededCount(GLint pname)271 static int getNeededCount(GLint pname) {
272 int needed = 1;
273 #ifdef GL_ES_VERSION_2_0
274 // GLES 2.x pnames
275 switch (pname) {
276 case GL_ALIASED_LINE_WIDTH_RANGE:
277 case GL_ALIASED_POINT_SIZE_RANGE:
278 needed = 2;
279 break;
280
281 case GL_BLEND_COLOR:
282 case GL_COLOR_CLEAR_VALUE:
283 case GL_COLOR_WRITEMASK:
284 case GL_SCISSOR_BOX:
285 case GL_VIEWPORT:
286 needed = 4;
287 break;
288
289 case GL_COMPRESSED_TEXTURE_FORMATS:
290 glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed);
291 break;
292
293 case GL_SHADER_BINARY_FORMATS:
294 glGetIntegerv(GL_NUM_SHADER_BINARY_FORMATS, &needed);
295 break;
296 }
297 #endif
298
299 #ifdef GL_VERSION_ES_CM_1_1
300 // GLES 1.x pnames
301 switch (pname) {
302 case GL_ALIASED_LINE_WIDTH_RANGE:
303 case GL_ALIASED_POINT_SIZE_RANGE:
304 case GL_DEPTH_RANGE:
305 case GL_SMOOTH_LINE_WIDTH_RANGE:
306 case GL_SMOOTH_POINT_SIZE_RANGE:
307 needed = 2;
308 break;
309
310 case GL_CURRENT_NORMAL:
311 case GL_POINT_DISTANCE_ATTENUATION:
312 needed = 3;
313 break;
314
315 case GL_COLOR_CLEAR_VALUE:
316 case GL_COLOR_WRITEMASK:
317 case GL_CURRENT_COLOR:
318 case GL_CURRENT_TEXTURE_COORDS:
319 case GL_FOG_COLOR:
320 case GL_LIGHT_MODEL_AMBIENT:
321 case GL_SCISSOR_BOX:
322 case GL_VIEWPORT:
323 needed = 4;
324 break;
325
326 case GL_MODELVIEW_MATRIX:
327 case GL_PROJECTION_MATRIX:
328 case GL_TEXTURE_MATRIX:
329 needed = 16;
330 break;
331
332 case GL_COMPRESSED_TEXTURE_FORMATS:
333 glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed);
334 break;
335 }
336 #endif
337 return needed;
338 }
339
340 template <typename JTYPEARRAY, typename ARRAYGETTER, typename NTYPEARRAY,
341 typename ARRAYRELEASER, typename CTYPE, void GET(GLenum, CTYPE*)>
342 static void
get(JNIEnv * _env,jobject _this,jint pname,JTYPEARRAY params_ref,jint offset)343 get
344 (JNIEnv *_env, jobject _this, jint pname, JTYPEARRAY params_ref, jint offset) {
345 jint _exception = 0;
346 const char * _exceptionType;
347 const char * _exceptionMessage;
348 CTYPE *params_base = (CTYPE *) 0;
349 jint _remaining;
350 CTYPE *params = (CTYPE *) 0;
351 int _needed = 0;
352
353 if (!params_ref) {
354 _exception = 1;
355 _exceptionType = "java/lang/IllegalArgumentException";
356 _exceptionMessage = "params == null";
357 goto exit;
358 }
359 if (offset < 0) {
360 _exception = 1;
361 _exceptionType = "java/lang/IllegalArgumentException";
362 _exceptionMessage = "offset < 0";
363 goto exit;
364 }
365 _remaining = _env->GetArrayLength(params_ref) - offset;
366 _needed = getNeededCount(pname);
367 // if we didn't find this pname, we just assume the user passed
368 // an array of the right size -- this might happen with extensions
369 // or if we forget an enum here.
370 if (_remaining < _needed) {
371 _exception = 1;
372 _exceptionType = "java/lang/IllegalArgumentException";
373 _exceptionMessage = "length - offset < needed";
374 goto exit;
375 }
376 params_base = (CTYPE *) getArrayPointer<JTYPEARRAY, ARRAYGETTER>(
377 _env, params_ref, (jboolean *)0);
378 params = params_base + offset;
379
380 GET(
381 (GLenum)pname,
382 (CTYPE *)params
383 );
384
385 exit:
386 if (params_base) {
387 releaseArrayPointer<JTYPEARRAY, NTYPEARRAY, ARRAYRELEASER>(
388 _env, params_ref, params_base, !_exception);
389 }
390 if (_exception) {
391 jniThrowException(_env, _exceptionType, _exceptionMessage);
392 }
393 }
394
395
396 template <typename CTYPE, typename JTYPEARRAY, typename ARRAYGETTER, typename NTYPEARRAY,
397 typename ARRAYRELEASER, void GET(GLenum, CTYPE*)>
398 static void
getarray(JNIEnv * _env,jobject _this,jint pname,jobject params_buf)399 getarray
400 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
401 jint _exception = 0;
402 const char * _exceptionType;
403 const char * _exceptionMessage;
404 JTYPEARRAY _array = (JTYPEARRAY) 0;
405 jint _bufferOffset = (jint) 0;
406 jint _remaining;
407 CTYPE *params = (CTYPE *) 0;
408 int _needed = 0;
409
410 params = (CTYPE *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
411 _remaining /= sizeof(CTYPE); // convert from bytes to item count
412 _needed = getNeededCount(pname);
413 // if we didn't find this pname, we just assume the user passed
414 // an array of the right size -- this might happen with extensions
415 // or if we forget an enum here.
416 if (_needed>0 && _remaining < _needed) {
417 _exception = 1;
418 _exceptionType = "java/lang/IllegalArgumentException";
419 _exceptionMessage = "remaining() < needed";
420 goto exit;
421 }
422 if (params == NULL) {
423 char * _paramsBase = (char *) getArrayPointer<JTYPEARRAY, ARRAYGETTER>(
424 _env, _array, (jboolean *) 0);
425 params = (CTYPE *) (_paramsBase + _bufferOffset);
426 }
427 GET(
428 (GLenum)pname,
429 (CTYPE *)params
430 );
431
432 exit:
433 if (_array) {
434 releaseArrayPointer<JTYPEARRAY, NTYPEARRAY, ARRAYRELEASER>(
435 _env, _array, (NTYPEARRAY)params, _exception ? JNI_FALSE : JNI_TRUE);
436 }
437 if (_exception) {
438 jniThrowException(_env, _exceptionType, _exceptionMessage);
439 }
440 }
441
442 // --------------------------------------------------------------------------
443 /* void glBlendBarrier ( void ) */
444 static void
android_glBlendBarrier__(JNIEnv * _env,jobject _this)445 android_glBlendBarrier__
446 (JNIEnv *_env, jobject _this) {
447 glBlendBarrier();
448 }
449
450 /* void glCopyImageSubData ( GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth ) */
451 static void
android_glCopyImageSubData__IIIIIIIIIIIIIII(JNIEnv * _env,jobject _this,jint srcName,jint srcTarget,jint srcLevel,jint srcX,jint srcY,jint srcZ,jint dstName,jint dstTarget,jint dstLevel,jint dstX,jint dstY,jint dstZ,jint srcWidth,jint srcHeight,jint srcDepth)452 android_glCopyImageSubData__IIIIIIIIIIIIIII
453 (JNIEnv *_env, jobject _this, jint srcName, jint srcTarget, jint srcLevel, jint srcX, jint srcY, jint srcZ, jint dstName, jint dstTarget, jint dstLevel, jint dstX, jint dstY, jint dstZ, jint srcWidth, jint srcHeight, jint srcDepth) {
454 glCopyImageSubData(
455 (GLuint)srcName,
456 (GLenum)srcTarget,
457 (GLint)srcLevel,
458 (GLint)srcX,
459 (GLint)srcY,
460 (GLint)srcZ,
461 (GLuint)dstName,
462 (GLenum)dstTarget,
463 (GLint)dstLevel,
464 (GLint)dstX,
465 (GLint)dstY,
466 (GLint)dstZ,
467 (GLsizei)srcWidth,
468 (GLsizei)srcHeight,
469 (GLsizei)srcDepth
470 );
471 }
472
473 /* void glDebugMessageControl ( GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled ) */
474 static void
android_glDebugMessageControl__IIII_3IIZ(JNIEnv * _env,jobject _this,jint source,jint type,jint severity,jint count,jintArray ids_ref,jint offset,jboolean enabled)475 android_glDebugMessageControl__IIII_3IIZ
476 (JNIEnv *_env, jobject _this, jint source, jint type, jint severity, jint count, jintArray ids_ref, jint offset, jboolean enabled) {
477 jint _exception = 0;
478 const char * _exceptionType = NULL;
479 const char * _exceptionMessage = NULL;
480 GLuint *ids_base = (GLuint *) 0;
481 jint _remaining;
482 GLuint *ids = (GLuint *) 0;
483
484 if (!ids_ref) {
485 _exception = 1;
486 _exceptionType = "java/lang/IllegalArgumentException";
487 _exceptionMessage = "ids == null";
488 goto exit;
489 }
490 if (offset < 0) {
491 _exception = 1;
492 _exceptionType = "java/lang/IllegalArgumentException";
493 _exceptionMessage = "offset < 0";
494 goto exit;
495 }
496 _remaining = _env->GetArrayLength(ids_ref) - offset;
497 if (_remaining < count) {
498 _exception = 1;
499 _exceptionType = "java/lang/IllegalArgumentException";
500 _exceptionMessage = "length - offset < count < needed";
501 goto exit;
502 }
503 ids_base = (GLuint *)
504 _env->GetIntArrayElements(ids_ref, (jboolean *)0);
505 ids = ids_base + offset;
506
507 glDebugMessageControl(
508 (GLenum)source,
509 (GLenum)type,
510 (GLenum)severity,
511 (GLsizei)count,
512 (GLuint *)ids,
513 (GLboolean)enabled
514 );
515
516 exit:
517 if (ids_base) {
518 _env->ReleaseIntArrayElements(ids_ref, (jint*)ids_base,
519 JNI_ABORT);
520 }
521 if (_exception) {
522 jniThrowException(_env, _exceptionType, _exceptionMessage);
523 }
524 }
525
526 /* void glDebugMessageControl ( GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled ) */
527 static void
android_glDebugMessageControl__IIIILjava_nio_IntBuffer_2Z(JNIEnv * _env,jobject _this,jint source,jint type,jint severity,jint count,jobject ids_buf,jboolean enabled)528 android_glDebugMessageControl__IIIILjava_nio_IntBuffer_2Z
529 (JNIEnv *_env, jobject _this, jint source, jint type, jint severity, jint count, jobject ids_buf, jboolean enabled) {
530 jint _exception = 0;
531 const char * _exceptionType = NULL;
532 const char * _exceptionMessage = NULL;
533 jintArray _array = (jintArray) 0;
534 jint _bufferOffset = (jint) 0;
535 jint _remaining;
536 GLuint *ids = (GLuint *) 0;
537
538 ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
539 if (_remaining < count) {
540 _exception = 1;
541 _exceptionType = "java/lang/IllegalArgumentException";
542 _exceptionMessage = "remaining() < count < needed";
543 goto exit;
544 }
545 if (ids == NULL) {
546 char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
547 ids = (GLuint *) (_idsBase + _bufferOffset);
548 }
549 glDebugMessageControl(
550 (GLenum)source,
551 (GLenum)type,
552 (GLenum)severity,
553 (GLsizei)count,
554 (GLuint *)ids,
555 (GLboolean)enabled
556 );
557
558 exit:
559 if (_array) {
560 _env->ReleaseIntArrayElements(_array, (jint*)ids, JNI_ABORT);
561 }
562 if (_exception) {
563 jniThrowException(_env, _exceptionType, _exceptionMessage);
564 }
565 }
566
567 /* void glDebugMessageInsert ( GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf ) */
568 static void
android_glDebugMessageInsert__IIIIILjava_lang_String_2(JNIEnv * _env,jobject _this,jint source,jint type,jint id,jint severity,jint length,jstring buf)569 android_glDebugMessageInsert__IIIIILjava_lang_String_2
570 (JNIEnv *_env, jobject _this, jint source, jint type, jint id, jint severity, jint length, jstring buf) {
571 jint _exception = 0;
572 const char * _exceptionType = NULL;
573 const char * _exceptionMessage = NULL;
574 const char* _nativebuf = 0;
575
576 if (!buf) {
577 _exception = 1;
578 _exceptionType = "java/lang/IllegalArgumentException";
579 _exceptionMessage = "buf == null";
580 goto exit;
581 }
582 _nativebuf = _env->GetStringUTFChars(buf, 0);
583
584 glDebugMessageInsert(
585 (GLenum)source,
586 (GLenum)type,
587 (GLuint)id,
588 (GLenum)severity,
589 (GLsizei)length,
590 (GLchar *)_nativebuf
591 );
592
593 exit:
594 if (_nativebuf) {
595 _env->ReleaseStringUTFChars(buf, _nativebuf);
596 }
597
598 if (_exception) {
599 jniThrowException(_env, _exceptionType, _exceptionMessage);
600 }
601 }
602
603 /* void glDebugMessageCallback ( GLDEBUGPROC callback, const void *userParam ) */
604 static void
android_glDebugMessageCallback(JNIEnv * _env,jobject _this,jobject callback)605 android_glDebugMessageCallback(JNIEnv *_env, jobject _this, jobject callback) {
606 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
607 }
608 /* GLuint glGetDebugMessageLog ( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog ) */
609 static jint
android_glGetDebugMessageLog__II_3II_3II_3II_3II_3II_3BI(JNIEnv * _env,jobject _this,jint count,jint bufSize,jintArray sources_ref,jint sourcesOffset,jintArray types_ref,jint typesOffset,jintArray ids_ref,jint idsOffset,jintArray severities_ref,jint severitiesOffset,jintArray lengths_ref,jint lengthsOffset,jbyteArray messageLog_ref,jint messageLogOffset)610 android_glGetDebugMessageLog__II_3II_3II_3II_3II_3II_3BI
611 (JNIEnv *_env, jobject _this, jint count, jint bufSize, jintArray sources_ref, jint sourcesOffset, jintArray types_ref, jint typesOffset, jintArray ids_ref, jint idsOffset, jintArray severities_ref, jint severitiesOffset, jintArray lengths_ref, jint lengthsOffset, jbyteArray messageLog_ref, jint messageLogOffset) {
612 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
613 return 0;
614 }
615
616 /* GLuint glGetDebugMessageLog ( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog ) */
617 static uint
android_glGetDebugMessageLog__ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_ByteBuffer_2(JNIEnv * _env,jobject _this,jint count,jobject sources_ref,jobject types_ref,jobject ids_ref,jobject severities_ref,jobject lengths_ref,jobject messageLog_ref)618 android_glGetDebugMessageLog__ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_ByteBuffer_2
619 (JNIEnv *_env, jobject _this, jint count, jobject sources_ref, jobject types_ref, jobject ids_ref, jobject severities_ref, jobject lengths_ref, jobject messageLog_ref) {
620 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
621 return 0;
622 }
623
624 /* GLuint glGetDebugMessageLog ( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog ) */
625 static jobjectArray
android_glGetDebugMessageLog__I_3II_3II_3II_3II(JNIEnv * _env,jobject _this,jint count,jintArray sources_ref,jint sourcesOffset,jintArray types_ref,jint typesOffset,jintArray ids_ref,jint idsOffset,jintArray severities_ref,jint severitiesOffset)626 android_glGetDebugMessageLog__I_3II_3II_3II_3II
627 (JNIEnv *_env, jobject _this, jint count, jintArray sources_ref, jint sourcesOffset, jintArray types_ref, jint typesOffset, jintArray ids_ref, jint idsOffset, jintArray severities_ref, jint severitiesOffset) {
628 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
629 return 0;
630 }
631
632 /* GLuint glGetDebugMessageLog ( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog ) */
633 static jobjectArray
android_glGetDebugMessageLog__ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint count,jobject sources_ref,jobject types_ref,jobject ids_ref,jobject severities_ref)634 android_glGetDebugMessageLog__ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2
635 (JNIEnv *_env, jobject _this, jint count, jobject sources_ref, jobject types_ref, jobject ids_ref, jobject severities_ref) {
636 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
637 return 0;
638 }
639 /* void glPushDebugGroup ( GLenum source, GLuint id, GLsizei length, const GLchar *message ) */
640 static void
android_glPushDebugGroup__IIILjava_lang_String_2(JNIEnv * _env,jobject _this,jint source,jint id,jint length,jstring message)641 android_glPushDebugGroup__IIILjava_lang_String_2
642 (JNIEnv *_env, jobject _this, jint source, jint id, jint length, jstring message) {
643 jint _exception = 0;
644 const char * _exceptionType = NULL;
645 const char * _exceptionMessage = NULL;
646 const char* _nativemessage = 0;
647 jsize _stringlen = 0;
648
649 if (!message) {
650 _exception = 1;
651 _exceptionType = "java/lang/IllegalArgumentException";
652 _exceptionMessage = "message == null";
653 goto exit;
654 }
655 _nativemessage = _env->GetStringUTFChars(message, 0);
656 _stringlen = _env->GetStringUTFLength(message);
657 if (length > _stringlen) {
658 _exception = 1;
659 _exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
660 _exceptionMessage = "length of message is shorter than length argument";
661 goto exit;
662 }
663
664 glPushDebugGroup(
665 (GLenum)source,
666 (GLuint)id,
667 (GLsizei)length,
668 (GLchar *)_nativemessage
669 );
670
671 exit:
672 if (_nativemessage) {
673 _env->ReleaseStringUTFChars(message, _nativemessage);
674 }
675
676 if (_exception) {
677 jniThrowException(_env, _exceptionType, _exceptionMessage);
678 }
679 }
680
681 /* void glPopDebugGroup ( void ) */
682 static void
android_glPopDebugGroup__(JNIEnv * _env,jobject _this)683 android_glPopDebugGroup__
684 (JNIEnv *_env, jobject _this) {
685 glPopDebugGroup();
686 }
687
688 /* void glObjectLabel ( GLenum identifier, GLuint name, GLsizei length, const GLchar *label ) */
689 static void
android_glObjectLabel__IIILjava_lang_String_2(JNIEnv * _env,jobject _this,jint identifier,jint name,jint length,jstring label)690 android_glObjectLabel__IIILjava_lang_String_2
691 (JNIEnv *_env, jobject _this, jint identifier, jint name, jint length, jstring label) {
692 jint _exception = 0;
693 const char * _exceptionType = NULL;
694 const char * _exceptionMessage = NULL;
695 const char* _nativelabel = 0;
696 jsize _stringlen = 0;
697
698 if (label) {
699 _nativelabel = _env->GetStringUTFChars(label, 0);
700 _stringlen = _env->GetStringUTFLength(label);
701 if (length > _stringlen) {
702 _exception = 1;
703 _exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
704 _exceptionMessage = "length of label is shorter than length argument";
705 goto exit;
706 }
707 }
708
709 glObjectLabel(
710 (GLenum)identifier,
711 (GLuint)name,
712 (GLsizei)length,
713 (GLchar *)_nativelabel
714 );
715
716 exit:
717 if (_nativelabel) {
718 _env->ReleaseStringUTFChars(label, _nativelabel);
719 }
720
721 if (_exception) {
722 jniThrowException(_env, _exceptionType, _exceptionMessage);
723 }
724 }
725
726 /* void glGetObjectLabel ( GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label ) */
727 static jstring
android_glGetObjectLabel(JNIEnv * _env,jobject _this,jint identifier,jint name)728 android_glGetObjectLabel(JNIEnv *_env, jobject _this, jint identifier, jint name) {
729 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
730 return NULL;
731 }
732
733 /* void glObjectPtrLabel ( const void *ptr, GLsizei length, const GLchar *label ) */
734 static void
android_glObjectPtrLabel(JNIEnv * _env,jobject _this,jlong ptr,jstring label)735 android_glObjectPtrLabel(JNIEnv *_env, jobject _this, jlong ptr, jstring label) {
736 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
737 }
738
739 /* void glGetObjectPtrLabel ( const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label ) */
740 static jstring
android_glGetObjectPtrLabel(JNIEnv * _env,jobject _this,jlong ptr)741 android_glGetObjectPtrLabel(JNIEnv *_env, jobject _this, jlong ptr) {
742 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
743 return NULL;
744 }
745
746 /* void glGetPointerv ( GLenum pname, void **params ) */
747 static jlong
android_glGetPointerv(JNIEnv * _env,jobject _this,jint pname)748 android_glGetPointerv(JNIEnv *_env, jobject _this, jint pname) {
749 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
750 return NULL;
751 }
752
753 /* void glEnablei ( GLenum target, GLuint index ) */
754 static void
android_glEnablei__II(JNIEnv * _env,jobject _this,jint target,jint index)755 android_glEnablei__II
756 (JNIEnv *_env, jobject _this, jint target, jint index) {
757 glEnablei(
758 (GLenum)target,
759 (GLuint)index
760 );
761 }
762
763 /* void glDisablei ( GLenum target, GLuint index ) */
764 static void
android_glDisablei__II(JNIEnv * _env,jobject _this,jint target,jint index)765 android_glDisablei__II
766 (JNIEnv *_env, jobject _this, jint target, jint index) {
767 glDisablei(
768 (GLenum)target,
769 (GLuint)index
770 );
771 }
772
773 /* void glBlendEquationi ( GLuint buf, GLenum mode ) */
774 static void
android_glBlendEquationi__II(JNIEnv * _env,jobject _this,jint buf,jint mode)775 android_glBlendEquationi__II
776 (JNIEnv *_env, jobject _this, jint buf, jint mode) {
777 glBlendEquationi(
778 (GLuint)buf,
779 (GLenum)mode
780 );
781 }
782
783 /* void glBlendEquationSeparatei ( GLuint buf, GLenum modeRGB, GLenum modeAlpha ) */
784 static void
android_glBlendEquationSeparatei__III(JNIEnv * _env,jobject _this,jint buf,jint modeRGB,jint modeAlpha)785 android_glBlendEquationSeparatei__III
786 (JNIEnv *_env, jobject _this, jint buf, jint modeRGB, jint modeAlpha) {
787 glBlendEquationSeparatei(
788 (GLuint)buf,
789 (GLenum)modeRGB,
790 (GLenum)modeAlpha
791 );
792 }
793
794 /* void glBlendFunci ( GLuint buf, GLenum src, GLenum dst ) */
795 static void
android_glBlendFunci__III(JNIEnv * _env,jobject _this,jint buf,jint src,jint dst)796 android_glBlendFunci__III
797 (JNIEnv *_env, jobject _this, jint buf, jint src, jint dst) {
798 glBlendFunci(
799 (GLuint)buf,
800 (GLenum)src,
801 (GLenum)dst
802 );
803 }
804
805 /* void glBlendFuncSeparatei ( GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha ) */
806 static void
android_glBlendFuncSeparatei__IIIII(JNIEnv * _env,jobject _this,jint buf,jint srcRGB,jint dstRGB,jint srcAlpha,jint dstAlpha)807 android_glBlendFuncSeparatei__IIIII
808 (JNIEnv *_env, jobject _this, jint buf, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) {
809 glBlendFuncSeparatei(
810 (GLuint)buf,
811 (GLenum)srcRGB,
812 (GLenum)dstRGB,
813 (GLenum)srcAlpha,
814 (GLenum)dstAlpha
815 );
816 }
817
818 /* void glColorMaski ( GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) */
819 static void
android_glColorMaski__IZZZZ(JNIEnv * _env,jobject _this,jint index,jboolean r,jboolean g,jboolean b,jboolean a)820 android_glColorMaski__IZZZZ
821 (JNIEnv *_env, jobject _this, jint index, jboolean r, jboolean g, jboolean b, jboolean a) {
822 glColorMaski(
823 (GLuint)index,
824 (GLboolean)r,
825 (GLboolean)g,
826 (GLboolean)b,
827 (GLboolean)a
828 );
829 }
830
831 /* GLboolean glIsEnabledi ( GLenum target, GLuint index ) */
832 static jboolean
android_glIsEnabledi__II(JNIEnv * _env,jobject _this,jint target,jint index)833 android_glIsEnabledi__II
834 (JNIEnv *_env, jobject _this, jint target, jint index) {
835 GLboolean _returnValue;
836 _returnValue = glIsEnabledi(
837 (GLenum)target,
838 (GLuint)index
839 );
840 return (jboolean)_returnValue;
841 }
842
843 /* void glDrawElementsBaseVertex ( GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex ) */
844 static void
android_glDrawElementsBaseVertex__IIILjava_nio_Buffer_2I(JNIEnv * _env,jobject _this,jint mode,jint count,jint type,jobject indices_buf,jint basevertex)845 android_glDrawElementsBaseVertex__IIILjava_nio_Buffer_2I
846 (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf, jint basevertex) {
847 jint _exception = 0;
848 const char * _exceptionType = NULL;
849 const char * _exceptionMessage = NULL;
850 jarray _array = (jarray) 0;
851 jint _bufferOffset = (jint) 0;
852 jint _remaining;
853 void *indices = (void *) 0;
854
855 indices = (void *)getPointer(_env, indices_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
856 if (_remaining < count-basevertex) {
857 _exception = 1;
858 _exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
859 _exceptionMessage = "remaining() < count-basevertex < needed";
860 goto exit;
861 }
862 if (indices == NULL) {
863 char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
864 indices = (void *) (_indicesBase + _bufferOffset);
865 }
866 glDrawElementsBaseVertex(
867 (GLenum)mode,
868 (GLsizei)count,
869 (GLenum)type,
870 (void *)indices,
871 (GLint)basevertex
872 );
873
874 exit:
875 if (_array) {
876 releasePointer(_env, _array, indices, JNI_FALSE);
877 }
878 if (_exception) {
879 jniThrowException(_env, _exceptionType, _exceptionMessage);
880 }
881 }
882
883 /* void glDrawRangeElementsBaseVertex ( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex ) */
884 static void
android_glDrawRangeElementsBaseVertex__IIIIILjava_nio_Buffer_2I(JNIEnv * _env,jobject _this,jint mode,jint start,jint end,jint count,jint type,jobject indices_buf,jint basevertex)885 android_glDrawRangeElementsBaseVertex__IIIIILjava_nio_Buffer_2I
886 (JNIEnv *_env, jobject _this, jint mode, jint start, jint end, jint count, jint type, jobject indices_buf, jint basevertex) {
887 jint _exception = 0;
888 const char * _exceptionType = NULL;
889 const char * _exceptionMessage = NULL;
890 jarray _array = (jarray) 0;
891 jint _bufferOffset = (jint) 0;
892 jint _remaining;
893 void *indices = (void *) 0;
894
895 indices = (void *)getPointer(_env, indices_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
896 if (_remaining < count-basevertex) {
897 _exception = 1;
898 _exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
899 _exceptionMessage = "remaining() < count-basevertex < needed";
900 goto exit;
901 }
902 if (indices == NULL) {
903 char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
904 indices = (void *) (_indicesBase + _bufferOffset);
905 }
906 glDrawRangeElementsBaseVertex(
907 (GLenum)mode,
908 (GLuint)start,
909 (GLuint)end,
910 (GLsizei)count,
911 (GLenum)type,
912 (void *)indices,
913 (GLint)basevertex
914 );
915
916 exit:
917 if (_array) {
918 releasePointer(_env, _array, indices, JNI_FALSE);
919 }
920 if (_exception) {
921 jniThrowException(_env, _exceptionType, _exceptionMessage);
922 }
923 }
924
925 /* void glDrawElementsInstancedBaseVertex ( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instanceCount, GLint basevertex ) */
926 static void
android_glDrawElementsInstancedBaseVertex__IIILjava_nio_Buffer_2II(JNIEnv * _env,jobject _this,jint mode,jint count,jint type,jobject indices_buf,jint instanceCount,jint basevertex)927 android_glDrawElementsInstancedBaseVertex__IIILjava_nio_Buffer_2II
928 (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf, jint instanceCount, jint basevertex) {
929 jint _exception = 0;
930 const char * _exceptionType = NULL;
931 const char * _exceptionMessage = NULL;
932 jarray _array = (jarray) 0;
933 jint _bufferOffset = (jint) 0;
934 jint _remaining;
935 void *indices = (void *) 0;
936
937 indices = (void *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset);
938 if (_remaining < count-basevertex) {
939 _exception = 1;
940 _exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
941 _exceptionMessage = "remaining() < count-basevertex < needed";
942 goto exit;
943 }
944 if (indices == NULL) {
945 char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
946 indices = (void *) (_indicesBase + _bufferOffset);
947 }
948 glDrawElementsInstancedBaseVertex(
949 (GLenum)mode,
950 (GLsizei)count,
951 (GLenum)type,
952 (void *)indices,
953 (GLsizei)instanceCount,
954 (GLint) basevertex
955 );
956
957 exit:
958 if (_array) {
959 releasePointer(_env, _array, indices, JNI_FALSE);
960 }
961 }
962
963 /* void glDrawElementsInstancedBaseVertex ( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instanceCount, GLint basevertex ) */
964 static void
android_glDrawElementsInstancedBaseVertex__IIIIII(JNIEnv * _env,jobject _this,jint mode,jint count,jint type,jint indicesOffset,jint instanceCount,jint basevertex)965 android_glDrawElementsInstancedBaseVertex__IIIIII
966 (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint indicesOffset, jint instanceCount, jint basevertex) {
967 glDrawElementsInstancedBaseVertex(
968 (GLenum)mode,
969 (GLsizei)count,
970 (GLenum)type,
971 (void *)static_cast<uintptr_t>(indicesOffset),
972 (GLsizei)instanceCount,
973 (GLint)basevertex
974 );
975 }
976 /* void glFramebufferTexture ( GLenum target, GLenum attachment, GLuint texture, GLint level ) */
977 static void
android_glFramebufferTexture__IIII(JNIEnv * _env,jobject _this,jint target,jint attachment,jint texture,jint level)978 android_glFramebufferTexture__IIII
979 (JNIEnv *_env, jobject _this, jint target, jint attachment, jint texture, jint level) {
980 glFramebufferTexture(
981 (GLenum)target,
982 (GLenum)attachment,
983 (GLuint)texture,
984 (GLint)level
985 );
986 }
987
988 /* void glPrimitiveBoundingBox ( GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW ) */
989 static void
android_glPrimitiveBoundingBox__FFFFFFFF(JNIEnv * _env,jobject _this,jfloat minX,jfloat minY,jfloat minZ,jfloat minW,jfloat maxX,jfloat maxY,jfloat maxZ,jfloat maxW)990 android_glPrimitiveBoundingBox__FFFFFFFF
991 (JNIEnv *_env, jobject _this, jfloat minX, jfloat minY, jfloat minZ, jfloat minW, jfloat maxX, jfloat maxY, jfloat maxZ, jfloat maxW) {
992 glPrimitiveBoundingBox(
993 (GLfloat)minX,
994 (GLfloat)minY,
995 (GLfloat)minZ,
996 (GLfloat)minW,
997 (GLfloat)maxX,
998 (GLfloat)maxY,
999 (GLfloat)maxZ,
1000 (GLfloat)maxW
1001 );
1002 }
1003
1004 /* GLenum glGetGraphicsResetStatus ( void ) */
1005 static jint
android_glGetGraphicsResetStatus__(JNIEnv * _env,jobject _this)1006 android_glGetGraphicsResetStatus__
1007 (JNIEnv *_env, jobject _this) {
1008 GLenum _returnValue;
1009 _returnValue = glGetGraphicsResetStatus();
1010 return (jint)_returnValue;
1011 }
1012
1013 /* void glReadnPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data ) */
1014 static void
android_glReadnPixels__IIIIIIILjava_nio_Buffer_2(JNIEnv * _env,jobject _this,jint x,jint y,jint width,jint height,jint format,jint type,jint bufSize,jobject data_buf)1015 android_glReadnPixels__IIIIIIILjava_nio_Buffer_2
1016 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jint bufSize, jobject data_buf) {
1017 jint _exception = 0;
1018 const char * _exceptionType = NULL;
1019 const char * _exceptionMessage = NULL;
1020 jarray _array = (jarray) 0;
1021 jint _bufferOffset = (jint) 0;
1022 jint _remaining;
1023 void *data = (void *) 0;
1024
1025 data = (void *)getPointer(_env, data_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1026 if (_remaining < bufSize) {
1027 _exception = 1;
1028 _exceptionType = "java/lang/IllegalArgumentException";
1029 _exceptionMessage = "remaining() < bufSize < needed";
1030 goto exit;
1031 }
1032 if (data == NULL) {
1033 char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
1034 data = (void *) (_dataBase + _bufferOffset);
1035 }
1036 glReadnPixels(
1037 (GLint)x,
1038 (GLint)y,
1039 (GLsizei)width,
1040 (GLsizei)height,
1041 (GLenum)format,
1042 (GLenum)type,
1043 (GLsizei)bufSize,
1044 (void *)data
1045 );
1046
1047 exit:
1048 if (_array) {
1049 releasePointer(_env, _array, data, _exception ? JNI_FALSE : JNI_TRUE);
1050 }
1051 if (_exception) {
1052 jniThrowException(_env, _exceptionType, _exceptionMessage);
1053 }
1054 }
1055
1056 /* void glGetnUniformfv ( GLuint program, GLint location, GLsizei bufSize, GLfloat *params ) */
1057 static void
android_glGetnUniformfv__III_3FI(JNIEnv * _env,jobject _this,jint program,jint location,jint bufSize,jfloatArray params_ref,jint offset)1058 android_glGetnUniformfv__III_3FI
1059 (JNIEnv *_env, jobject _this, jint program, jint location, jint bufSize, jfloatArray params_ref, jint offset) {
1060 jint _exception = 0;
1061 const char * _exceptionType = NULL;
1062 const char * _exceptionMessage = NULL;
1063 GLfloat *params_base = (GLfloat *) 0;
1064 jint _remaining;
1065 GLfloat *params = (GLfloat *) 0;
1066
1067 if (!params_ref) {
1068 _exception = 1;
1069 _exceptionType = "java/lang/IllegalArgumentException";
1070 _exceptionMessage = "params == null";
1071 goto exit;
1072 }
1073 if (offset < 0) {
1074 _exception = 1;
1075 _exceptionType = "java/lang/IllegalArgumentException";
1076 _exceptionMessage = "offset < 0";
1077 goto exit;
1078 }
1079 _remaining = _env->GetArrayLength(params_ref) - offset;
1080 if (_remaining < bufSize) {
1081 _exception = 1;
1082 _exceptionType = "java/lang/IllegalArgumentException";
1083 _exceptionMessage = "length - offset < bufSize < needed";
1084 goto exit;
1085 }
1086 params_base = (GLfloat *)
1087 _env->GetFloatArrayElements(params_ref, (jboolean *)0);
1088 params = params_base + offset;
1089
1090 glGetnUniformfv(
1091 (GLuint)program,
1092 (GLint)location,
1093 (GLsizei)bufSize,
1094 (GLfloat *)params
1095 );
1096
1097 exit:
1098 if (params_base) {
1099 _env->ReleaseFloatArrayElements(params_ref, (jfloat*)params_base,
1100 _exception ? JNI_ABORT: 0);
1101 }
1102 if (_exception) {
1103 jniThrowException(_env, _exceptionType, _exceptionMessage);
1104 }
1105 }
1106
1107 /* void glGetnUniformfv ( GLuint program, GLint location, GLsizei bufSize, GLfloat *params ) */
1108 static void
android_glGetnUniformfv__IIILjava_nio_FloatBuffer_2(JNIEnv * _env,jobject _this,jint program,jint location,jint bufSize,jobject params_buf)1109 android_glGetnUniformfv__IIILjava_nio_FloatBuffer_2
1110 (JNIEnv *_env, jobject _this, jint program, jint location, jint bufSize, jobject params_buf) {
1111 jint _exception = 0;
1112 const char * _exceptionType = NULL;
1113 const char * _exceptionMessage = NULL;
1114 jfloatArray _array = (jfloatArray) 0;
1115 jint _bufferOffset = (jint) 0;
1116 jint _remaining;
1117 GLfloat *params = (GLfloat *) 0;
1118
1119 params = (GLfloat *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1120 if (_remaining < bufSize) {
1121 _exception = 1;
1122 _exceptionType = "java/lang/IllegalArgumentException";
1123 _exceptionMessage = "remaining() < bufSize < needed";
1124 goto exit;
1125 }
1126 if (params == NULL) {
1127 char * _paramsBase = (char *)_env->GetFloatArrayElements(_array, (jboolean *) 0);
1128 params = (GLfloat *) (_paramsBase + _bufferOffset);
1129 }
1130 glGetnUniformfv(
1131 (GLuint)program,
1132 (GLint)location,
1133 (GLsizei)bufSize,
1134 (GLfloat *)params
1135 );
1136
1137 exit:
1138 if (_array) {
1139 _env->ReleaseFloatArrayElements(_array, (jfloat*)params, _exception ? JNI_ABORT : 0);
1140 }
1141 if (_exception) {
1142 jniThrowException(_env, _exceptionType, _exceptionMessage);
1143 }
1144 }
1145
1146 /* void glGetnUniformiv ( GLuint program, GLint location, GLsizei bufSize, GLint *params ) */
1147 static void
android_glGetnUniformiv__III_3II(JNIEnv * _env,jobject _this,jint program,jint location,jint bufSize,jintArray params_ref,jint offset)1148 android_glGetnUniformiv__III_3II
1149 (JNIEnv *_env, jobject _this, jint program, jint location, jint bufSize, jintArray params_ref, jint offset) {
1150 jint _exception = 0;
1151 const char * _exceptionType = NULL;
1152 const char * _exceptionMessage = NULL;
1153 GLint *params_base = (GLint *) 0;
1154 jint _remaining;
1155 GLint *params = (GLint *) 0;
1156
1157 if (!params_ref) {
1158 _exception = 1;
1159 _exceptionType = "java/lang/IllegalArgumentException";
1160 _exceptionMessage = "params == null";
1161 goto exit;
1162 }
1163 if (offset < 0) {
1164 _exception = 1;
1165 _exceptionType = "java/lang/IllegalArgumentException";
1166 _exceptionMessage = "offset < 0";
1167 goto exit;
1168 }
1169 _remaining = _env->GetArrayLength(params_ref) - offset;
1170 if (_remaining < bufSize) {
1171 _exception = 1;
1172 _exceptionType = "java/lang/IllegalArgumentException";
1173 _exceptionMessage = "length - offset < bufSize < needed";
1174 goto exit;
1175 }
1176 params_base = (GLint *)
1177 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1178 params = params_base + offset;
1179
1180 glGetnUniformiv(
1181 (GLuint)program,
1182 (GLint)location,
1183 (GLsizei)bufSize,
1184 (GLint *)params
1185 );
1186
1187 exit:
1188 if (params_base) {
1189 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1190 _exception ? JNI_ABORT: 0);
1191 }
1192 if (_exception) {
1193 jniThrowException(_env, _exceptionType, _exceptionMessage);
1194 }
1195 }
1196
1197 /* void glGetnUniformiv ( GLuint program, GLint location, GLsizei bufSize, GLint *params ) */
1198 static void
android_glGetnUniformiv__IIILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint program,jint location,jint bufSize,jobject params_buf)1199 android_glGetnUniformiv__IIILjava_nio_IntBuffer_2
1200 (JNIEnv *_env, jobject _this, jint program, jint location, jint bufSize, jobject params_buf) {
1201 jint _exception = 0;
1202 const char * _exceptionType = NULL;
1203 const char * _exceptionMessage = NULL;
1204 jintArray _array = (jintArray) 0;
1205 jint _bufferOffset = (jint) 0;
1206 jint _remaining;
1207 GLint *params = (GLint *) 0;
1208
1209 params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1210 if (_remaining < bufSize) {
1211 _exception = 1;
1212 _exceptionType = "java/lang/IllegalArgumentException";
1213 _exceptionMessage = "remaining() < bufSize < needed";
1214 goto exit;
1215 }
1216 if (params == NULL) {
1217 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1218 params = (GLint *) (_paramsBase + _bufferOffset);
1219 }
1220 glGetnUniformiv(
1221 (GLuint)program,
1222 (GLint)location,
1223 (GLsizei)bufSize,
1224 (GLint *)params
1225 );
1226
1227 exit:
1228 if (_array) {
1229 _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0);
1230 }
1231 if (_exception) {
1232 jniThrowException(_env, _exceptionType, _exceptionMessage);
1233 }
1234 }
1235
1236 /* void glGetnUniformuiv ( GLuint program, GLint location, GLsizei bufSize, GLuint *params ) */
1237 static void
android_glGetnUniformuiv__III_3II(JNIEnv * _env,jobject _this,jint program,jint location,jint bufSize,jintArray params_ref,jint offset)1238 android_glGetnUniformuiv__III_3II
1239 (JNIEnv *_env, jobject _this, jint program, jint location, jint bufSize, jintArray params_ref, jint offset) {
1240 jint _exception = 0;
1241 const char * _exceptionType = NULL;
1242 const char * _exceptionMessage = NULL;
1243 GLuint *params_base = (GLuint *) 0;
1244 jint _remaining;
1245 GLuint *params = (GLuint *) 0;
1246
1247 if (!params_ref) {
1248 _exception = 1;
1249 _exceptionType = "java/lang/IllegalArgumentException";
1250 _exceptionMessage = "params == null";
1251 goto exit;
1252 }
1253 if (offset < 0) {
1254 _exception = 1;
1255 _exceptionType = "java/lang/IllegalArgumentException";
1256 _exceptionMessage = "offset < 0";
1257 goto exit;
1258 }
1259 _remaining = _env->GetArrayLength(params_ref) - offset;
1260 if (_remaining < bufSize) {
1261 _exception = 1;
1262 _exceptionType = "java/lang/IllegalArgumentException";
1263 _exceptionMessage = "length - offset < bufSize < needed";
1264 goto exit;
1265 }
1266 params_base = (GLuint *)
1267 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1268 params = params_base + offset;
1269
1270 glGetnUniformuiv(
1271 (GLuint)program,
1272 (GLint)location,
1273 (GLsizei)bufSize,
1274 (GLuint *)params
1275 );
1276
1277 exit:
1278 if (params_base) {
1279 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1280 _exception ? JNI_ABORT: 0);
1281 }
1282 if (_exception) {
1283 jniThrowException(_env, _exceptionType, _exceptionMessage);
1284 }
1285 }
1286
1287 /* void glGetnUniformuiv ( GLuint program, GLint location, GLsizei bufSize, GLuint *params ) */
1288 static void
android_glGetnUniformuiv__IIILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint program,jint location,jint bufSize,jobject params_buf)1289 android_glGetnUniformuiv__IIILjava_nio_IntBuffer_2
1290 (JNIEnv *_env, jobject _this, jint program, jint location, jint bufSize, jobject params_buf) {
1291 jint _exception = 0;
1292 const char * _exceptionType = NULL;
1293 const char * _exceptionMessage = NULL;
1294 jintArray _array = (jintArray) 0;
1295 jint _bufferOffset = (jint) 0;
1296 jint _remaining;
1297 GLuint *params = (GLuint *) 0;
1298
1299 params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1300 if (_remaining < bufSize) {
1301 _exception = 1;
1302 _exceptionType = "java/lang/IllegalArgumentException";
1303 _exceptionMessage = "remaining() < bufSize < needed";
1304 goto exit;
1305 }
1306 if (params == NULL) {
1307 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1308 params = (GLuint *) (_paramsBase + _bufferOffset);
1309 }
1310 glGetnUniformuiv(
1311 (GLuint)program,
1312 (GLint)location,
1313 (GLsizei)bufSize,
1314 (GLuint *)params
1315 );
1316
1317 exit:
1318 if (_array) {
1319 _env->ReleaseIntArrayElements(_array, (jint*)params, _exception ? JNI_ABORT : 0);
1320 }
1321 if (_exception) {
1322 jniThrowException(_env, _exceptionType, _exceptionMessage);
1323 }
1324 }
1325
1326 /* void glMinSampleShading ( GLfloat value ) */
1327 static void
android_glMinSampleShading__F(JNIEnv * _env,jobject _this,jfloat value)1328 android_glMinSampleShading__F
1329 (JNIEnv *_env, jobject _this, jfloat value) {
1330 glMinSampleShading(
1331 (GLfloat)value
1332 );
1333 }
1334
1335 /* void glPatchParameteri ( GLenum pname, GLint value ) */
1336 static void
android_glPatchParameteri__II(JNIEnv * _env,jobject _this,jint pname,jint value)1337 android_glPatchParameteri__II
1338 (JNIEnv *_env, jobject _this, jint pname, jint value) {
1339 glPatchParameteri(
1340 (GLenum)pname,
1341 (GLint)value
1342 );
1343 }
1344
1345 /* void glTexParameterIiv ( GLenum target, GLenum pname, const GLint *params ) */
1346 static void
android_glTexParameterIiv__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)1347 android_glTexParameterIiv__II_3II
1348 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1349 jint _exception = 0;
1350 const char * _exceptionType = NULL;
1351 const char * _exceptionMessage = NULL;
1352 GLint *params_base = (GLint *) 0;
1353 jint _remaining;
1354 GLint *params = (GLint *) 0;
1355
1356 if (!params_ref) {
1357 _exception = 1;
1358 _exceptionType = "java/lang/IllegalArgumentException";
1359 _exceptionMessage = "params == null";
1360 goto exit;
1361 }
1362 if (offset < 0) {
1363 _exception = 1;
1364 _exceptionType = "java/lang/IllegalArgumentException";
1365 _exceptionMessage = "offset < 0";
1366 goto exit;
1367 }
1368 _remaining = _env->GetArrayLength(params_ref) - offset;
1369 params_base = (GLint *)
1370 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1371 params = params_base + offset;
1372
1373 glTexParameterIiv(
1374 (GLenum)target,
1375 (GLenum)pname,
1376 (GLint *)params
1377 );
1378
1379 exit:
1380 if (params_base) {
1381 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1382 JNI_ABORT);
1383 }
1384 if (_exception) {
1385 jniThrowException(_env, _exceptionType, _exceptionMessage);
1386 }
1387 }
1388
1389 /* void glTexParameterIiv ( GLenum target, GLenum pname, const GLint *params ) */
1390 static void
android_glTexParameterIiv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)1391 android_glTexParameterIiv__IILjava_nio_IntBuffer_2
1392 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1393 jintArray _array = (jintArray) 0;
1394 jint _bufferOffset = (jint) 0;
1395 jint _remaining;
1396 GLint *params = (GLint *) 0;
1397
1398 params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1399 if (params == NULL) {
1400 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1401 params = (GLint *) (_paramsBase + _bufferOffset);
1402 }
1403 glTexParameterIiv(
1404 (GLenum)target,
1405 (GLenum)pname,
1406 (GLint *)params
1407 );
1408 if (_array) {
1409 _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
1410 }
1411 }
1412
1413 /* void glTexParameterIuiv ( GLenum target, GLenum pname, const GLuint *params ) */
1414 static void
android_glTexParameterIuiv__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)1415 android_glTexParameterIuiv__II_3II
1416 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1417 jint _exception = 0;
1418 const char * _exceptionType = NULL;
1419 const char * _exceptionMessage = NULL;
1420 GLuint *params_base = (GLuint *) 0;
1421 jint _remaining;
1422 GLuint *params = (GLuint *) 0;
1423
1424 if (!params_ref) {
1425 _exception = 1;
1426 _exceptionType = "java/lang/IllegalArgumentException";
1427 _exceptionMessage = "params == null";
1428 goto exit;
1429 }
1430 if (offset < 0) {
1431 _exception = 1;
1432 _exceptionType = "java/lang/IllegalArgumentException";
1433 _exceptionMessage = "offset < 0";
1434 goto exit;
1435 }
1436 _remaining = _env->GetArrayLength(params_ref) - offset;
1437 params_base = (GLuint *)
1438 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1439 params = params_base + offset;
1440
1441 glTexParameterIuiv(
1442 (GLenum)target,
1443 (GLenum)pname,
1444 (GLuint *)params
1445 );
1446
1447 exit:
1448 if (params_base) {
1449 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1450 JNI_ABORT);
1451 }
1452 if (_exception) {
1453 jniThrowException(_env, _exceptionType, _exceptionMessage);
1454 }
1455 }
1456
1457 /* void glTexParameterIuiv ( GLenum target, GLenum pname, const GLuint *params ) */
1458 static void
android_glTexParameterIuiv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)1459 android_glTexParameterIuiv__IILjava_nio_IntBuffer_2
1460 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1461 jintArray _array = (jintArray) 0;
1462 jint _bufferOffset = (jint) 0;
1463 jint _remaining;
1464 GLuint *params = (GLuint *) 0;
1465
1466 params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1467 if (params == NULL) {
1468 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1469 params = (GLuint *) (_paramsBase + _bufferOffset);
1470 }
1471 glTexParameterIuiv(
1472 (GLenum)target,
1473 (GLenum)pname,
1474 (GLuint *)params
1475 );
1476 if (_array) {
1477 _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
1478 }
1479 }
1480
1481 /* void glGetTexParameterIiv ( GLenum target, GLenum pname, GLint *params ) */
1482 static void
android_glGetTexParameterIiv__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)1483 android_glGetTexParameterIiv__II_3II
1484 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1485 jint _exception = 0;
1486 const char * _exceptionType = NULL;
1487 const char * _exceptionMessage = NULL;
1488 GLint *params_base = (GLint *) 0;
1489 jint _remaining;
1490 GLint *params = (GLint *) 0;
1491
1492 if (!params_ref) {
1493 _exception = 1;
1494 _exceptionType = "java/lang/IllegalArgumentException";
1495 _exceptionMessage = "params == null";
1496 goto exit;
1497 }
1498 if (offset < 0) {
1499 _exception = 1;
1500 _exceptionType = "java/lang/IllegalArgumentException";
1501 _exceptionMessage = "offset < 0";
1502 goto exit;
1503 }
1504 _remaining = _env->GetArrayLength(params_ref) - offset;
1505 params_base = (GLint *)
1506 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1507 params = params_base + offset;
1508
1509 glGetTexParameterIiv(
1510 (GLenum)target,
1511 (GLenum)pname,
1512 (GLint *)params
1513 );
1514
1515 exit:
1516 if (params_base) {
1517 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1518 _exception ? JNI_ABORT: 0);
1519 }
1520 if (_exception) {
1521 jniThrowException(_env, _exceptionType, _exceptionMessage);
1522 }
1523 }
1524
1525 /* void glGetTexParameterIiv ( GLenum target, GLenum pname, GLint *params ) */
1526 static void
android_glGetTexParameterIiv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)1527 android_glGetTexParameterIiv__IILjava_nio_IntBuffer_2
1528 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1529 jintArray _array = (jintArray) 0;
1530 jint _bufferOffset = (jint) 0;
1531 jint _remaining;
1532 GLint *params = (GLint *) 0;
1533
1534 params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1535 if (params == NULL) {
1536 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1537 params = (GLint *) (_paramsBase + _bufferOffset);
1538 }
1539 glGetTexParameterIiv(
1540 (GLenum)target,
1541 (GLenum)pname,
1542 (GLint *)params
1543 );
1544 if (_array) {
1545 _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1546 }
1547 }
1548
1549 /* void glGetTexParameterIuiv ( GLenum target, GLenum pname, GLuint *params ) */
1550 static void
android_glGetTexParameterIuiv__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)1551 android_glGetTexParameterIuiv__II_3II
1552 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1553 jint _exception = 0;
1554 const char * _exceptionType = NULL;
1555 const char * _exceptionMessage = NULL;
1556 GLuint *params_base = (GLuint *) 0;
1557 jint _remaining;
1558 GLuint *params = (GLuint *) 0;
1559
1560 if (!params_ref) {
1561 _exception = 1;
1562 _exceptionType = "java/lang/IllegalArgumentException";
1563 _exceptionMessage = "params == null";
1564 goto exit;
1565 }
1566 if (offset < 0) {
1567 _exception = 1;
1568 _exceptionType = "java/lang/IllegalArgumentException";
1569 _exceptionMessage = "offset < 0";
1570 goto exit;
1571 }
1572 _remaining = _env->GetArrayLength(params_ref) - offset;
1573 params_base = (GLuint *)
1574 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1575 params = params_base + offset;
1576
1577 glGetTexParameterIuiv(
1578 (GLenum)target,
1579 (GLenum)pname,
1580 (GLuint *)params
1581 );
1582
1583 exit:
1584 if (params_base) {
1585 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1586 _exception ? JNI_ABORT: 0);
1587 }
1588 if (_exception) {
1589 jniThrowException(_env, _exceptionType, _exceptionMessage);
1590 }
1591 }
1592
1593 /* void glGetTexParameterIuiv ( GLenum target, GLenum pname, GLuint *params ) */
1594 static void
android_glGetTexParameterIuiv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)1595 android_glGetTexParameterIuiv__IILjava_nio_IntBuffer_2
1596 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1597 jintArray _array = (jintArray) 0;
1598 jint _bufferOffset = (jint) 0;
1599 jint _remaining;
1600 GLuint *params = (GLuint *) 0;
1601
1602 params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1603 if (params == NULL) {
1604 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1605 params = (GLuint *) (_paramsBase + _bufferOffset);
1606 }
1607 glGetTexParameterIuiv(
1608 (GLenum)target,
1609 (GLenum)pname,
1610 (GLuint *)params
1611 );
1612 if (_array) {
1613 _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1614 }
1615 }
1616
1617 /* void glSamplerParameterIiv ( GLuint sampler, GLenum pname, const GLint *param ) */
1618 static void
android_glSamplerParameterIiv__II_3II(JNIEnv * _env,jobject _this,jint sampler,jint pname,jintArray param_ref,jint offset)1619 android_glSamplerParameterIiv__II_3II
1620 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jintArray param_ref, jint offset) {
1621 jint _exception = 0;
1622 const char * _exceptionType = NULL;
1623 const char * _exceptionMessage = NULL;
1624 GLint *param_base = (GLint *) 0;
1625 jint _remaining;
1626 GLint *param = (GLint *) 0;
1627
1628 if (!param_ref) {
1629 _exception = 1;
1630 _exceptionType = "java/lang/IllegalArgumentException";
1631 _exceptionMessage = "param == null";
1632 goto exit;
1633 }
1634 if (offset < 0) {
1635 _exception = 1;
1636 _exceptionType = "java/lang/IllegalArgumentException";
1637 _exceptionMessage = "offset < 0";
1638 goto exit;
1639 }
1640 _remaining = _env->GetArrayLength(param_ref) - offset;
1641 param_base = (GLint *)
1642 _env->GetIntArrayElements(param_ref, (jboolean *)0);
1643 param = param_base + offset;
1644
1645 glSamplerParameterIiv(
1646 (GLuint)sampler,
1647 (GLenum)pname,
1648 (GLint *)param
1649 );
1650
1651 exit:
1652 if (param_base) {
1653 _env->ReleaseIntArrayElements(param_ref, (jint*)param_base,
1654 JNI_ABORT);
1655 }
1656 if (_exception) {
1657 jniThrowException(_env, _exceptionType, _exceptionMessage);
1658 }
1659 }
1660
1661 /* void glSamplerParameterIiv ( GLuint sampler, GLenum pname, const GLint *param ) */
1662 static void
android_glSamplerParameterIiv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint sampler,jint pname,jobject param_buf)1663 android_glSamplerParameterIiv__IILjava_nio_IntBuffer_2
1664 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) {
1665 jintArray _array = (jintArray) 0;
1666 jint _bufferOffset = (jint) 0;
1667 jint _remaining;
1668 GLint *param = (GLint *) 0;
1669
1670 param = (GLint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1671 if (param == NULL) {
1672 char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1673 param = (GLint *) (_paramBase + _bufferOffset);
1674 }
1675 glSamplerParameterIiv(
1676 (GLuint)sampler,
1677 (GLenum)pname,
1678 (GLint *)param
1679 );
1680 if (_array) {
1681 _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT);
1682 }
1683 }
1684
1685 /* void glSamplerParameterIuiv ( GLuint sampler, GLenum pname, const GLuint *param ) */
1686 static void
android_glSamplerParameterIuiv__II_3II(JNIEnv * _env,jobject _this,jint sampler,jint pname,jintArray param_ref,jint offset)1687 android_glSamplerParameterIuiv__II_3II
1688 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jintArray param_ref, jint offset) {
1689 jint _exception = 0;
1690 const char * _exceptionType = NULL;
1691 const char * _exceptionMessage = NULL;
1692 GLuint *param_base = (GLuint *) 0;
1693 jint _remaining;
1694 GLuint *param = (GLuint *) 0;
1695
1696 if (!param_ref) {
1697 _exception = 1;
1698 _exceptionType = "java/lang/IllegalArgumentException";
1699 _exceptionMessage = "param == null";
1700 goto exit;
1701 }
1702 if (offset < 0) {
1703 _exception = 1;
1704 _exceptionType = "java/lang/IllegalArgumentException";
1705 _exceptionMessage = "offset < 0";
1706 goto exit;
1707 }
1708 _remaining = _env->GetArrayLength(param_ref) - offset;
1709 param_base = (GLuint *)
1710 _env->GetIntArrayElements(param_ref, (jboolean *)0);
1711 param = param_base + offset;
1712
1713 glSamplerParameterIuiv(
1714 (GLuint)sampler,
1715 (GLenum)pname,
1716 (GLuint *)param
1717 );
1718
1719 exit:
1720 if (param_base) {
1721 _env->ReleaseIntArrayElements(param_ref, (jint*)param_base,
1722 JNI_ABORT);
1723 }
1724 if (_exception) {
1725 jniThrowException(_env, _exceptionType, _exceptionMessage);
1726 }
1727 }
1728
1729 /* void glSamplerParameterIuiv ( GLuint sampler, GLenum pname, const GLuint *param ) */
1730 static void
android_glSamplerParameterIuiv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint sampler,jint pname,jobject param_buf)1731 android_glSamplerParameterIuiv__IILjava_nio_IntBuffer_2
1732 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) {
1733 jintArray _array = (jintArray) 0;
1734 jint _bufferOffset = (jint) 0;
1735 jint _remaining;
1736 GLuint *param = (GLuint *) 0;
1737
1738 param = (GLuint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1739 if (param == NULL) {
1740 char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1741 param = (GLuint *) (_paramBase + _bufferOffset);
1742 }
1743 glSamplerParameterIuiv(
1744 (GLuint)sampler,
1745 (GLenum)pname,
1746 (GLuint *)param
1747 );
1748 if (_array) {
1749 _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT);
1750 }
1751 }
1752
1753 /* void glGetSamplerParameterIiv ( GLuint sampler, GLenum pname, GLint *params ) */
1754 static void
android_glGetSamplerParameterIiv__II_3II(JNIEnv * _env,jobject _this,jint sampler,jint pname,jintArray params_ref,jint offset)1755 android_glGetSamplerParameterIiv__II_3II
1756 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jintArray params_ref, jint offset) {
1757 jint _exception = 0;
1758 const char * _exceptionType = NULL;
1759 const char * _exceptionMessage = NULL;
1760 GLint *params_base = (GLint *) 0;
1761 jint _remaining;
1762 GLint *params = (GLint *) 0;
1763
1764 if (!params_ref) {
1765 _exception = 1;
1766 _exceptionType = "java/lang/IllegalArgumentException";
1767 _exceptionMessage = "params == null";
1768 goto exit;
1769 }
1770 if (offset < 0) {
1771 _exception = 1;
1772 _exceptionType = "java/lang/IllegalArgumentException";
1773 _exceptionMessage = "offset < 0";
1774 goto exit;
1775 }
1776 _remaining = _env->GetArrayLength(params_ref) - offset;
1777 params_base = (GLint *)
1778 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1779 params = params_base + offset;
1780
1781 glGetSamplerParameterIiv(
1782 (GLuint)sampler,
1783 (GLenum)pname,
1784 (GLint *)params
1785 );
1786
1787 exit:
1788 if (params_base) {
1789 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1790 _exception ? JNI_ABORT: 0);
1791 }
1792 if (_exception) {
1793 jniThrowException(_env, _exceptionType, _exceptionMessage);
1794 }
1795 }
1796
1797 /* void glGetSamplerParameterIiv ( GLuint sampler, GLenum pname, GLint *params ) */
1798 static void
android_glGetSamplerParameterIiv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint sampler,jint pname,jobject params_buf)1799 android_glGetSamplerParameterIiv__IILjava_nio_IntBuffer_2
1800 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) {
1801 jintArray _array = (jintArray) 0;
1802 jint _bufferOffset = (jint) 0;
1803 jint _remaining;
1804 GLint *params = (GLint *) 0;
1805
1806 params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1807 if (params == NULL) {
1808 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1809 params = (GLint *) (_paramsBase + _bufferOffset);
1810 }
1811 glGetSamplerParameterIiv(
1812 (GLuint)sampler,
1813 (GLenum)pname,
1814 (GLint *)params
1815 );
1816 if (_array) {
1817 _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1818 }
1819 }
1820
1821 /* void glGetSamplerParameterIuiv ( GLuint sampler, GLenum pname, GLuint *params ) */
1822 static void
android_glGetSamplerParameterIuiv__II_3II(JNIEnv * _env,jobject _this,jint sampler,jint pname,jintArray params_ref,jint offset)1823 android_glGetSamplerParameterIuiv__II_3II
1824 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jintArray params_ref, jint offset) {
1825 jint _exception = 0;
1826 const char * _exceptionType = NULL;
1827 const char * _exceptionMessage = NULL;
1828 GLuint *params_base = (GLuint *) 0;
1829 jint _remaining;
1830 GLuint *params = (GLuint *) 0;
1831
1832 if (!params_ref) {
1833 _exception = 1;
1834 _exceptionType = "java/lang/IllegalArgumentException";
1835 _exceptionMessage = "params == null";
1836 goto exit;
1837 }
1838 if (offset < 0) {
1839 _exception = 1;
1840 _exceptionType = "java/lang/IllegalArgumentException";
1841 _exceptionMessage = "offset < 0";
1842 goto exit;
1843 }
1844 _remaining = _env->GetArrayLength(params_ref) - offset;
1845 params_base = (GLuint *)
1846 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1847 params = params_base + offset;
1848
1849 glGetSamplerParameterIuiv(
1850 (GLuint)sampler,
1851 (GLenum)pname,
1852 (GLuint *)params
1853 );
1854
1855 exit:
1856 if (params_base) {
1857 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1858 _exception ? JNI_ABORT: 0);
1859 }
1860 if (_exception) {
1861 jniThrowException(_env, _exceptionType, _exceptionMessage);
1862 }
1863 }
1864
1865 /* void glGetSamplerParameterIuiv ( GLuint sampler, GLenum pname, GLuint *params ) */
1866 static void
android_glGetSamplerParameterIuiv__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint sampler,jint pname,jobject params_buf)1867 android_glGetSamplerParameterIuiv__IILjava_nio_IntBuffer_2
1868 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) {
1869 jintArray _array = (jintArray) 0;
1870 jint _bufferOffset = (jint) 0;
1871 jint _remaining;
1872 GLuint *params = (GLuint *) 0;
1873
1874 params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1875 if (params == NULL) {
1876 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1877 params = (GLuint *) (_paramsBase + _bufferOffset);
1878 }
1879 glGetSamplerParameterIuiv(
1880 (GLuint)sampler,
1881 (GLenum)pname,
1882 (GLuint *)params
1883 );
1884 if (_array) {
1885 _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1886 }
1887 }
1888
1889 /* void glTexBuffer ( GLenum target, GLenum internalformat, GLuint buffer ) */
1890 static void
android_glTexBuffer__III(JNIEnv * _env,jobject _this,jint target,jint internalformat,jint buffer)1891 android_glTexBuffer__III
1892 (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint buffer) {
1893 glTexBuffer(
1894 (GLenum)target,
1895 (GLenum)internalformat,
1896 (GLuint)buffer
1897 );
1898 }
1899
1900 /* void glTexBufferRange ( GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size ) */
1901 static void
android_glTexBufferRange__IIIII(JNIEnv * _env,jobject _this,jint target,jint internalformat,jint buffer,jint offset,jint size)1902 android_glTexBufferRange__IIIII
1903 (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint buffer, jint offset, jint size) {
1904 glTexBufferRange(
1905 (GLenum)target,
1906 (GLenum)internalformat,
1907 (GLuint)buffer,
1908 (GLintptr)offset,
1909 (GLsizeiptr)size
1910 );
1911 }
1912
1913 /* void glTexStorage3DMultisample ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations ) */
1914 static void
android_glTexStorage3DMultisample__IIIIIIZ(JNIEnv * _env,jobject _this,jint target,jint samples,jint internalformat,jint width,jint height,jint depth,jboolean fixedsamplelocations)1915 android_glTexStorage3DMultisample__IIIIIIZ
1916 (JNIEnv *_env, jobject _this, jint target, jint samples, jint internalformat, jint width, jint height, jint depth, jboolean fixedsamplelocations) {
1917 glTexStorage3DMultisample(
1918 (GLenum)target,
1919 (GLsizei)samples,
1920 (GLenum)internalformat,
1921 (GLsizei)width,
1922 (GLsizei)height,
1923 (GLsizei)depth,
1924 (GLboolean)fixedsamplelocations
1925 );
1926 }
1927
1928 static const char *classPathName = "android/opengl/GLES32";
1929
1930 static const JNINativeMethod methods[] = {
1931 {"_nativeClassInit", "()V", (void*)nativeClassInit },
1932 {"glBlendBarrier", "()V", (void *) android_glBlendBarrier__ },
1933 {"glCopyImageSubData", "(IIIIIIIIIIIIIII)V", (void *) android_glCopyImageSubData__IIIIIIIIIIIIIII },
1934 {"glDebugMessageControl", "(IIII[IIZ)V", (void *) android_glDebugMessageControl__IIII_3IIZ },
1935 {"glDebugMessageControl", "(IIIILjava/nio/IntBuffer;Z)V", (void *) android_glDebugMessageControl__IIIILjava_nio_IntBuffer_2Z },
1936 {"glDebugMessageInsert", "(IIIIILjava/lang/String;)V", (void *) android_glDebugMessageInsert__IIIIILjava_lang_String_2 },
1937 {"glDebugMessageCallback", "(Landroid/opengl/GLES32$DebugProc;)V", (void *) android_glDebugMessageCallback },
1938 {"glGetDebugMessageLog", "(II[II[II[II[II[II[BI)I", (void *) android_glGetDebugMessageLog__II_3II_3II_3II_3II_3II_3BI },
1939 {"glGetDebugMessageLog", "(ILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/ByteBuffer;)I", (void *) android_glGetDebugMessageLog__ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_ByteBuffer_2 },
1940 {"glGetDebugMessageLog", "(I[II[II[II[II)[Ljava/lang/String;", (void *) android_glGetDebugMessageLog__I_3II_3II_3II_3II },
1941 {"glGetDebugMessageLog", "(ILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)[Ljava/lang/String;", (void *) android_glGetDebugMessageLog__ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 },
1942 {"glPushDebugGroup", "(IIILjava/lang/String;)V", (void *) android_glPushDebugGroup__IIILjava_lang_String_2 },
1943 {"glPopDebugGroup", "()V", (void *) android_glPopDebugGroup__ },
1944 {"glObjectLabel", "(IIILjava/lang/String;)V", (void *) android_glObjectLabel__IIILjava_lang_String_2 },
1945 {"glGetObjectLabel", "(II)Ljava/lang/String;", (void *) android_glGetObjectLabel },
1946 {"glObjectPtrLabel", "(JLjava/lang/String;)V", (void *) android_glObjectPtrLabel },
1947 {"glGetObjectPtrLabel", "(J)Ljava/lang/String;", (void *) android_glGetObjectPtrLabel },
1948 {"glGetPointerv", "(I)J", (void *) android_glGetPointerv },
1949 {"glEnablei", "(II)V", (void *) android_glEnablei__II },
1950 {"glDisablei", "(II)V", (void *) android_glDisablei__II },
1951 {"glBlendEquationi", "(II)V", (void *) android_glBlendEquationi__II },
1952 {"glBlendEquationSeparatei", "(III)V", (void *) android_glBlendEquationSeparatei__III },
1953 {"glBlendFunci", "(III)V", (void *) android_glBlendFunci__III },
1954 {"glBlendFuncSeparatei", "(IIIII)V", (void *) android_glBlendFuncSeparatei__IIIII },
1955 {"glColorMaski", "(IZZZZ)V", (void *) android_glColorMaski__IZZZZ },
1956 {"glIsEnabledi", "(II)Z", (void *) android_glIsEnabledi__II },
1957 {"glDrawElementsBaseVertex", "(IIILjava/nio/Buffer;I)V", (void *) android_glDrawElementsBaseVertex__IIILjava_nio_Buffer_2I },
1958 {"glDrawRangeElementsBaseVertex", "(IIIIILjava/nio/Buffer;I)V", (void *) android_glDrawRangeElementsBaseVertex__IIIIILjava_nio_Buffer_2I },
1959 {"glDrawElementsInstancedBaseVertex", "(IIILjava/nio/Buffer;II)V", (void *) android_glDrawElementsInstancedBaseVertex__IIILjava_nio_Buffer_2II },
1960 {"glDrawElementsInstancedBaseVertex", "(IIIIII)V", (void *) android_glDrawElementsInstancedBaseVertex__IIIIII },
1961 {"glFramebufferTexture", "(IIII)V", (void *) android_glFramebufferTexture__IIII },
1962 {"glPrimitiveBoundingBox", "(FFFFFFFF)V", (void *) android_glPrimitiveBoundingBox__FFFFFFFF },
1963 {"glGetGraphicsResetStatus", "()I", (void *) android_glGetGraphicsResetStatus__ },
1964 {"glReadnPixels", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glReadnPixels__IIIIIIILjava_nio_Buffer_2 },
1965 {"glGetnUniformfv", "(III[FI)V", (void *) android_glGetnUniformfv__III_3FI },
1966 {"glGetnUniformfv", "(IIILjava/nio/FloatBuffer;)V", (void *) android_glGetnUniformfv__IIILjava_nio_FloatBuffer_2 },
1967 {"glGetnUniformiv", "(III[II)V", (void *) android_glGetnUniformiv__III_3II },
1968 {"glGetnUniformiv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetnUniformiv__IIILjava_nio_IntBuffer_2 },
1969 {"glGetnUniformuiv", "(III[II)V", (void *) android_glGetnUniformuiv__III_3II },
1970 {"glGetnUniformuiv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetnUniformuiv__IIILjava_nio_IntBuffer_2 },
1971 {"glMinSampleShading", "(F)V", (void *) android_glMinSampleShading__F },
1972 {"glPatchParameteri", "(II)V", (void *) android_glPatchParameteri__II },
1973 {"glTexParameterIiv", "(II[II)V", (void *) android_glTexParameterIiv__II_3II },
1974 {"glTexParameterIiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterIiv__IILjava_nio_IntBuffer_2 },
1975 {"glTexParameterIuiv", "(II[II)V", (void *) android_glTexParameterIuiv__II_3II },
1976 {"glTexParameterIuiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterIuiv__IILjava_nio_IntBuffer_2 },
1977 {"glGetTexParameterIiv", "(II[II)V", (void *) android_glGetTexParameterIiv__II_3II },
1978 {"glGetTexParameterIiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterIiv__IILjava_nio_IntBuffer_2 },
1979 {"glGetTexParameterIuiv", "(II[II)V", (void *) android_glGetTexParameterIuiv__II_3II },
1980 {"glGetTexParameterIuiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterIuiv__IILjava_nio_IntBuffer_2 },
1981 {"glSamplerParameterIiv", "(II[II)V", (void *) android_glSamplerParameterIiv__II_3II },
1982 {"glSamplerParameterIiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glSamplerParameterIiv__IILjava_nio_IntBuffer_2 },
1983 {"glSamplerParameterIuiv", "(II[II)V", (void *) android_glSamplerParameterIuiv__II_3II },
1984 {"glSamplerParameterIuiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glSamplerParameterIuiv__IILjava_nio_IntBuffer_2 },
1985 {"glGetSamplerParameterIiv", "(II[II)V", (void *) android_glGetSamplerParameterIiv__II_3II },
1986 {"glGetSamplerParameterIiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetSamplerParameterIiv__IILjava_nio_IntBuffer_2 },
1987 {"glGetSamplerParameterIuiv", "(II[II)V", (void *) android_glGetSamplerParameterIuiv__II_3II },
1988 {"glGetSamplerParameterIuiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetSamplerParameterIuiv__IILjava_nio_IntBuffer_2 },
1989 {"glTexBuffer", "(III)V", (void *) android_glTexBuffer__III },
1990 {"glTexBufferRange", "(IIIII)V", (void *) android_glTexBufferRange__IIIII },
1991 {"glTexStorage3DMultisample", "(IIIIIIZ)V", (void *) android_glTexStorage3DMultisample__IIIIIIZ },
1992 };
1993
register_android_opengl_jni_GLES32(JNIEnv * _env)1994 int register_android_opengl_jni_GLES32(JNIEnv *_env)
1995 {
1996 int err;
1997 err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
1998 return err;
1999 }
2000