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