1 /*
2 * Copyright 2014 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 <GLES3/gl31.h>
24 #include <GLES2/gl2ext.h>
25
26 #include <jni.h>
27 #include <JNIHelp.h>
28 #include <android_runtime/AndroidRuntime.h>
29 #include <utils/misc.h>
30 #include <assert.h>
31
32 static int initialized = 0;
33
34 static jclass nioAccessClass;
35 static jclass bufferClass;
36 static jmethodID getBasePointerID;
37 static jmethodID getBaseArrayID;
38 static jmethodID getBaseArrayOffsetID;
39 static jfieldID positionID;
40 static jfieldID limitID;
41 static jfieldID elementSizeShiftID;
42
43
44 /* special calls implemented in Android's GLES wrapper used to more
45 * efficiently bound-check passed arrays */
46 extern "C" {
47 #ifdef GL_VERSION_ES_CM_1_1
48 GL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride,
49 const GLvoid *ptr, GLsizei count);
50 GL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride,
51 const GLvoid *pointer, GLsizei count);
52 GL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type,
53 GLsizei stride, const GLvoid *pointer, GLsizei count);
54 GL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type,
55 GLsizei stride, const GLvoid *pointer, GLsizei count);
56 GL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type,
57 GLsizei stride, const GLvoid *pointer, GLsizei count);
58 GL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type,
59 GLsizei stride, const GLvoid *pointer, GLsizei count);
60 GL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type,
61 GLsizei stride, const GLvoid *pointer, GLsizei count);
62 #endif
63 #ifdef GL_ES_VERSION_2_0
glVertexAttribPointerBounds(GLuint indx,GLint size,GLenum type,GLboolean normalized,GLsizei stride,const GLvoid * pointer,GLsizei count)64 static void glVertexAttribPointerBounds(GLuint indx, GLint size, GLenum type,
65 GLboolean normalized, GLsizei stride, const GLvoid *pointer, GLsizei count) {
66 glVertexAttribPointer(indx, size, type, normalized, stride, pointer);
67 }
68 #endif
69 #ifdef GL_ES_VERSION_3_0
glVertexAttribIPointerBounds(GLuint indx,GLint size,GLenum type,GLsizei stride,const GLvoid * pointer,GLsizei count)70 static void glVertexAttribIPointerBounds(GLuint indx, GLint size, GLenum type,
71 GLsizei stride, const GLvoid *pointer, GLsizei count) {
72 glVertexAttribIPointer(indx, size, type, stride, pointer);
73 }
74 #endif
75 }
76
77 /* Cache method IDs each time the class is loaded. */
78
79 static void
nativeClassInit(JNIEnv * _env,jclass glImplClass)80 nativeClassInit(JNIEnv *_env, jclass glImplClass)
81 {
82 jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
83 nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
84
85 jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
86 bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
87
88 getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
89 "getBasePointer", "(Ljava/nio/Buffer;)J");
90 getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
91 "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
92 getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
93 "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
94
95 positionID = _env->GetFieldID(bufferClass, "position", "I");
96 limitID = _env->GetFieldID(bufferClass, "limit", "I");
97 elementSizeShiftID =
98 _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
99 }
100
101 static void *
getPointer(JNIEnv * _env,jobject buffer,jarray * array,jint * remaining,jint * offset)102 getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset)
103 {
104 jint position;
105 jint limit;
106 jint elementSizeShift;
107 jlong pointer;
108
109 position = _env->GetIntField(buffer, positionID);
110 limit = _env->GetIntField(buffer, limitID);
111 elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
112 *remaining = (limit - position) << elementSizeShift;
113 pointer = _env->CallStaticLongMethod(nioAccessClass,
114 getBasePointerID, buffer);
115 if (pointer != 0L) {
116 *array = NULL;
117 return reinterpret_cast<void*>(pointer);
118 }
119
120 *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
121 getBaseArrayID, buffer);
122 *offset = _env->CallStaticIntMethod(nioAccessClass,
123 getBaseArrayOffsetID, buffer);
124
125 return NULL;
126 }
127
128 class ByteArrayGetter {
129 public:
Get(JNIEnv * _env,jbyteArray array,jboolean * is_copy)130 static void* Get(JNIEnv* _env, jbyteArray array, jboolean* is_copy) {
131 return _env->GetByteArrayElements(array, is_copy);
132 }
133 };
134 class BooleanArrayGetter {
135 public:
Get(JNIEnv * _env,jbooleanArray array,jboolean * is_copy)136 static void* Get(JNIEnv* _env, jbooleanArray array, jboolean* is_copy) {
137 return _env->GetBooleanArrayElements(array, is_copy);
138 }
139 };
140 class CharArrayGetter {
141 public:
Get(JNIEnv * _env,jcharArray array,jboolean * is_copy)142 static void* Get(JNIEnv* _env, jcharArray array, jboolean* is_copy) {
143 return _env->GetCharArrayElements(array, is_copy);
144 }
145 };
146 class ShortArrayGetter {
147 public:
Get(JNIEnv * _env,jshortArray array,jboolean * is_copy)148 static void* Get(JNIEnv* _env, jshortArray array, jboolean* is_copy) {
149 return _env->GetShortArrayElements(array, is_copy);
150 }
151 };
152 class IntArrayGetter {
153 public:
Get(JNIEnv * _env,jintArray array,jboolean * is_copy)154 static void* Get(JNIEnv* _env, jintArray array, jboolean* is_copy) {
155 return _env->GetIntArrayElements(array, is_copy);
156 }
157 };
158 class LongArrayGetter {
159 public:
Get(JNIEnv * _env,jlongArray array,jboolean * is_copy)160 static void* Get(JNIEnv* _env, jlongArray array, jboolean* is_copy) {
161 return _env->GetLongArrayElements(array, is_copy);
162 }
163 };
164 class FloatArrayGetter {
165 public:
Get(JNIEnv * _env,jfloatArray array,jboolean * is_copy)166 static void* Get(JNIEnv* _env, jfloatArray array, jboolean* is_copy) {
167 return _env->GetFloatArrayElements(array, is_copy);
168 }
169 };
170 class DoubleArrayGetter {
171 public:
Get(JNIEnv * _env,jdoubleArray array,jboolean * is_copy)172 static void* Get(JNIEnv* _env, jdoubleArray array, jboolean* is_copy) {
173 return _env->GetDoubleArrayElements(array, is_copy);
174 }
175 };
176
177 template<typename JTYPEARRAY, typename ARRAYGETTER>
178 static void*
getArrayPointer(JNIEnv * _env,JTYPEARRAY array,jboolean * is_copy)179 getArrayPointer(JNIEnv *_env, JTYPEARRAY array, jboolean* is_copy) {
180 return ARRAYGETTER::Get(_env, array, is_copy);
181 }
182
183 class ByteArrayReleaser {
184 public:
Release(JNIEnv * _env,jbyteArray array,jbyte * data,jboolean commit)185 static void Release(JNIEnv* _env, jbyteArray array, jbyte* data, jboolean commit) {
186 _env->ReleaseByteArrayElements(array, data, commit ? 0 : JNI_ABORT);
187 }
188 };
189 class BooleanArrayReleaser {
190 public:
Release(JNIEnv * _env,jbooleanArray array,jboolean * data,jboolean commit)191 static void Release(JNIEnv* _env, jbooleanArray array, jboolean* data, jboolean commit) {
192 _env->ReleaseBooleanArrayElements(array, data, commit ? 0 : JNI_ABORT);
193 }
194 };
195 class CharArrayReleaser {
196 public:
Release(JNIEnv * _env,jcharArray array,jchar * data,jboolean commit)197 static void Release(JNIEnv* _env, jcharArray array, jchar* data, jboolean commit) {
198 _env->ReleaseCharArrayElements(array, data, commit ? 0 : JNI_ABORT);
199 }
200 };
201 class ShortArrayReleaser {
202 public:
Release(JNIEnv * _env,jshortArray array,jshort * data,jboolean commit)203 static void Release(JNIEnv* _env, jshortArray array, jshort* data, jboolean commit) {
204 _env->ReleaseShortArrayElements(array, data, commit ? 0 : JNI_ABORT);
205 }
206 };
207 class IntArrayReleaser {
208 public:
Release(JNIEnv * _env,jintArray array,jint * data,jboolean commit)209 static void Release(JNIEnv* _env, jintArray array, jint* data, jboolean commit) {
210 _env->ReleaseIntArrayElements(array, data, commit ? 0 : JNI_ABORT);
211 }
212 };
213 class LongArrayReleaser {
214 public:
Release(JNIEnv * _env,jlongArray array,jlong * data,jboolean commit)215 static void Release(JNIEnv* _env, jlongArray array, jlong* data, jboolean commit) {
216 _env->ReleaseLongArrayElements(array, data, commit ? 0 : JNI_ABORT);
217 }
218 };
219 class FloatArrayReleaser {
220 public:
Release(JNIEnv * _env,jfloatArray array,jfloat * data,jboolean commit)221 static void Release(JNIEnv* _env, jfloatArray array, jfloat* data, jboolean commit) {
222 _env->ReleaseFloatArrayElements(array, data, commit ? 0 : JNI_ABORT);
223 }
224 };
225 class DoubleArrayReleaser {
226 public:
Release(JNIEnv * _env,jdoubleArray array,jdouble * data,jboolean commit)227 static void Release(JNIEnv* _env, jdoubleArray array, jdouble* data, jboolean commit) {
228 _env->ReleaseDoubleArrayElements(array, data, commit ? 0 : JNI_ABORT);
229 }
230 };
231
232 template<typename JTYPEARRAY, typename NTYPEARRAY, typename ARRAYRELEASER>
233 static void
releaseArrayPointer(JNIEnv * _env,JTYPEARRAY array,NTYPEARRAY data,jboolean commit)234 releaseArrayPointer(JNIEnv *_env, JTYPEARRAY array, NTYPEARRAY data, jboolean commit) {
235 ARRAYRELEASER::Release(_env, array, data, commit);
236 }
237
238 static void
releasePointer(JNIEnv * _env,jarray array,void * data,jboolean commit)239 releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
240 {
241 _env->ReleasePrimitiveArrayCritical(array, data,
242 commit ? 0 : JNI_ABORT);
243 }
244
245 static void *
getDirectBufferPointer(JNIEnv * _env,jobject buffer)246 getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
247 char* buf = (char*) _env->GetDirectBufferAddress(buffer);
248 if (buf) {
249 jint position = _env->GetIntField(buffer, positionID);
250 jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
251 buf += position << elementSizeShift;
252 } else {
253 jniThrowException(_env, "java/lang/IllegalArgumentException",
254 "Must use a native order direct Buffer");
255 }
256 return (void*) buf;
257 }
258
259 // --------------------------------------------------------------------------
260
261 /*
262 * returns the number of values glGet returns for a given pname.
263 *
264 * The code below is written such that pnames requiring only one values
265 * are the default (and are not explicitely tested for). This makes the
266 * checking code much shorter/readable/efficient.
267 *
268 * This means that unknown pnames (e.g.: extensions) will default to 1. If
269 * that unknown pname needs more than 1 value, then the validation check
270 * is incomplete and the app may crash if it passed the wrong number params.
271 */
getNeededCount(GLint pname)272 static int getNeededCount(GLint pname) {
273 int needed = 1;
274 #ifdef GL_ES_VERSION_2_0
275 // GLES 2.x pnames
276 switch (pname) {
277 case GL_ALIASED_LINE_WIDTH_RANGE:
278 case GL_ALIASED_POINT_SIZE_RANGE:
279 needed = 2;
280 break;
281
282 case GL_BLEND_COLOR:
283 case GL_COLOR_CLEAR_VALUE:
284 case GL_COLOR_WRITEMASK:
285 case GL_SCISSOR_BOX:
286 case GL_VIEWPORT:
287 needed = 4;
288 break;
289
290 case GL_COMPRESSED_TEXTURE_FORMATS:
291 glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed);
292 break;
293
294 case GL_SHADER_BINARY_FORMATS:
295 glGetIntegerv(GL_NUM_SHADER_BINARY_FORMATS, &needed);
296 break;
297 }
298 #endif
299
300 #ifdef GL_VERSION_ES_CM_1_1
301 // GLES 1.x pnames
302 switch (pname) {
303 case GL_ALIASED_LINE_WIDTH_RANGE:
304 case GL_ALIASED_POINT_SIZE_RANGE:
305 case GL_DEPTH_RANGE:
306 case GL_SMOOTH_LINE_WIDTH_RANGE:
307 case GL_SMOOTH_POINT_SIZE_RANGE:
308 needed = 2;
309 break;
310
311 case GL_CURRENT_NORMAL:
312 case GL_POINT_DISTANCE_ATTENUATION:
313 needed = 3;
314 break;
315
316 case GL_COLOR_CLEAR_VALUE:
317 case GL_COLOR_WRITEMASK:
318 case GL_CURRENT_COLOR:
319 case GL_CURRENT_TEXTURE_COORDS:
320 case GL_FOG_COLOR:
321 case GL_LIGHT_MODEL_AMBIENT:
322 case GL_SCISSOR_BOX:
323 case GL_VIEWPORT:
324 needed = 4;
325 break;
326
327 case GL_MODELVIEW_MATRIX:
328 case GL_PROJECTION_MATRIX:
329 case GL_TEXTURE_MATRIX:
330 needed = 16;
331 break;
332
333 case GL_COMPRESSED_TEXTURE_FORMATS:
334 glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed);
335 break;
336 }
337 #endif
338 return needed;
339 }
340
341 template <typename JTYPEARRAY, typename ARRAYGETTER, typename NTYPEARRAY,
342 typename ARRAYRELEASER, typename CTYPE, void GET(GLenum, CTYPE*)>
343 static void
get(JNIEnv * _env,jobject _this,jint pname,JTYPEARRAY params_ref,jint offset)344 get
345 (JNIEnv *_env, jobject _this, jint pname, JTYPEARRAY params_ref, jint offset) {
346 jint _exception = 0;
347 const char * _exceptionType;
348 const char * _exceptionMessage;
349 CTYPE *params_base = (CTYPE *) 0;
350 jint _remaining;
351 CTYPE *params = (CTYPE *) 0;
352 int _needed = 0;
353
354 if (!params_ref) {
355 _exception = 1;
356 _exceptionType = "java/lang/IllegalArgumentException";
357 _exceptionMessage = "params == null";
358 goto exit;
359 }
360 if (offset < 0) {
361 _exception = 1;
362 _exceptionType = "java/lang/IllegalArgumentException";
363 _exceptionMessage = "offset < 0";
364 goto exit;
365 }
366 _remaining = _env->GetArrayLength(params_ref) - offset;
367 _needed = getNeededCount(pname);
368 // if we didn't find this pname, we just assume the user passed
369 // an array of the right size -- this might happen with extensions
370 // or if we forget an enum here.
371 if (_remaining < _needed) {
372 _exception = 1;
373 _exceptionType = "java/lang/IllegalArgumentException";
374 _exceptionMessage = "length - offset < needed";
375 goto exit;
376 }
377 params_base = (CTYPE *) getArrayPointer<JTYPEARRAY, ARRAYGETTER>(
378 _env, params_ref, (jboolean *)0);
379 params = params_base + offset;
380
381 GET(
382 (GLenum)pname,
383 (CTYPE *)params
384 );
385
386 exit:
387 if (params_base) {
388 releaseArrayPointer<JTYPEARRAY, NTYPEARRAY, ARRAYRELEASER>(
389 _env, params_ref, params_base, !_exception);
390 }
391 if (_exception) {
392 jniThrowException(_env, _exceptionType, _exceptionMessage);
393 }
394 }
395
396
397 template <typename CTYPE, typename JTYPEARRAY, typename ARRAYGETTER, typename NTYPEARRAY,
398 typename ARRAYRELEASER, void GET(GLenum, CTYPE*)>
399 static void
getarray(JNIEnv * _env,jobject _this,jint pname,jobject params_buf)400 getarray
401 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
402 jint _exception = 0;
403 const char * _exceptionType;
404 const char * _exceptionMessage;
405 JTYPEARRAY _array = (JTYPEARRAY) 0;
406 jint _bufferOffset = (jint) 0;
407 jint _remaining;
408 CTYPE *params = (CTYPE *) 0;
409 int _needed = 0;
410
411 params = (CTYPE *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
412 _remaining /= sizeof(CTYPE); // convert from bytes to item count
413 _needed = getNeededCount(pname);
414 // if we didn't find this pname, we just assume the user passed
415 // an array of the right size -- this might happen with extensions
416 // or if we forget an enum here.
417 if (_needed>0 && _remaining < _needed) {
418 _exception = 1;
419 _exceptionType = "java/lang/IllegalArgumentException";
420 _exceptionMessage = "remaining() < needed";
421 goto exit;
422 }
423 if (params == NULL) {
424 char * _paramsBase = (char *) getArrayPointer<JTYPEARRAY, ARRAYGETTER>(
425 _env, _array, (jboolean *) 0);
426 params = (CTYPE *) (_paramsBase + _bufferOffset);
427 }
428 GET(
429 (GLenum)pname,
430 (CTYPE *)params
431 );
432
433 exit:
434 if (_array) {
435 releaseArrayPointer<JTYPEARRAY, NTYPEARRAY, ARRAYRELEASER>(
436 _env, _array, (NTYPEARRAY)params, _exception ? JNI_FALSE : JNI_TRUE);
437 }
438 if (_exception) {
439 jniThrowException(_env, _exceptionType, _exceptionMessage);
440 }
441 }
442
443 // --------------------------------------------------------------------------
444 /* void glBlendBarrierKHR ( void ) */
445 static void
android_glBlendBarrierKHR__(JNIEnv * _env,jobject _this)446 android_glBlendBarrierKHR__
447 (JNIEnv *_env, jobject _this) {
448 glBlendBarrierKHR();
449 }
450
451 /* void glDebugMessageControlKHR ( GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled ) */
452 static void
android_glDebugMessageControlKHR__IIII_3IIZ(JNIEnv * _env,jobject _this,jint source,jint type,jint severity,jint count,jintArray ids_ref,jint offset,jboolean enabled)453 android_glDebugMessageControlKHR__IIII_3IIZ
454 (JNIEnv *_env, jobject _this, jint source, jint type, jint severity, jint count, jintArray ids_ref, jint offset, jboolean enabled) {
455 jint _exception = 0;
456 const char * _exceptionType = NULL;
457 const char * _exceptionMessage = NULL;
458 GLuint *ids_base = (GLuint *) 0;
459 jint _remaining;
460 GLuint *ids = (GLuint *) 0;
461
462 if (!ids_ref) {
463 _exception = 1;
464 _exceptionType = "java/lang/IllegalArgumentException";
465 _exceptionMessage = "ids == null";
466 goto exit;
467 }
468 if (offset < 0) {
469 _exception = 1;
470 _exceptionType = "java/lang/IllegalArgumentException";
471 _exceptionMessage = "offset < 0";
472 goto exit;
473 }
474 _remaining = _env->GetArrayLength(ids_ref) - offset;
475 ids_base = (GLuint *)
476 _env->GetIntArrayElements(ids_ref, (jboolean *)0);
477 ids = ids_base + offset;
478
479 glDebugMessageControlKHR(
480 (GLenum)source,
481 (GLenum)type,
482 (GLenum)severity,
483 (GLsizei)count,
484 (GLuint *)ids,
485 (GLboolean)enabled
486 );
487
488 exit:
489 if (ids_base) {
490 _env->ReleaseIntArrayElements(ids_ref, (jint*)ids_base,
491 JNI_ABORT);
492 }
493 if (_exception) {
494 jniThrowException(_env, _exceptionType, _exceptionMessage);
495 }
496 }
497
498 /* void glDebugMessageControlKHR ( GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled ) */
499 static void
android_glDebugMessageControlKHR__IIIILjava_nio_IntBuffer_2Z(JNIEnv * _env,jobject _this,jint source,jint type,jint severity,jint count,jobject ids_buf,jboolean enabled)500 android_glDebugMessageControlKHR__IIIILjava_nio_IntBuffer_2Z
501 (JNIEnv *_env, jobject _this, jint source, jint type, jint severity, jint count, jobject ids_buf, jboolean enabled) {
502 jintArray _array = (jintArray) 0;
503 jint _bufferOffset = (jint) 0;
504 jint _remaining;
505 GLuint *ids = (GLuint *) 0;
506
507 ids = (GLuint *)getPointer(_env, ids_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
508 if (ids == NULL) {
509 char * _idsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
510 ids = (GLuint *) (_idsBase + _bufferOffset);
511 }
512 glDebugMessageControlKHR(
513 (GLenum)source,
514 (GLenum)type,
515 (GLenum)severity,
516 (GLsizei)count,
517 (GLuint *)ids,
518 (GLboolean)enabled
519 );
520 if (_array) {
521 _env->ReleaseIntArrayElements(_array, (jint*)ids, JNI_ABORT);
522 }
523 }
524
525 /* void glDebugMessageInsertKHR ( GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf ) */
526 static void
android_glDebugMessageInsertKHR__IIIILjava_lang_String_2(JNIEnv * _env,jobject _this,jint source,jint type,jint id,jint severity,jstring buf)527 android_glDebugMessageInsertKHR__IIIILjava_lang_String_2
528 (JNIEnv *_env, jobject _this, jint source, jint type, jint id, jint severity, jstring buf) {
529 jint _exception = 0;
530 const char * _exceptionType = NULL;
531 const char * _exceptionMessage = NULL;
532 const char* _nativebuf = 0;
533 jint _length = 0;
534
535 if (!buf) {
536 _exception = 1;
537 _exceptionType = "java/lang/IllegalArgumentException";
538 _exceptionMessage = "buf == null";
539 goto exit;
540 }
541 _nativebuf = _env->GetStringUTFChars(buf, 0);
542 _length = _env->GetStringUTFLength(buf);
543
544 glDebugMessageInsertKHR(
545 (GLenum)source,
546 (GLenum)type,
547 (GLuint)id,
548 (GLenum)severity,
549 (GLsizei)_length,
550 (GLchar *)_nativebuf
551 );
552
553 exit:
554 if (_nativebuf) {
555 _env->ReleaseStringUTFChars(buf, _nativebuf);
556 }
557
558 if (_exception) {
559 jniThrowException(_env, _exceptionType, _exceptionMessage);
560 }
561 }
562
563 /* void glDebugMessageCallbackKHR ( GLDEBUGPROCKHR callback, const void *userParam ) */
564 static void
android_glDebugMessageCallbackKHR(JNIEnv * _env,jobject _this,jobject callback)565 android_glDebugMessageCallbackKHR(JNIEnv *_env, jobject _this, jobject callback) {
566 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
567 }
568 /* GLuint glGetDebugMessageLogKHR ( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog ) */
569 static jint
android_glGetDebugMessageLogKHR__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)570 android_glGetDebugMessageLogKHR__II_3II_3II_3II_3II_3II_3BI
571 (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) {
572 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
573 return 0;
574 }
575
576 /* GLuint glGetDebugMessageLogKHR ( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog ) */
577 static uint
android_glGetDebugMessageLogKHR__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)578 android_glGetDebugMessageLogKHR__ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_ByteBuffer_2
579 (JNIEnv *_env, jobject _this, jint count, jobject sources_ref, jobject types_ref, jobject ids_ref, jobject severities_ref, jobject lengths_ref, jobject messageLog_ref) {
580 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
581 return 0;
582 }
583
584 /* GLuint glGetDebugMessageLogKHR ( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog ) */
585 static jobjectArray
android_glGetDebugMessageLogKHR__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)586 android_glGetDebugMessageLogKHR__I_3II_3II_3II_3II
587 (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) {
588 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
589 return 0;
590 }
591
592 /* GLuint glGetDebugMessageLogKHR ( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog ) */
593 static jobjectArray
android_glGetDebugMessageLogKHR__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)594 android_glGetDebugMessageLogKHR__ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2
595 (JNIEnv *_env, jobject _this, jint count, jobject sources_ref, jobject types_ref, jobject ids_ref, jobject severities_ref) {
596 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
597 return 0;
598 }
599 /* void glPushDebugGroupKHR ( GLenum source, GLuint id, GLsizei length, const GLchar *message ) */
600 static void
android_glPushDebugGroupKHR__IIILjava_lang_String_2(JNIEnv * _env,jobject _this,jint source,jint id,jint length,jstring message)601 android_glPushDebugGroupKHR__IIILjava_lang_String_2
602 (JNIEnv *_env, jobject _this, jint source, jint id, jint length, jstring message) {
603 jint _exception = 0;
604 const char * _exceptionType = NULL;
605 const char * _exceptionMessage = NULL;
606 const char* _nativemessage = 0;
607
608 if (!message) {
609 _exception = 1;
610 _exceptionType = "java/lang/IllegalArgumentException";
611 _exceptionMessage = "message == null";
612 goto exit;
613 }
614 _nativemessage = _env->GetStringUTFChars(message, 0);
615
616 glPushDebugGroupKHR(
617 (GLenum)source,
618 (GLuint)id,
619 (GLsizei)length,
620 (GLchar *)_nativemessage
621 );
622
623 exit:
624 if (_nativemessage) {
625 _env->ReleaseStringUTFChars(message, _nativemessage);
626 }
627
628 if (_exception) {
629 jniThrowException(_env, _exceptionType, _exceptionMessage);
630 }
631 }
632
633 /* void glPopDebugGroupKHR ( void ) */
634 static void
android_glPopDebugGroupKHR__(JNIEnv * _env,jobject _this)635 android_glPopDebugGroupKHR__
636 (JNIEnv *_env, jobject _this) {
637 glPopDebugGroupKHR();
638 }
639
640 /* void glObjectLabelKHR ( GLenum identifier, GLuint name, GLsizei length, const GLchar *label ) */
641 static void
android_glObjectLabelKHR__IIILjava_lang_String_2(JNIEnv * _env,jobject _this,jint identifier,jint name,jint length,jstring label)642 android_glObjectLabelKHR__IIILjava_lang_String_2
643 (JNIEnv *_env, jobject _this, jint identifier, jint name, jint length, jstring label) {
644 jint _exception = 0;
645 const char * _exceptionType = NULL;
646 const char * _exceptionMessage = NULL;
647 const char* _nativelabel = 0;
648
649 if (label) {
650 _nativelabel = _env->GetStringUTFChars(label, 0);
651 }
652
653 glObjectLabelKHR(
654 (GLenum)identifier,
655 (GLuint)name,
656 (GLsizei)length,
657 (GLchar *)_nativelabel
658 );
659 if (_nativelabel) {
660 _env->ReleaseStringUTFChars(label, _nativelabel);
661 }
662
663 if (_exception) {
664 jniThrowException(_env, _exceptionType, _exceptionMessage);
665 }
666 }
667
668 /* void glGetObjectLabelKHR ( GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label ) */
669 static jstring
android_glGetObjectLabelKHR(JNIEnv * _env,jobject _this,jint identifier,jint name)670 android_glGetObjectLabelKHR(JNIEnv *_env, jobject _this, jint identifier, jint name) {
671 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
672 return NULL;
673 }
674
675 /* void glObjectPtrLabelKHR ( const void *ptr, GLsizei length, const GLchar *label ) */
676 static void
android_glObjectPtrLabelKHR(JNIEnv * _env,jobject _this,jlong ptr,jstring label)677 android_glObjectPtrLabelKHR(JNIEnv *_env, jobject _this, jlong ptr, jstring label) {
678 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
679 }
680
681 /* void glGetObjectPtrLabelKHR ( const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label ) */
682 static jstring
android_glGetObjectPtrLabelKHR(JNIEnv * _env,jobject _this,jlong ptr)683 android_glGetObjectPtrLabelKHR(JNIEnv *_env, jobject _this, jlong ptr) {
684 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
685 return NULL;
686 }
687
688 /* void glGetPointervKHR ( GLenum pname, void **params ) */
689 static jobject
android_glGetDebugMessageCallbackKHR(JNIEnv * _env,jobject _this)690 android_glGetDebugMessageCallbackKHR(JNIEnv *_env, jobject _this) {
691 jniThrowException(_env, "java/lang/UnsupportedOperationException", "not yet implemented");
692 return NULL;
693 }
694
695 /* void glMinSampleShadingOES ( GLfloat value ) */
696 static void
android_glMinSampleShadingOES__F(JNIEnv * _env,jobject _this,jfloat value)697 android_glMinSampleShadingOES__F
698 (JNIEnv *_env, jobject _this, jfloat value) {
699 glMinSampleShadingOES(
700 (GLfloat)value
701 );
702 }
703
704 /* void glTexStorage3DMultisampleOES ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations ) */
705 static void
android_glTexStorage3DMultisampleOES__IIIIIIZ(JNIEnv * _env,jobject _this,jint target,jint samples,jint internalformat,jint width,jint height,jint depth,jboolean fixedsamplelocations)706 android_glTexStorage3DMultisampleOES__IIIIIIZ
707 (JNIEnv *_env, jobject _this, jint target, jint samples, jint internalformat, jint width, jint height, jint depth, jboolean fixedsamplelocations) {
708 glTexStorage3DMultisampleOES(
709 (GLenum)target,
710 (GLsizei)samples,
711 (GLenum)internalformat,
712 (GLsizei)width,
713 (GLsizei)height,
714 (GLsizei)depth,
715 (GLboolean)fixedsamplelocations
716 );
717 }
718
719 /* void glCopyImageSubDataEXT ( 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 ) */
720 static void
android_glCopyImageSubDataEXT__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)721 android_glCopyImageSubDataEXT__IIIIIIIIIIIIIII
722 (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) {
723 glCopyImageSubDataEXT(
724 (GLuint)srcName,
725 (GLenum)srcTarget,
726 (GLint)srcLevel,
727 (GLint)srcX,
728 (GLint)srcY,
729 (GLint)srcZ,
730 (GLuint)dstName,
731 (GLenum)dstTarget,
732 (GLint)dstLevel,
733 (GLint)dstX,
734 (GLint)dstY,
735 (GLint)dstZ,
736 (GLsizei)srcWidth,
737 (GLsizei)srcHeight,
738 (GLsizei)srcDepth
739 );
740 }
741
742 /* void glEnableiEXT ( GLenum target, GLuint index ) */
743 static void
android_glEnableiEXT__II(JNIEnv * _env,jobject _this,jint target,jint index)744 android_glEnableiEXT__II
745 (JNIEnv *_env, jobject _this, jint target, jint index) {
746 glEnableiEXT(
747 (GLenum)target,
748 (GLuint)index
749 );
750 }
751
752 /* void glDisableiEXT ( GLenum target, GLuint index ) */
753 static void
android_glDisableiEXT__II(JNIEnv * _env,jobject _this,jint target,jint index)754 android_glDisableiEXT__II
755 (JNIEnv *_env, jobject _this, jint target, jint index) {
756 glDisableiEXT(
757 (GLenum)target,
758 (GLuint)index
759 );
760 }
761
762 /* void glBlendEquationiEXT ( GLuint buf, GLenum mode ) */
763 static void
android_glBlendEquationiEXT__II(JNIEnv * _env,jobject _this,jint buf,jint mode)764 android_glBlendEquationiEXT__II
765 (JNIEnv *_env, jobject _this, jint buf, jint mode) {
766 glBlendEquationiEXT(
767 (GLuint)buf,
768 (GLenum)mode
769 );
770 }
771
772 /* void glBlendEquationSeparateiEXT ( GLuint buf, GLenum modeRGB, GLenum modeAlpha ) */
773 static void
android_glBlendEquationSeparateiEXT__III(JNIEnv * _env,jobject _this,jint buf,jint modeRGB,jint modeAlpha)774 android_glBlendEquationSeparateiEXT__III
775 (JNIEnv *_env, jobject _this, jint buf, jint modeRGB, jint modeAlpha) {
776 glBlendEquationSeparateiEXT(
777 (GLuint)buf,
778 (GLenum)modeRGB,
779 (GLenum)modeAlpha
780 );
781 }
782
783 /* void glBlendFunciEXT ( GLuint buf, GLenum src, GLenum dst ) */
784 static void
android_glBlendFunciEXT__III(JNIEnv * _env,jobject _this,jint buf,jint src,jint dst)785 android_glBlendFunciEXT__III
786 (JNIEnv *_env, jobject _this, jint buf, jint src, jint dst) {
787 glBlendFunciEXT(
788 (GLuint)buf,
789 (GLenum)src,
790 (GLenum)dst
791 );
792 }
793
794 /* void glBlendFuncSeparateiEXT ( GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha ) */
795 static void
android_glBlendFuncSeparateiEXT__IIIII(JNIEnv * _env,jobject _this,jint buf,jint srcRGB,jint dstRGB,jint srcAlpha,jint dstAlpha)796 android_glBlendFuncSeparateiEXT__IIIII
797 (JNIEnv *_env, jobject _this, jint buf, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) {
798 glBlendFuncSeparateiEXT(
799 (GLuint)buf,
800 (GLenum)srcRGB,
801 (GLenum)dstRGB,
802 (GLenum)srcAlpha,
803 (GLenum)dstAlpha
804 );
805 }
806
807 /* void glColorMaskiEXT ( GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) */
808 static void
android_glColorMaskiEXT__IZZZZ(JNIEnv * _env,jobject _this,jint index,jboolean r,jboolean g,jboolean b,jboolean a)809 android_glColorMaskiEXT__IZZZZ
810 (JNIEnv *_env, jobject _this, jint index, jboolean r, jboolean g, jboolean b, jboolean a) {
811 glColorMaskiEXT(
812 (GLuint)index,
813 (GLboolean)r,
814 (GLboolean)g,
815 (GLboolean)b,
816 (GLboolean)a
817 );
818 }
819
820 /* GLboolean glIsEnablediEXT ( GLenum target, GLuint index ) */
821 static jboolean
android_glIsEnablediEXT__II(JNIEnv * _env,jobject _this,jint target,jint index)822 android_glIsEnablediEXT__II
823 (JNIEnv *_env, jobject _this, jint target, jint index) {
824 GLboolean _returnValue;
825 _returnValue = glIsEnablediEXT(
826 (GLenum)target,
827 (GLuint)index
828 );
829 return (jboolean)_returnValue;
830 }
831
832 /* void glFramebufferTextureEXT ( GLenum target, GLenum attachment, GLuint texture, GLint level ) */
833 static void
android_glFramebufferTextureEXT__IIII(JNIEnv * _env,jobject _this,jint target,jint attachment,jint texture,jint level)834 android_glFramebufferTextureEXT__IIII
835 (JNIEnv *_env, jobject _this, jint target, jint attachment, jint texture, jint level) {
836 glFramebufferTextureEXT(
837 (GLenum)target,
838 (GLenum)attachment,
839 (GLuint)texture,
840 (GLint)level
841 );
842 }
843
844 /* void glPrimitiveBoundingBoxEXT ( GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW ) */
845 static void
android_glPrimitiveBoundingBoxEXT__FFFFFFFF(JNIEnv * _env,jobject _this,jfloat minX,jfloat minY,jfloat minZ,jfloat minW,jfloat maxX,jfloat maxY,jfloat maxZ,jfloat maxW)846 android_glPrimitiveBoundingBoxEXT__FFFFFFFF
847 (JNIEnv *_env, jobject _this, jfloat minX, jfloat minY, jfloat minZ, jfloat minW, jfloat maxX, jfloat maxY, jfloat maxZ, jfloat maxW) {
848 glPrimitiveBoundingBoxEXT(
849 (GLfloat)minX,
850 (GLfloat)minY,
851 (GLfloat)minZ,
852 (GLfloat)minW,
853 (GLfloat)maxX,
854 (GLfloat)maxY,
855 (GLfloat)maxZ,
856 (GLfloat)maxW
857 );
858 }
859
860 /* void glPatchParameteriEXT ( GLenum pname, GLint value ) */
861 static void
android_glPatchParameteriEXT__II(JNIEnv * _env,jobject _this,jint pname,jint value)862 android_glPatchParameteriEXT__II
863 (JNIEnv *_env, jobject _this, jint pname, jint value) {
864 glPatchParameteriEXT(
865 (GLenum)pname,
866 (GLint)value
867 );
868 }
869
870 /* void glTexParameterIivEXT ( GLenum target, GLenum pname, const GLint *params ) */
871 static void
android_glTexParameterIivEXT__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)872 android_glTexParameterIivEXT__II_3II
873 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
874 jint _exception = 0;
875 const char * _exceptionType = NULL;
876 const char * _exceptionMessage = NULL;
877 GLint *params_base = (GLint *) 0;
878 jint _remaining;
879 GLint *params = (GLint *) 0;
880
881 if (!params_ref) {
882 _exception = 1;
883 _exceptionType = "java/lang/IllegalArgumentException";
884 _exceptionMessage = "params == null";
885 goto exit;
886 }
887 if (offset < 0) {
888 _exception = 1;
889 _exceptionType = "java/lang/IllegalArgumentException";
890 _exceptionMessage = "offset < 0";
891 goto exit;
892 }
893 _remaining = _env->GetArrayLength(params_ref) - offset;
894 params_base = (GLint *)
895 _env->GetIntArrayElements(params_ref, (jboolean *)0);
896 params = params_base + offset;
897
898 glTexParameterIivEXT(
899 (GLenum)target,
900 (GLenum)pname,
901 (GLint *)params
902 );
903
904 exit:
905 if (params_base) {
906 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
907 JNI_ABORT);
908 }
909 if (_exception) {
910 jniThrowException(_env, _exceptionType, _exceptionMessage);
911 }
912 }
913
914 /* void glTexParameterIivEXT ( GLenum target, GLenum pname, const GLint *params ) */
915 static void
android_glTexParameterIivEXT__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)916 android_glTexParameterIivEXT__IILjava_nio_IntBuffer_2
917 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
918 jintArray _array = (jintArray) 0;
919 jint _bufferOffset = (jint) 0;
920 jint _remaining;
921 GLint *params = (GLint *) 0;
922
923 params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
924 if (params == NULL) {
925 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
926 params = (GLint *) (_paramsBase + _bufferOffset);
927 }
928 glTexParameterIivEXT(
929 (GLenum)target,
930 (GLenum)pname,
931 (GLint *)params
932 );
933 if (_array) {
934 _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
935 }
936 }
937
938 /* void glTexParameterIuivEXT ( GLenum target, GLenum pname, const GLuint *params ) */
939 static void
android_glTexParameterIuivEXT__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)940 android_glTexParameterIuivEXT__II_3II
941 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
942 jint _exception = 0;
943 const char * _exceptionType = NULL;
944 const char * _exceptionMessage = NULL;
945 GLuint *params_base = (GLuint *) 0;
946 jint _remaining;
947 GLuint *params = (GLuint *) 0;
948
949 if (!params_ref) {
950 _exception = 1;
951 _exceptionType = "java/lang/IllegalArgumentException";
952 _exceptionMessage = "params == null";
953 goto exit;
954 }
955 if (offset < 0) {
956 _exception = 1;
957 _exceptionType = "java/lang/IllegalArgumentException";
958 _exceptionMessage = "offset < 0";
959 goto exit;
960 }
961 _remaining = _env->GetArrayLength(params_ref) - offset;
962 params_base = (GLuint *)
963 _env->GetIntArrayElements(params_ref, (jboolean *)0);
964 params = params_base + offset;
965
966 glTexParameterIuivEXT(
967 (GLenum)target,
968 (GLenum)pname,
969 (GLuint *)params
970 );
971
972 exit:
973 if (params_base) {
974 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
975 JNI_ABORT);
976 }
977 if (_exception) {
978 jniThrowException(_env, _exceptionType, _exceptionMessage);
979 }
980 }
981
982 /* void glTexParameterIuivEXT ( GLenum target, GLenum pname, const GLuint *params ) */
983 static void
android_glTexParameterIuivEXT__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)984 android_glTexParameterIuivEXT__IILjava_nio_IntBuffer_2
985 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
986 jintArray _array = (jintArray) 0;
987 jint _bufferOffset = (jint) 0;
988 jint _remaining;
989 GLuint *params = (GLuint *) 0;
990
991 params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
992 if (params == NULL) {
993 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
994 params = (GLuint *) (_paramsBase + _bufferOffset);
995 }
996 glTexParameterIuivEXT(
997 (GLenum)target,
998 (GLenum)pname,
999 (GLuint *)params
1000 );
1001 if (_array) {
1002 _env->ReleaseIntArrayElements(_array, (jint*)params, JNI_ABORT);
1003 }
1004 }
1005
1006 /* void glGetTexParameterIivEXT ( GLenum target, GLenum pname, GLint *params ) */
1007 static void
android_glGetTexParameterIivEXT__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)1008 android_glGetTexParameterIivEXT__II_3II
1009 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1010 jint _exception = 0;
1011 const char * _exceptionType = NULL;
1012 const char * _exceptionMessage = NULL;
1013 GLint *params_base = (GLint *) 0;
1014 jint _remaining;
1015 GLint *params = (GLint *) 0;
1016
1017 if (!params_ref) {
1018 _exception = 1;
1019 _exceptionType = "java/lang/IllegalArgumentException";
1020 _exceptionMessage = "params == null";
1021 goto exit;
1022 }
1023 if (offset < 0) {
1024 _exception = 1;
1025 _exceptionType = "java/lang/IllegalArgumentException";
1026 _exceptionMessage = "offset < 0";
1027 goto exit;
1028 }
1029 _remaining = _env->GetArrayLength(params_ref) - offset;
1030 params_base = (GLint *)
1031 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1032 params = params_base + offset;
1033
1034 glGetTexParameterIivEXT(
1035 (GLenum)target,
1036 (GLenum)pname,
1037 (GLint *)params
1038 );
1039
1040 exit:
1041 if (params_base) {
1042 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1043 _exception ? JNI_ABORT: 0);
1044 }
1045 if (_exception) {
1046 jniThrowException(_env, _exceptionType, _exceptionMessage);
1047 }
1048 }
1049
1050 /* void glGetTexParameterIivEXT ( GLenum target, GLenum pname, GLint *params ) */
1051 static void
android_glGetTexParameterIivEXT__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)1052 android_glGetTexParameterIivEXT__IILjava_nio_IntBuffer_2
1053 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1054 jintArray _array = (jintArray) 0;
1055 jint _bufferOffset = (jint) 0;
1056 jint _remaining;
1057 GLint *params = (GLint *) 0;
1058
1059 params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1060 if (params == NULL) {
1061 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1062 params = (GLint *) (_paramsBase + _bufferOffset);
1063 }
1064 glGetTexParameterIivEXT(
1065 (GLenum)target,
1066 (GLenum)pname,
1067 (GLint *)params
1068 );
1069 if (_array) {
1070 _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1071 }
1072 }
1073
1074 /* void glGetTexParameterIuivEXT ( GLenum target, GLenum pname, GLuint *params ) */
1075 static void
android_glGetTexParameterIuivEXT__II_3II(JNIEnv * _env,jobject _this,jint target,jint pname,jintArray params_ref,jint offset)1076 android_glGetTexParameterIuivEXT__II_3II
1077 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
1078 jint _exception = 0;
1079 const char * _exceptionType = NULL;
1080 const char * _exceptionMessage = NULL;
1081 GLuint *params_base = (GLuint *) 0;
1082 jint _remaining;
1083 GLuint *params = (GLuint *) 0;
1084
1085 if (!params_ref) {
1086 _exception = 1;
1087 _exceptionType = "java/lang/IllegalArgumentException";
1088 _exceptionMessage = "params == null";
1089 goto exit;
1090 }
1091 if (offset < 0) {
1092 _exception = 1;
1093 _exceptionType = "java/lang/IllegalArgumentException";
1094 _exceptionMessage = "offset < 0";
1095 goto exit;
1096 }
1097 _remaining = _env->GetArrayLength(params_ref) - offset;
1098 params_base = (GLuint *)
1099 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1100 params = params_base + offset;
1101
1102 glGetTexParameterIuivEXT(
1103 (GLenum)target,
1104 (GLenum)pname,
1105 (GLuint *)params
1106 );
1107
1108 exit:
1109 if (params_base) {
1110 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1111 _exception ? JNI_ABORT: 0);
1112 }
1113 if (_exception) {
1114 jniThrowException(_env, _exceptionType, _exceptionMessage);
1115 }
1116 }
1117
1118 /* void glGetTexParameterIuivEXT ( GLenum target, GLenum pname, GLuint *params ) */
1119 static void
android_glGetTexParameterIuivEXT__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint target,jint pname,jobject params_buf)1120 android_glGetTexParameterIuivEXT__IILjava_nio_IntBuffer_2
1121 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
1122 jintArray _array = (jintArray) 0;
1123 jint _bufferOffset = (jint) 0;
1124 jint _remaining;
1125 GLuint *params = (GLuint *) 0;
1126
1127 params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1128 if (params == NULL) {
1129 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1130 params = (GLuint *) (_paramsBase + _bufferOffset);
1131 }
1132 glGetTexParameterIuivEXT(
1133 (GLenum)target,
1134 (GLenum)pname,
1135 (GLuint *)params
1136 );
1137 if (_array) {
1138 _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1139 }
1140 }
1141
1142 /* void glSamplerParameterIivEXT ( GLuint sampler, GLenum pname, const GLint *param ) */
1143 static void
android_glSamplerParameterIivEXT__II_3II(JNIEnv * _env,jobject _this,jint sampler,jint pname,jintArray param_ref,jint offset)1144 android_glSamplerParameterIivEXT__II_3II
1145 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jintArray param_ref, jint offset) {
1146 jint _exception = 0;
1147 const char * _exceptionType = NULL;
1148 const char * _exceptionMessage = NULL;
1149 GLint *param_base = (GLint *) 0;
1150 jint _remaining;
1151 GLint *param = (GLint *) 0;
1152
1153 if (!param_ref) {
1154 _exception = 1;
1155 _exceptionType = "java/lang/IllegalArgumentException";
1156 _exceptionMessage = "param == null";
1157 goto exit;
1158 }
1159 if (offset < 0) {
1160 _exception = 1;
1161 _exceptionType = "java/lang/IllegalArgumentException";
1162 _exceptionMessage = "offset < 0";
1163 goto exit;
1164 }
1165 _remaining = _env->GetArrayLength(param_ref) - offset;
1166 param_base = (GLint *)
1167 _env->GetIntArrayElements(param_ref, (jboolean *)0);
1168 param = param_base + offset;
1169
1170 glSamplerParameterIivEXT(
1171 (GLuint)sampler,
1172 (GLenum)pname,
1173 (GLint *)param
1174 );
1175
1176 exit:
1177 if (param_base) {
1178 _env->ReleaseIntArrayElements(param_ref, (jint*)param_base,
1179 JNI_ABORT);
1180 }
1181 if (_exception) {
1182 jniThrowException(_env, _exceptionType, _exceptionMessage);
1183 }
1184 }
1185
1186 /* void glSamplerParameterIivEXT ( GLuint sampler, GLenum pname, const GLint *param ) */
1187 static void
android_glSamplerParameterIivEXT__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint sampler,jint pname,jobject param_buf)1188 android_glSamplerParameterIivEXT__IILjava_nio_IntBuffer_2
1189 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) {
1190 jintArray _array = (jintArray) 0;
1191 jint _bufferOffset = (jint) 0;
1192 jint _remaining;
1193 GLint *param = (GLint *) 0;
1194
1195 param = (GLint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1196 if (param == NULL) {
1197 char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1198 param = (GLint *) (_paramBase + _bufferOffset);
1199 }
1200 glSamplerParameterIivEXT(
1201 (GLuint)sampler,
1202 (GLenum)pname,
1203 (GLint *)param
1204 );
1205 if (_array) {
1206 _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT);
1207 }
1208 }
1209
1210 /* void glSamplerParameterIuivEXT ( GLuint sampler, GLenum pname, const GLuint *param ) */
1211 static void
android_glSamplerParameterIuivEXT__II_3II(JNIEnv * _env,jobject _this,jint sampler,jint pname,jintArray param_ref,jint offset)1212 android_glSamplerParameterIuivEXT__II_3II
1213 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jintArray param_ref, jint offset) {
1214 jint _exception = 0;
1215 const char * _exceptionType = NULL;
1216 const char * _exceptionMessage = NULL;
1217 GLuint *param_base = (GLuint *) 0;
1218 jint _remaining;
1219 GLuint *param = (GLuint *) 0;
1220
1221 if (!param_ref) {
1222 _exception = 1;
1223 _exceptionType = "java/lang/IllegalArgumentException";
1224 _exceptionMessage = "param == null";
1225 goto exit;
1226 }
1227 if (offset < 0) {
1228 _exception = 1;
1229 _exceptionType = "java/lang/IllegalArgumentException";
1230 _exceptionMessage = "offset < 0";
1231 goto exit;
1232 }
1233 _remaining = _env->GetArrayLength(param_ref) - offset;
1234 param_base = (GLuint *)
1235 _env->GetIntArrayElements(param_ref, (jboolean *)0);
1236 param = param_base + offset;
1237
1238 glSamplerParameterIuivEXT(
1239 (GLuint)sampler,
1240 (GLenum)pname,
1241 (GLuint *)param
1242 );
1243
1244 exit:
1245 if (param_base) {
1246 _env->ReleaseIntArrayElements(param_ref, (jint*)param_base,
1247 JNI_ABORT);
1248 }
1249 if (_exception) {
1250 jniThrowException(_env, _exceptionType, _exceptionMessage);
1251 }
1252 }
1253
1254 /* void glSamplerParameterIuivEXT ( GLuint sampler, GLenum pname, const GLuint *param ) */
1255 static void
android_glSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint sampler,jint pname,jobject param_buf)1256 android_glSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2
1257 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject param_buf) {
1258 jintArray _array = (jintArray) 0;
1259 jint _bufferOffset = (jint) 0;
1260 jint _remaining;
1261 GLuint *param = (GLuint *) 0;
1262
1263 param = (GLuint *)getPointer(_env, param_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1264 if (param == NULL) {
1265 char * _paramBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1266 param = (GLuint *) (_paramBase + _bufferOffset);
1267 }
1268 glSamplerParameterIuivEXT(
1269 (GLuint)sampler,
1270 (GLenum)pname,
1271 (GLuint *)param
1272 );
1273 if (_array) {
1274 _env->ReleaseIntArrayElements(_array, (jint*)param, JNI_ABORT);
1275 }
1276 }
1277
1278 /* void glGetSamplerParameterIivEXT ( GLuint sampler, GLenum pname, GLint *params ) */
1279 static void
android_glGetSamplerParameterIivEXT__II_3II(JNIEnv * _env,jobject _this,jint sampler,jint pname,jintArray params_ref,jint offset)1280 android_glGetSamplerParameterIivEXT__II_3II
1281 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jintArray params_ref, jint offset) {
1282 jint _exception = 0;
1283 const char * _exceptionType = NULL;
1284 const char * _exceptionMessage = NULL;
1285 GLint *params_base = (GLint *) 0;
1286 jint _remaining;
1287 GLint *params = (GLint *) 0;
1288
1289 if (!params_ref) {
1290 _exception = 1;
1291 _exceptionType = "java/lang/IllegalArgumentException";
1292 _exceptionMessage = "params == null";
1293 goto exit;
1294 }
1295 if (offset < 0) {
1296 _exception = 1;
1297 _exceptionType = "java/lang/IllegalArgumentException";
1298 _exceptionMessage = "offset < 0";
1299 goto exit;
1300 }
1301 _remaining = _env->GetArrayLength(params_ref) - offset;
1302 params_base = (GLint *)
1303 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1304 params = params_base + offset;
1305
1306 glGetSamplerParameterIivEXT(
1307 (GLuint)sampler,
1308 (GLenum)pname,
1309 (GLint *)params
1310 );
1311
1312 exit:
1313 if (params_base) {
1314 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1315 _exception ? JNI_ABORT: 0);
1316 }
1317 if (_exception) {
1318 jniThrowException(_env, _exceptionType, _exceptionMessage);
1319 }
1320 }
1321
1322 /* void glGetSamplerParameterIivEXT ( GLuint sampler, GLenum pname, GLint *params ) */
1323 static void
android_glGetSamplerParameterIivEXT__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint sampler,jint pname,jobject params_buf)1324 android_glGetSamplerParameterIivEXT__IILjava_nio_IntBuffer_2
1325 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) {
1326 jintArray _array = (jintArray) 0;
1327 jint _bufferOffset = (jint) 0;
1328 jint _remaining;
1329 GLint *params = (GLint *) 0;
1330
1331 params = (GLint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1332 if (params == NULL) {
1333 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1334 params = (GLint *) (_paramsBase + _bufferOffset);
1335 }
1336 glGetSamplerParameterIivEXT(
1337 (GLuint)sampler,
1338 (GLenum)pname,
1339 (GLint *)params
1340 );
1341 if (_array) {
1342 _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1343 }
1344 }
1345
1346 /* void glGetSamplerParameterIuivEXT ( GLuint sampler, GLenum pname, GLuint *params ) */
1347 static void
android_glGetSamplerParameterIuivEXT__II_3II(JNIEnv * _env,jobject _this,jint sampler,jint pname,jintArray params_ref,jint offset)1348 android_glGetSamplerParameterIuivEXT__II_3II
1349 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jintArray params_ref, jint offset) {
1350 jint _exception = 0;
1351 const char * _exceptionType = NULL;
1352 const char * _exceptionMessage = NULL;
1353 GLuint *params_base = (GLuint *) 0;
1354 jint _remaining;
1355 GLuint *params = (GLuint *) 0;
1356
1357 if (!params_ref) {
1358 _exception = 1;
1359 _exceptionType = "java/lang/IllegalArgumentException";
1360 _exceptionMessage = "params == null";
1361 goto exit;
1362 }
1363 if (offset < 0) {
1364 _exception = 1;
1365 _exceptionType = "java/lang/IllegalArgumentException";
1366 _exceptionMessage = "offset < 0";
1367 goto exit;
1368 }
1369 _remaining = _env->GetArrayLength(params_ref) - offset;
1370 params_base = (GLuint *)
1371 _env->GetIntArrayElements(params_ref, (jboolean *)0);
1372 params = params_base + offset;
1373
1374 glGetSamplerParameterIuivEXT(
1375 (GLuint)sampler,
1376 (GLenum)pname,
1377 (GLuint *)params
1378 );
1379
1380 exit:
1381 if (params_base) {
1382 _env->ReleaseIntArrayElements(params_ref, (jint*)params_base,
1383 _exception ? JNI_ABORT: 0);
1384 }
1385 if (_exception) {
1386 jniThrowException(_env, _exceptionType, _exceptionMessage);
1387 }
1388 }
1389
1390 /* void glGetSamplerParameterIuivEXT ( GLuint sampler, GLenum pname, GLuint *params ) */
1391 static void
android_glGetSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2(JNIEnv * _env,jobject _this,jint sampler,jint pname,jobject params_buf)1392 android_glGetSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2
1393 (JNIEnv *_env, jobject _this, jint sampler, jint pname, jobject params_buf) {
1394 jintArray _array = (jintArray) 0;
1395 jint _bufferOffset = (jint) 0;
1396 jint _remaining;
1397 GLuint *params = (GLuint *) 0;
1398
1399 params = (GLuint *)getPointer(_env, params_buf, (jarray*)&_array, &_remaining, &_bufferOffset);
1400 if (params == NULL) {
1401 char * _paramsBase = (char *)_env->GetIntArrayElements(_array, (jboolean *) 0);
1402 params = (GLuint *) (_paramsBase + _bufferOffset);
1403 }
1404 glGetSamplerParameterIuivEXT(
1405 (GLuint)sampler,
1406 (GLenum)pname,
1407 (GLuint *)params
1408 );
1409 if (_array) {
1410 _env->ReleaseIntArrayElements(_array, (jint*)params, 0);
1411 }
1412 }
1413
1414 /* void glTexBufferEXT ( GLenum target, GLenum internalformat, GLuint buffer ) */
1415 static void
android_glTexBufferEXT__III(JNIEnv * _env,jobject _this,jint target,jint internalformat,jint buffer)1416 android_glTexBufferEXT__III
1417 (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint buffer) {
1418 glTexBufferEXT(
1419 (GLenum)target,
1420 (GLenum)internalformat,
1421 (GLuint)buffer
1422 );
1423 }
1424
1425 /* void glTexBufferRangeEXT ( GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size ) */
1426 static void
android_glTexBufferRangeEXT__IIIII(JNIEnv * _env,jobject _this,jint target,jint internalformat,jint buffer,jint offset,jint size)1427 android_glTexBufferRangeEXT__IIIII
1428 (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint buffer, jint offset, jint size) {
1429 glTexBufferRangeEXT(
1430 (GLenum)target,
1431 (GLenum)internalformat,
1432 (GLuint)buffer,
1433 (GLintptr)offset,
1434 (GLsizeiptr)size
1435 );
1436 }
1437
1438 static const char *classPathName = "android/opengl/GLES31Ext";
1439
1440 static const JNINativeMethod methods[] = {
1441 {"_nativeClassInit", "()V", (void*)nativeClassInit },
1442 {"glBlendBarrierKHR", "()V", (void *) android_glBlendBarrierKHR__ },
1443 {"glDebugMessageControlKHR", "(IIII[IIZ)V", (void *) android_glDebugMessageControlKHR__IIII_3IIZ },
1444 {"glDebugMessageControlKHR", "(IIIILjava/nio/IntBuffer;Z)V", (void *) android_glDebugMessageControlKHR__IIIILjava_nio_IntBuffer_2Z },
1445 {"glDebugMessageInsertKHR", "(IIIILjava/lang/String;)V", (void *) android_glDebugMessageInsertKHR__IIIILjava_lang_String_2 },
1446 {"glDebugMessageCallbackKHR", "(Landroid/opengl/GLES31Ext$DebugProcKHR;)V", (void *) android_glDebugMessageCallbackKHR },
1447 {"glGetDebugMessageLogKHR", "(II[II[II[II[II[II[BI)I", (void *) android_glGetDebugMessageLogKHR__II_3II_3II_3II_3II_3II_3BI },
1448 {"glGetDebugMessageLogKHR", "(ILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/ByteBuffer;)I", (void *) android_glGetDebugMessageLogKHR__ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_ByteBuffer_2 },
1449 {"glGetDebugMessageLogKHR", "(I[II[II[II[II)[Ljava/lang/String;", (void *) android_glGetDebugMessageLogKHR__I_3II_3II_3II_3II },
1450 {"glGetDebugMessageLogKHR", "(ILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)[Ljava/lang/String;", (void *) android_glGetDebugMessageLogKHR__ILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 },
1451 {"glPushDebugGroupKHR", "(IIILjava/lang/String;)V", (void *) android_glPushDebugGroupKHR__IIILjava_lang_String_2 },
1452 {"glPopDebugGroupKHR", "()V", (void *) android_glPopDebugGroupKHR__ },
1453 {"glObjectLabelKHR", "(IIILjava/lang/String;)V", (void *) android_glObjectLabelKHR__IIILjava_lang_String_2 },
1454 {"glGetObjectLabelKHR", "(II)Ljava/lang/String;", (void *) android_glGetObjectLabelKHR },
1455 {"glObjectPtrLabelKHR", "(JLjava/lang/String;)V", (void *) android_glObjectPtrLabelKHR },
1456 {"glGetObjectPtrLabelKHR", "(J)Ljava/lang/String;", (void *) android_glGetObjectPtrLabelKHR },
1457 {"glGetDebugMessageCallbackKHR", "()Landroid/opengl/GLES31Ext$DebugProcKHR;", (void *) android_glGetDebugMessageCallbackKHR },
1458 {"glMinSampleShadingOES", "(F)V", (void *) android_glMinSampleShadingOES__F },
1459 {"glTexStorage3DMultisampleOES", "(IIIIIIZ)V", (void *) android_glTexStorage3DMultisampleOES__IIIIIIZ },
1460 {"glCopyImageSubDataEXT", "(IIIIIIIIIIIIIII)V", (void *) android_glCopyImageSubDataEXT__IIIIIIIIIIIIIII },
1461 {"glEnableiEXT", "(II)V", (void *) android_glEnableiEXT__II },
1462 {"glDisableiEXT", "(II)V", (void *) android_glDisableiEXT__II },
1463 {"glBlendEquationiEXT", "(II)V", (void *) android_glBlendEquationiEXT__II },
1464 {"glBlendEquationSeparateiEXT", "(III)V", (void *) android_glBlendEquationSeparateiEXT__III },
1465 {"glBlendFunciEXT", "(III)V", (void *) android_glBlendFunciEXT__III },
1466 {"glBlendFuncSeparateiEXT", "(IIIII)V", (void *) android_glBlendFuncSeparateiEXT__IIIII },
1467 {"glColorMaskiEXT", "(IZZZZ)V", (void *) android_glColorMaskiEXT__IZZZZ },
1468 {"glIsEnablediEXT", "(II)Z", (void *) android_glIsEnablediEXT__II },
1469 {"glFramebufferTextureEXT", "(IIII)V", (void *) android_glFramebufferTextureEXT__IIII },
1470 {"glPrimitiveBoundingBoxEXT", "(FFFFFFFF)V", (void *) android_glPrimitiveBoundingBoxEXT__FFFFFFFF },
1471 {"glPatchParameteriEXT", "(II)V", (void *) android_glPatchParameteriEXT__II },
1472 {"glTexParameterIivEXT", "(II[II)V", (void *) android_glTexParameterIivEXT__II_3II },
1473 {"glTexParameterIivEXT", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterIivEXT__IILjava_nio_IntBuffer_2 },
1474 {"glTexParameterIuivEXT", "(II[II)V", (void *) android_glTexParameterIuivEXT__II_3II },
1475 {"glTexParameterIuivEXT", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameterIuivEXT__IILjava_nio_IntBuffer_2 },
1476 {"glGetTexParameterIivEXT", "(II[II)V", (void *) android_glGetTexParameterIivEXT__II_3II },
1477 {"glGetTexParameterIivEXT", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterIivEXT__IILjava_nio_IntBuffer_2 },
1478 {"glGetTexParameterIuivEXT", "(II[II)V", (void *) android_glGetTexParameterIuivEXT__II_3II },
1479 {"glGetTexParameterIuivEXT", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameterIuivEXT__IILjava_nio_IntBuffer_2 },
1480 {"glSamplerParameterIivEXT", "(II[II)V", (void *) android_glSamplerParameterIivEXT__II_3II },
1481 {"glSamplerParameterIivEXT", "(IILjava/nio/IntBuffer;)V", (void *) android_glSamplerParameterIivEXT__IILjava_nio_IntBuffer_2 },
1482 {"glSamplerParameterIuivEXT", "(II[II)V", (void *) android_glSamplerParameterIuivEXT__II_3II },
1483 {"glSamplerParameterIuivEXT", "(IILjava/nio/IntBuffer;)V", (void *) android_glSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2 },
1484 {"glGetSamplerParameterIivEXT", "(II[II)V", (void *) android_glGetSamplerParameterIivEXT__II_3II },
1485 {"glGetSamplerParameterIivEXT", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetSamplerParameterIivEXT__IILjava_nio_IntBuffer_2 },
1486 {"glGetSamplerParameterIuivEXT", "(II[II)V", (void *) android_glGetSamplerParameterIuivEXT__II_3II },
1487 {"glGetSamplerParameterIuivEXT", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetSamplerParameterIuivEXT__IILjava_nio_IntBuffer_2 },
1488 {"glTexBufferEXT", "(III)V", (void *) android_glTexBufferEXT__III },
1489 {"glTexBufferRangeEXT", "(IIIII)V", (void *) android_glTexBufferRangeEXT__IIIII },
1490 };
1491
register_android_opengl_jni_GLES31Ext(JNIEnv * _env)1492 int register_android_opengl_jni_GLES31Ext(JNIEnv *_env)
1493 {
1494 int err;
1495 err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
1496 return err;
1497 }
1498