• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "AndroidGL20.h"
2 #include <android/log.h>
3 #include <GLES2/gl2.h>
4 #include <GLES2/gl2ext.h>
5 
6 static int initialized = 0;
7 
8 static jclass nioAccessClass;
9 static jclass bufferClass;
10 static jclass OOMEClass;
11 static jclass UOEClass;
12 static jclass IAEClass;
13 
14 static jmethodID getBasePointerID;
15 static jmethodID getBaseArrayID;
16 static jmethodID getBaseArrayOffsetID;
17 static jmethodID allowIndirectBuffersID;
18 static jfieldID positionID;
19 static jfieldID limitID;
20 static jfieldID elementSizeShiftID;
21 
22 
23 static void
nativeClassInitBuffer(JNIEnv * _env)24 nativeClassInitBuffer(JNIEnv *_env)
25 {
26     jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
27     nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
28 
29     jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
30     bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
31 
32     getBasePointerID = _env->GetStaticMethodID(nioAccessClass, "getBasePointer", "(Ljava/nio/Buffer;)J");
33     getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
34     getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,"getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
35     positionID = _env->GetFieldID(bufferClass, "position", "I");
36     limitID = _env->GetFieldID(bufferClass, "limit", "I");
37     elementSizeShiftID = _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
38 }
39 
40 static void
nativeClassInit(JNIEnv * _env)41 nativeClassInit(JNIEnv *_env)
42 {
43     nativeClassInitBuffer(_env);
44 
45     jclass IAEClassLocal =
46         _env->FindClass("java/lang/IllegalArgumentException");
47     jclass OOMEClassLocal =
48          _env->FindClass("java/lang/OutOfMemoryError");
49     jclass UOEClassLocal =
50          _env->FindClass("java/lang/UnsupportedOperationException");
51 
52     IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
53     OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
54     UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
55 }
56 
57 static void *
getDirectBufferPointer(JNIEnv * _env,jobject buffer)58 getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
59     if (!buffer) {
60         return NULL;
61     }
62     void* buf = _env->GetDirectBufferAddress(buffer);
63     if (buf) {
64         jint position = _env->GetIntField(buffer, positionID);
65         jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
66         buf = ((char*) buf) + (position << elementSizeShift);
67     } else {
68         _env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
69     }
70     return buf;
71 }
72 
getString(JNIEnv * env,jstring string)73 static const char* getString( JNIEnv *env, jstring string )
74 {
75 	return (const char*)env->GetStringUTFChars(string, NULL);
76 }
77 
releaseString(JNIEnv * env,jstring string,const char * cString)78 static void releaseString( JNIEnv *env, jstring string, const char* cString )
79 {
80 	env->ReleaseStringUTFChars(string, cString);
81 }
82 
83 static void *
getPointer(JNIEnv * _env,jobject buffer,jarray * array,jint * remaining)84 getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
85 {
86     jint position;
87     jint limit;
88     jint elementSizeShift;
89     jlong pointer;
90     jint offset;
91     void *data;
92 
93     position = _env->GetIntField(buffer, positionID);
94     limit = _env->GetIntField(buffer, limitID);
95     elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
96     *remaining = (limit - position) << elementSizeShift;
97     pointer = _env->CallStaticLongMethod(nioAccessClass,
98             getBasePointerID, buffer);
99     if (pointer != 0L) {
100         *array = NULL;
101         return (void *) pointer;
102     }
103 
104     *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
105             getBaseArrayID, buffer);
106     if (*array == NULL) {
107         return (void*) NULL;
108     }
109     offset = _env->CallStaticIntMethod(nioAccessClass,
110             getBaseArrayOffsetID, buffer);
111     data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
112 
113     return (void *) ((char *) data + offset);
114 }
115 
116 static void
releasePointer(JNIEnv * _env,jarray array,void * data,jboolean commit)117 releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
118 {
119     _env->ReleasePrimitiveArrayCritical(array, data,
120 					   commit ? 0 : JNI_ABORT);
121 }
122 
123 static int
getNumCompressedTextureFormats()124 getNumCompressedTextureFormats() {
125     int numCompressedTextureFormats = 0;
126     glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats);
127     return numCompressedTextureFormats;
128 }
129 
Java_com_badlogic_gdx_backends_android_AndroidGL20_init(JNIEnv * env,jclass)130 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_init
131   (JNIEnv *env, jclass)
132 {
133 	nativeClassInit( env );
134 	__android_log_print(ANDROID_LOG_INFO, "GL2", "all initialized %d", 2);
135 }
136 
137 /*
138  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
139  * Method:    glActiveTexture
140  * Signature: (I)V
141  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glActiveTexture(JNIEnv *,jobject,jint texture)142 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glActiveTexture
143   (JNIEnv *, jobject, jint texture)
144 {
145 	glActiveTexture( texture );
146 }
147 
148 /*
149  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
150  * Method:    glAttachShader
151  * Signature: (II)V
152  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glAttachShader(JNIEnv *,jobject,jint program,jint shader)153 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glAttachShader
154   (JNIEnv *, jobject, jint program, jint shader)
155 {
156 	glAttachShader( program, shader );
157 }
158 
159 /*
160  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
161  * Method:    glBindAttribLocation
162  * Signature: (IILjava/lang/String;)V
163  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBindAttribLocation(JNIEnv * env,jobject,jint program,jint index,jstring name)164 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBindAttribLocation
165   (JNIEnv *env, jobject, jint program, jint index, jstring name)
166 {
167 	const char* namePtr = getString( env, name );
168 	glBindAttribLocation( program, index, namePtr );
169 	releaseString( env, name, namePtr );
170 }
171 
172 /*
173  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
174  * Method:    glBindBuffer
175  * Signature: (II)V
176  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBindBuffer(JNIEnv * env,jobject,jint target,jint buffer)177 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBindBuffer
178   (JNIEnv *env, jobject, jint target, jint buffer)
179 {
180 	glBindBuffer( target, buffer );
181 }
182 
183 /*
184  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
185  * Method:    glBindFramebuffer
186  * Signature: (II)V
187  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBindFramebuffer(JNIEnv * env,jobject,jint target,jint framebuffer)188 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBindFramebuffer
189   (JNIEnv *env, jobject, jint target, jint framebuffer)
190 {
191 	glBindFramebuffer( target, framebuffer );
192 }
193 
194 /*
195  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
196  * Method:    glBindRenderbuffer
197  * Signature: (II)V
198  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBindRenderbuffer(JNIEnv * env,jobject,jint target,jint renderbuffer)199 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBindRenderbuffer
200   (JNIEnv *env, jobject, jint target, jint renderbuffer)
201 {
202 	glBindRenderbuffer( target, renderbuffer );
203 }
204 
205 /*
206  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
207  * Method:    glBindTexture
208  * Signature: (II)V
209  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBindTexture(JNIEnv * env,jobject,jint target,jint texture)210 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBindTexture
211   (JNIEnv *env, jobject, jint target, jint texture)
212 {
213 	glBindTexture( target, texture );
214 }
215 
216 /*
217  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
218  * Method:    glBlendColor
219  * Signature: (FFFF)V
220  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBlendColor(JNIEnv * env,jobject,jfloat red,jfloat green,jfloat blue,jfloat alpha)221 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBlendColor
222   (JNIEnv *env, jobject, jfloat red, jfloat green, jfloat blue, jfloat alpha)
223 {
224 	glBlendColor( red, green, blue, alpha );
225 }
226 
227 /*
228  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
229  * Method:    glBlendEquation
230  * Signature: (I)V
231  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBlendEquation(JNIEnv * env,jobject,jint mode)232 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBlendEquation
233   (JNIEnv *env, jobject, jint mode)
234 {
235 	glBlendEquation( mode );
236 }
237 
238 /*
239  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
240  * Method:    glBlendEquationSeparate
241  * Signature: (II)V
242  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBlendEquationSeparate(JNIEnv * env,jobject,jint modeRGB,jint modeAlpha)243 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBlendEquationSeparate
244   (JNIEnv *env, jobject, jint modeRGB, jint modeAlpha)
245 {
246 	glBlendEquationSeparate( modeRGB, modeAlpha );
247 }
248 
249 /*
250  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
251  * Method:    glBlendFunc
252  * Signature: (II)V
253  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBlendFunc(JNIEnv * env,jobject,jint sfactor,jint dfactor)254 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBlendFunc
255   (JNIEnv *env, jobject, jint sfactor, jint dfactor)
256 {
257 	glBlendFunc( sfactor, dfactor );
258 }
259 
260 /*
261  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
262  * Method:    glBlendFuncSeparate
263  * Signature: (IIII)V
264  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBlendFuncSeparate(JNIEnv * env,jobject,jint srcRGB,jint dstRGB,jint srcAlpha,jint dstAlpha)265 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBlendFuncSeparate
266   (JNIEnv *env, jobject, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha)
267 {
268 	glBlendFuncSeparate( srcRGB, dstRGB, srcAlpha, dstAlpha);
269 }
270 
271 /*
272  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
273  * Method:    glBufferData
274  * Signature: (IILjava/nio/Buffer;I)V
275  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBufferData(JNIEnv * _env,jobject _this,jint target,jint size,jobject data_buf,jint usage)276 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBufferData
277 (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) {
278     jarray _array = (jarray) 0;
279     jint _remaining;
280     GLvoid *data = (GLvoid *) 0;
281 
282     if (data_buf) {
283         data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
284         if (_remaining < size) {
285             _env->ThrowNew(IAEClass, "remaining() < size");
286             goto exit;
287         }
288     }
289     glBufferData(
290         (GLenum)target,
291         (GLsizeiptr)size,
292         (GLvoid *)data,
293         (GLenum)usage
294     );
295 
296 exit:
297     if (_array) {
298         releasePointer(_env, _array, data, JNI_FALSE);
299     }
300 }
301 
302 /*
303  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
304  * Method:    glBufferSubData
305  * Signature: (IIILjava/nio/Buffer;)V
306  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glBufferSubData(JNIEnv * _env,jobject _this,jint target,jint offset,jint size,jobject data_buf)307 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glBufferSubData
308 (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) {
309   jarray _array = (jarray) 0;
310   jint _remaining;
311   GLvoid *data = (GLvoid *) 0;
312 
313   data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining);
314   if (_remaining < size) {
315       _env->ThrowNew(IAEClass, "remaining() < size");
316       goto exit;
317   }
318   glBufferSubData(
319       (GLenum)target,
320       (GLintptr)offset,
321       (GLsizeiptr)size,
322       (GLvoid *)data
323   );
324 
325 exit:
326   if (_array) {
327       releasePointer(_env, _array, data, JNI_FALSE);
328   }
329 }
330 
331 /*
332  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
333  * Method:    glCheckFramebufferStatus
334  * Signature: (I)I
335  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glCheckFramebufferStatus(JNIEnv * env,jobject,jint target)336 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glCheckFramebufferStatus
337   (JNIEnv *env, jobject, jint target)
338 {
339 	return glCheckFramebufferStatus( target );
340 }
341 
342 /*
343  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
344  * Method:    glClear
345  * Signature: (I)V
346  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glClear(JNIEnv * env,jobject,jint mask)347 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glClear
348   (JNIEnv *env, jobject, jint mask)
349 {
350 	glClear( mask );
351 }
352 
353 /*
354  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
355  * Method:    glClearColor
356  * Signature: (FFFF)V
357  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glClearColor(JNIEnv * env,jobject,jfloat red,jfloat green,jfloat blue,jfloat alpha)358 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glClearColor
359   (JNIEnv *env, jobject, jfloat red, jfloat green, jfloat blue, jfloat alpha)
360 {
361 	glClearColor( red, green, blue, alpha );
362 }
363 
364 /*
365  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
366  * Method:    glClearDepthf
367  * Signature: (F)V
368  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glClearDepthf(JNIEnv * env,jobject,jfloat depth)369 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glClearDepthf
370   (JNIEnv *env, jobject, jfloat depth)
371 {
372 	glClearDepthf( depth );
373 }
374 
375 /*
376  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
377  * Method:    glClearStencil
378  * Signature: (I)V
379  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glClearStencil(JNIEnv * env,jobject,jint s)380 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glClearStencil
381   (JNIEnv *env, jobject, jint s)
382 {
383 	glClearStencil( s );
384 }
385 
386 /*
387  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
388  * Method:    glColorMask
389  * Signature: (ZZZZ)V
390  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glColorMask(JNIEnv * env,jobject,jboolean red,jboolean green,jboolean blue,jboolean alpha)391 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glColorMask
392   (JNIEnv *env, jobject, jboolean red, jboolean green, jboolean blue, jboolean alpha)
393 {
394 	glColorMask( red, green, blue, alpha );
395 }
396 
397 /*
398  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
399  * Method:    glCompileShader
400  * Signature: (I)V
401  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glCompileShader(JNIEnv * env,jobject,jint shader)402 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glCompileShader
403   (JNIEnv *env, jobject, jint shader)
404 {
405 	glCompileShader( shader );
406 }
407 
408 /*
409  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
410  * Method:    glCompressedTexImage2D
411  * Signature: (IIIIIIILjava/nio/Buffer;)V
412  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glCompressedTexImage2D(JNIEnv * env,jobject,jint target,jint level,jint internalFormat,jint width,jint height,jint border,jint imageSize,jobject data)413 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glCompressedTexImage2D
414   (JNIEnv *env, jobject, jint target, jint level, jint internalFormat, jint width, jint height, jint border, jint imageSize, jobject data)
415 {
416 	void* dataPtr = getDirectBufferPointer( env, data );
417 	glCompressedTexImage2D( target, level, internalFormat, width, height, border, imageSize, dataPtr );
418 }
419 
420 /*
421  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
422  * Method:    glCompressedTexSubImage2D
423  * Signature: (IIIIIIIILjava/nio/Buffer;)V
424  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glCompressedTexSubImage2D(JNIEnv * env,jobject,jint target,jint level,jint xoffset,jint yoffset,jint width,jint height,jint format,jint imageSize,jobject data)425 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glCompressedTexSubImage2D
426   (JNIEnv *env, jobject, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data)
427 {
428 	void* dataPtr = getDirectBufferPointer( env, data );
429 	glCompressedTexSubImage2D( target, level, xoffset, yoffset, width, height, format, imageSize, dataPtr );
430 }
431 
432 /*
433  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
434  * Method:    glCopyTexImage2D
435  * Signature: (IIIIIIII)V
436  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glCopyTexImage2D(JNIEnv * env,jobject,jint target,jint level,jint internalFormat,jint x,jint y,jint width,jint height,jint border)437 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glCopyTexImage2D
438   (JNIEnv *env, jobject, jint target, jint level, jint  internalFormat, jint x, jint y, jint width, jint height, jint border)
439 {
440 	glCopyTexImage2D( target, level, internalFormat, x, y, width, height, border );
441 }
442 
443 /*
444  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
445  * Method:    glCopyTexSubImage2D
446  * Signature: (IIIIIIII)V
447  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glCopyTexSubImage2D(JNIEnv * env,jobject,jint target,jint level,jint xoffset,jint yoffset,jint x,jint y,jint width,jint height)448 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glCopyTexSubImage2D
449   (JNIEnv *env, jobject, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height)
450 {
451 	glCopyTexSubImage2D( target, level, xoffset, yoffset, x, y, width, height );
452 }
453 
454 /*
455  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
456  * Method:    glCreateProgram
457  * Signature: ()I
458  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glCreateProgram(JNIEnv * env,jobject)459 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glCreateProgram
460   (JNIEnv *env, jobject)
461 {
462 	return glCreateProgram( );
463 }
464 
465 /*
466  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
467  * Method:    glCreateShader
468  * Signature: (I)I
469  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glCreateShader(JNIEnv * env,jobject,jint type)470 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glCreateShader
471   (JNIEnv *env, jobject, jint type)
472 {
473 	return glCreateShader( type );
474 }
475 
476 /*
477  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
478  * Method:    glCullFace
479  * Signature: (I)V
480  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glCullFace(JNIEnv * env,jobject,jint mode)481 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glCullFace
482   (JNIEnv *env, jobject, jint mode)
483 {
484 	glCullFace( mode );
485 }
486 
487 /*
488  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
489  * Method:    glDeleteBuffers
490  * Signature: (ILjava/nio/IntBuffer;)V
491  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteBuffers(JNIEnv * env,jobject,jint n,jobject buffers)492 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteBuffers
493   (JNIEnv *env, jobject, jint n, jobject buffers)
494 {
495 	void* dataPtr = getDirectBufferPointer( env, buffers );
496 	glDeleteBuffers( n, (GLuint*)dataPtr );
497 }
498 
499 /*
500  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
501  * Method:    glDeleteBuffer
502  * Signature: (I)V
503  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteBuffer(JNIEnv *,jobject,jint buffer)504 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteBuffer
505   (JNIEnv *, jobject, jint buffer)
506 {
507 	GLuint buf =  buffer;
508 	glDeleteBuffers(1, &buf);
509 }
510 
511 /*
512  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
513  * Method:    glDeleteFramebuffers
514  * Signature: (ILjava/nio/IntBuffer;)V
515  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteFramebuffers(JNIEnv * env,jobject,jint n,jobject framebuffers)516 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteFramebuffers
517   (JNIEnv *env, jobject, jint n, jobject framebuffers)
518 {
519 	void* dataPtr = getDirectBufferPointer( env, framebuffers );
520 	glDeleteFramebuffers( n, (GLuint*)dataPtr );
521 }
522 
523 /*
524  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
525  * Method:    glDeleteFramebuffer
526  * Signature: (I)V
527  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteFramebuffer(JNIEnv *,jobject,jint buffer)528 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteFramebuffer
529   (JNIEnv *, jobject, jint buffer)
530 {
531 	GLuint buf = buffer;
532 	glDeleteFramebuffers(1, &buf);
533 }
534 
535 /*
536  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
537  * Method:    glDeleteProgram
538  * Signature: (I)V
539  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteProgram(JNIEnv * env,jobject,jint program)540 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteProgram
541   (JNIEnv *env, jobject, jint program)
542 {
543 	glDeleteProgram( program );
544 }
545 
546 /*
547  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
548  * Method:    glDeleteRenderbuffers
549  * Signature: (ILjava/nio/IntBuffer;)V
550  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteRenderbuffers(JNIEnv * env,jobject,jint n,jobject renderbuffers)551 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteRenderbuffers
552   (JNIEnv *env, jobject, jint n, jobject renderbuffers)
553 {
554 	void* dataPtr = getDirectBufferPointer( env, renderbuffers );
555 	glDeleteRenderbuffers( n, (GLuint*)dataPtr );
556 }
557 
558 /*
559  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
560  * Method:    glDeleteRenderbuffer
561  * Signature: (I)V
562  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteRenderbuffer(JNIEnv *,jobject,jint buffer)563 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteRenderbuffer
564   (JNIEnv *, jobject, jint buffer)
565 {
566 	GLuint buf = buffer;
567 	glDeleteRenderbuffers(1, &buf);
568 }
569 
570 /*
571  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
572  * Method:    glDeleteShader
573  * Signature: (I)V
574  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteShader(JNIEnv * env,jobject,jint shader)575 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteShader
576   (JNIEnv *env, jobject, jint shader)
577 {
578 	glDeleteShader( shader );
579 }
580 
581 /*
582  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
583  * Method:    glDeleteTextures
584  * Signature: (ILjava/nio/IntBuffer;)V
585  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteTextures(JNIEnv * env,jobject,jint n,jobject textures)586 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteTextures
587   (JNIEnv *env, jobject, jint n, jobject textures)
588 {
589 	void* dataPtr = getDirectBufferPointer( env, textures );
590 	glDeleteTextures( n, (GLuint*)dataPtr );
591 }
592 
593 /*
594  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
595  * Method:    glDeleteTexture
596  * Signature: (I)V
597  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteTexture(JNIEnv *,jobject,jint buffer)598 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDeleteTexture
599   (JNIEnv *, jobject, jint buffer)
600 {
601 	GLuint buf = buffer;
602 	glDeleteTextures( 1, &buf);
603 }
604 
605 /*
606  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
607  * Method:    glDepthFunc
608  * Signature: (I)V
609  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDepthFunc(JNIEnv * env,jobject,jint func)610 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDepthFunc
611   (JNIEnv *env, jobject, jint func)
612 {
613 	glDepthFunc( func );
614 }
615 
616 /*
617  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
618  * Method:    glDepthMask
619  * Signature: (Z)V
620  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDepthMask(JNIEnv * env,jobject,jboolean flag)621 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDepthMask
622   (JNIEnv *env, jobject, jboolean flag)
623 {
624 	glDepthMask( flag );
625 }
626 
627 /*
628  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
629  * Method:    glDepthRangef
630  * Signature: (FF)V
631  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDepthRangef(JNIEnv * env,jobject,jfloat zNear,jfloat zFar)632 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDepthRangef
633   (JNIEnv *env, jobject, jfloat zNear, jfloat zFar)
634 {
635 	glDepthRangef( zNear, zFar );
636 }
637 
638 /*
639  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
640  * Method:    glDetachShader
641  * Signature: (II)V
642  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDetachShader(JNIEnv * env,jobject,jint program,jint shader)643 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDetachShader
644   (JNIEnv *env, jobject, jint program, jint shader)
645 {
646 	glDetachShader( program, shader );
647 }
648 
649 /*
650  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
651  * Method:    glDisable
652  * Signature: (I)V
653  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDisable(JNIEnv * env,jobject,jint cap)654 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDisable
655   (JNIEnv *env, jobject, jint cap)
656 {
657 	glDisable( cap );
658 }
659 
660 /*
661  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
662  * Method:    glDisableVertexAttribArray
663  * Signature: (I)V
664  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDisableVertexAttribArray(JNIEnv * env,jobject,jint index)665 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDisableVertexAttribArray
666   (JNIEnv *env, jobject, jint index)
667 {
668 	glDisableVertexAttribArray( index );
669 }
670 
671 /*
672  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
673  * Method:    glDrawArrays
674  * Signature: (III)V
675  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDrawArrays(JNIEnv * env,jobject,jint mode,jint first,jint count)676 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDrawArrays
677   (JNIEnv *env, jobject, jint mode, jint first, jint count)
678 {
679 	glDrawArrays( mode, first, count );
680 }
681 
682 /*
683  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
684  * Method:    glDrawElements
685  * Signature: (IIILjava/nio/Buffer;)V
686  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDrawElements__IIILjava_nio_Buffer_2(JNIEnv * env,jobject,jint mode,jint count,jint type,jobject indices)687 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDrawElements__IIILjava_nio_Buffer_2
688 (JNIEnv *env, jobject, jint mode, jint count, jint type, jobject indices)
689 {
690 	void* dataPtr = getDirectBufferPointer( env, indices );
691 	//__android_log_print(ANDROID_LOG_INFO, "GL2", "drawelements");
692 	glDrawElements( mode, count, type, dataPtr );
693 }
694 
Java_com_badlogic_gdx_backends_android_AndroidGL20_glDrawElements__IIII(JNIEnv *,jobject,jint mode,jint count,jint type,jint indices)695 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glDrawElements__IIII
696   (JNIEnv *, jobject, jint mode, jint count, jint type, jint indices)
697 {
698 	glDrawElements( mode, count, type, (const void*)(uintptr_t)indices );
699 }
700 
701 /*
702  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
703  * Method:    glEnable
704  * Signature: (I)V
705  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glEnable(JNIEnv * env,jobject,jint cap)706 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glEnable
707   (JNIEnv *env, jobject, jint cap)
708 {
709 	glEnable( cap );
710 }
711 
712 /*
713  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
714  * Method:    glEnableVertexAttribArray
715  * Signature: (I)V
716  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glEnableVertexAttribArray(JNIEnv * env,jobject,jint index)717 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glEnableVertexAttribArray
718   (JNIEnv *env, jobject, jint index)
719 {
720 	glEnableVertexAttribArray( index );
721 }
722 
723 /*
724  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
725  * Method:    glFinish
726  * Signature: ()V
727  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glFinish(JNIEnv * env,jobject)728 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glFinish
729   (JNIEnv *env, jobject)
730 {
731 	glFinish();
732 }
733 
734 /*
735  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
736  * Method:    glFlush
737  * Signature: ()V
738  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glFlush(JNIEnv * env,jobject)739 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glFlush
740   (JNIEnv *env, jobject)
741 {
742 	glFlush();
743 }
744 
745 /*
746  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
747  * Method:    glFramebufferRenderbuffer
748  * Signature: (IIII)V
749  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glFramebufferRenderbuffer(JNIEnv * env,jobject,jint target,jint attachment,jint renderbuffertarget,jint renderbuffer)750 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glFramebufferRenderbuffer
751   (JNIEnv *env, jobject, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer)
752 {
753 	glFramebufferRenderbuffer( target, attachment, renderbuffertarget, renderbuffer );
754 }
755 
756 /*
757  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
758  * Method:    glFramebufferTexture2D
759  * Signature: (IIIII)V
760  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glFramebufferTexture2D(JNIEnv * env,jobject,jint target,jint attachment,jint textarget,jint texture,jint level)761 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glFramebufferTexture2D
762   (JNIEnv *env, jobject, jint target, jint attachment, jint textarget, jint texture, jint level)
763 {
764 	glFramebufferTexture2D( target, attachment, textarget, texture, level );
765 }
766 
767 /*
768  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
769  * Method:    glFrontFace
770  * Signature: (I)V
771  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glFrontFace(JNIEnv * env,jobject,jint mode)772 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glFrontFace
773   (JNIEnv *env, jobject, jint mode)
774 { //XXXX
775 	glFrontFace( mode );
776 }
777 
778 /*
779  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
780  * Method:    glGenBuffers
781  * Signature: (ILjava/nio/IntBuffer;)V
782  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenBuffers(JNIEnv * env,jobject,jint n,jobject buffers)783 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenBuffers
784   (JNIEnv *env, jobject, jint n, jobject buffers)
785 {
786 	void* dataPtr = getDirectBufferPointer( env, buffers );
787 	glGenBuffers( n, (GLuint*)dataPtr );
788 }
789 
790 /*
791  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
792  * Method:    glGenBuffer
793  * Signature: ()I
794  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenBuffer(JNIEnv *,jobject)795 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenBuffer
796   (JNIEnv *, jobject)
797 {
798 	GLuint result;
799 	glGenBuffers( 1, &result);
800 	return result;
801 }
802 
803 /*
804  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
805  * Method:    glGenerateMipmap
806  * Signature: (I)V
807  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenerateMipmap(JNIEnv * env,jobject,jint target)808 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenerateMipmap
809   (JNIEnv *env, jobject, jint target)
810 {
811 	glGenerateMipmap( target );
812 }
813 
814 /*
815  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
816  * Method:    glGenFramebuffers
817  * Signature: (ILjava/nio/IntBuffer;)V
818  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenFramebuffers(JNIEnv * env,jobject,jint n,jobject framebuffers)819 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenFramebuffers
820   (JNIEnv *env, jobject, jint n, jobject framebuffers)
821 {
822 	void* dataPtr = getDirectBufferPointer( env, framebuffers );
823 	glGenFramebuffers( n, (GLuint*)dataPtr );
824 }
825 
826 /*
827  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
828  * Method:    glGenFramebuffer
829  * Signature: ()I
830  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenFramebuffer(JNIEnv *,jobject)831 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenFramebuffer
832   (JNIEnv *, jobject)
833 {
834 	GLuint result;
835 	glGenFramebuffers(1, &result);
836 	return result;
837 }
838 
839 /*
840  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
841  * Method:    glGenRenderbuffers
842  * Signature: (ILjava/nio/IntBuffer;)V
843  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenRenderbuffers(JNIEnv * env,jobject,jint n,jobject renderbuffers)844 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenRenderbuffers
845   (JNIEnv *env, jobject, jint n, jobject renderbuffers)
846 {
847 	void* dataPtr = getDirectBufferPointer( env, renderbuffers );
848 	glGenRenderbuffers( n, (GLuint*)dataPtr );
849 }
850 
851 /*
852  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
853  * Method:    glGenRenderbuffer
854  * Signature: ()I
855  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenRenderbuffer(JNIEnv *,jobject)856 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenRenderbuffer
857   (JNIEnv *, jobject)
858 {
859 	GLuint result;
860 	glGenRenderbuffers( 1, &result);
861 	return result;
862 }
863 
864 /*
865  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
866  * Method:    glGenTextures
867  * Signature: (ILjava/nio/IntBuffer;)V
868  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenTextures(JNIEnv * env,jobject,jint n,jobject textures)869 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenTextures
870   (JNIEnv *env, jobject, jint n, jobject textures)
871 {
872 	void* dataPtr = getDirectBufferPointer( env, textures );
873 	glGenTextures( n, (GLuint*)dataPtr );
874 }
875 
876 /*
877  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
878  * Method:    glGenTexture
879  * Signature: ()I
880  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenTexture(JNIEnv *,jobject)881 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGenTexture
882   (JNIEnv *, jobject)
883 {
884 	GLuint result;
885 	glGenTextures(1, &result);
886 	return result;
887 }
888 
889 /*
890  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
891  * Method:    glGetActiveAttrib
892  * Signature: (IIILjava/nio/Buffer;Ljava/nio/IntBuffer;Ljava/nio/Buffer;Ljava/lang/String;)V
893  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetActiveAttrib(JNIEnv * env,jobject,jint program,jint index,jobject size,jobject type)894 JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetActiveAttrib
895   (JNIEnv *env, jobject, jint program, jint index, jobject size, jobject type )
896 {
897 	// FIXME is this wrong?
898 	char cname[2048];
899 	void* sizePtr = getDirectBufferPointer( env, size );
900 	void* typePtr = getDirectBufferPointer( env, type );
901 	glGetActiveAttrib( program, index, 2048, NULL, (GLint*)sizePtr, (GLenum*)typePtr, cname );
902 
903 	return env->NewStringUTF( cname );
904 }
905 
906 /*
907  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
908  * Method:    glGetActiveUniform
909  * Signature: (IIILjava/nio/Buffer;Ljava/nio/IntBuffer;Ljava/nio/Buffer;Ljava/lang/String;)V
910  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetActiveUniform(JNIEnv * env,jobject,jint program,jint index,jobject size,jobject type)911 JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetActiveUniform
912   (JNIEnv *env, jobject, jint program, jint index, jobject size, jobject type)
913 {
914 	// FIXME is this wrong?
915 	char cname[2048];
916 	void* sizePtr = getDirectBufferPointer( env, size );
917 	void* typePtr = getDirectBufferPointer( env, type );
918 	glGetActiveUniform( program, index, 2048, NULL, (GLint*)sizePtr, (GLenum*)typePtr, cname );
919 
920 	return env->NewStringUTF( cname );
921 }
922 
923 /*
924  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
925  * Method:    glGetAttachedShaders
926  * Signature: (IILjava/nio/Buffer;Ljava/nio/IntBuffer;)V
927  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetAttachedShaders(JNIEnv * env,jobject,jint program,jint maxcount,jobject count,jobject shaders)928 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetAttachedShaders
929   (JNIEnv *env, jobject, jint program, jint maxcount, jobject count, jobject shaders)
930 {
931 	void* countPtr = getDirectBufferPointer( env, count );
932 	void* shaderPtr = getDirectBufferPointer( env, shaders );
933 	glGetAttachedShaders( program, maxcount, (GLsizei*)countPtr, (GLuint*)shaderPtr );
934 }
935 
936 /*
937  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
938  * Method:    glGetAttribLocation
939  * Signature: (ILjava/lang/String;)I
940  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetAttribLocation(JNIEnv * env,jobject,jint program,jstring name)941 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetAttribLocation
942   (JNIEnv *env, jobject, jint program, jstring name)
943 {
944 	const char* cname = getString( env, name );
945 	int loc = glGetAttribLocation( program, cname );
946 	releaseString( env, name, cname );
947 	return loc;
948 }
949 
950 /*
951  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
952  * Method:    glGetBooleanv
953  * Signature: (ILjava/nio/Buffer;)V
954  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetBooleanv(JNIEnv * env,jobject,jint program,jobject params)955 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetBooleanv
956   (JNIEnv *env, jobject, jint program, jobject params)
957 {
958 	void* dataPtr = getDirectBufferPointer( env, params );
959 	glGetBooleanv( program, (GLboolean*)dataPtr );
960 }
961 
962 /*
963  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
964  * Method:    glGetBufferParameteriv
965  * Signature: (IILjava/nio/IntBuffer;)V
966  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetBufferParameteriv(JNIEnv * env,jobject,jint target,jint pname,jobject params)967 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetBufferParameteriv
968   (JNIEnv *env, jobject, jint target, jint pname, jobject params)
969 {
970 	void* dataPtr = getDirectBufferPointer( env, params );
971 	glGetBufferParameteriv( target, pname, (GLint*)dataPtr );
972 }
973 
974 /*
975  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
976  * Method:    glGetError
977  * Signature: ()I
978  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetError(JNIEnv * env,jobject)979 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetError
980   (JNIEnv *env, jobject)
981 {
982 	return glGetError();
983 }
984 
985 /*
986  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
987  * Method:    glGetFloatv
988  * Signature: (ILjava/nio/FloatBuffer;)V
989  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetFloatv(JNIEnv * env,jobject,jint pname,jobject params)990 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetFloatv
991   (JNIEnv *env, jobject, jint pname, jobject params)
992 {
993 	void* dataPtr = getDirectBufferPointer( env, params );
994 	glGetFloatv( pname, (GLfloat*)dataPtr );
995 }
996 
997 /*
998  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
999  * Method:    glGetFramebufferAttachmentParameteriv
1000  * Signature: (IIILjava/nio/IntBuffer;)V
1001  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetFramebufferAttachmentParameteriv(JNIEnv * env,jobject,jint target,jint attachment,jint pname,jobject params)1002 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetFramebufferAttachmentParameteriv
1003   (JNIEnv *env, jobject, jint target, jint attachment, jint pname, jobject params)
1004 {
1005 	void* dataPtr = getDirectBufferPointer( env, params );
1006 	glGetFramebufferAttachmentParameteriv( target, attachment, pname, (GLint*)dataPtr );
1007 }
1008 
1009 /*
1010  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1011  * Method:    glGetIntegerv
1012  * Signature: (ILjava/nio/IntBuffer;)V
1013  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetIntegerv(JNIEnv * env,jobject,jint pname,jobject params)1014 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetIntegerv
1015   (JNIEnv *env, jobject, jint pname, jobject params)
1016 {
1017 	void* dataPtr = getDirectBufferPointer( env, params );
1018 	glGetIntegerv( pname, (GLint*)dataPtr);
1019 }
1020 
1021 /*
1022  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1023  * Method:    glGetProgramiv
1024  * Signature: (IILjava/nio/IntBuffer;)V
1025  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetProgramiv(JNIEnv * env,jobject,jint program,jint pname,jobject params)1026 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetProgramiv
1027   (JNIEnv *env, jobject, jint program, jint pname, jobject params)
1028 {
1029 	void *dataPtr = getDirectBufferPointer( env, params );
1030 	glGetProgramiv( program, pname, (GLint*)dataPtr );
1031 }
1032 
1033 /*
1034  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1035  * Method:    glGetProgramInfoLog
1036  * Signature: (IILjava/nio/Buffer;Ljava/lang/String;)V
1037  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetProgramInfoLog(JNIEnv * env,jobject,jint program)1038 JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetProgramInfoLog
1039   (JNIEnv *env, jobject, jint program )
1040 {
1041 	char info[1024*10]; // FIXME 10k limit should suffice
1042 	int length = 0;
1043 	glGetProgramInfoLog( program, 1024*10, &length, info );
1044 	return env->NewStringUTF( info );
1045 }
1046 
1047 /*
1048  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1049  * Method:    glGetRenderbufferParameteriv
1050  * Signature: (IILjava/nio/IntBuffer;)V
1051  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetRenderbufferParameteriv(JNIEnv * env,jobject,jint target,jint pname,jobject params)1052 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetRenderbufferParameteriv
1053   (JNIEnv *env, jobject, jint target, jint pname, jobject params)
1054 {
1055 	void* dataPtr = getDirectBufferPointer( env, params );
1056 	glGetRenderbufferParameteriv( target, pname, (GLint*)dataPtr );
1057 }
1058 
1059 /*
1060  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1061  * Method:    glGetShaderiv
1062  * Signature: (IILjava/nio/IntBuffer;)V
1063  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetShaderiv(JNIEnv * env,jobject,jint shader,jint pname,jobject params)1064 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetShaderiv
1065   (JNIEnv *env, jobject, jint shader, jint pname, jobject params)
1066 {
1067 	void* dataPtr = getDirectBufferPointer( env, params );
1068 	glGetShaderiv( shader, pname, (GLint*)dataPtr );
1069 }
1070 
1071 /*
1072  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1073  * Method:    glGetShaderInfoLog
1074  * Signature: (IILjava/nio/Buffer;Ljava/lang/String;)V
1075  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetShaderInfoLog(JNIEnv * env,jobject,jint shader)1076 JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetShaderInfoLog
1077   (JNIEnv *env, jobject, jint shader )
1078 {
1079 	char info[1024*10]; // FIXME 10k limit should suffice
1080 	int length = 0;
1081 	glGetShaderInfoLog( shader, 1024*10, &length, info );
1082 	return env->NewStringUTF( info );
1083 }
1084 
1085 /*
1086  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1087  * Method:    glGetShaderPrecisionFormat
1088  * Signature: (IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V
1089  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetShaderPrecisionFormat(JNIEnv * env,jobject,jint shadertype,jint precisiontype,jobject range,jobject precision)1090 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetShaderPrecisionFormat
1091   (JNIEnv *env, jobject, jint shadertype, jint precisiontype, jobject range, jobject precision)
1092 {
1093 	void* rangePtr = getDirectBufferPointer( env, range );
1094 	void* precisionPtr = getDirectBufferPointer( env, precision );
1095 	glGetShaderPrecisionFormat( shadertype, precisiontype, (GLint*)rangePtr, (GLint*)precisionPtr );
1096 }
1097 
1098 /*
1099  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1100  * Method:    glGetShaderSource
1101  * Signature: (IILjava/nio/Buffer;Ljava/lang/String;)V
1102  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetShaderSource(JNIEnv * env,jobject,jint shader,jint bufsize,jobject length,jstring source)1103 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetShaderSource
1104   (JNIEnv *env, jobject, jint shader, jint bufsize, jobject length, jstring source)
1105 {
1106 	env->ThrowNew(UOEClass, "This method is not supported"); // FIXME won't implement this shit.
1107 }
1108 
1109 /*
1110  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1111  * Method:    glGetString
1112  * Signature: (I)Ljava/lang/String;
1113  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetString(JNIEnv * env,jobject,jint name)1114 JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetString
1115   (JNIEnv *env, jobject, jint name)
1116 {
1117 	const char * chars = (const char *)glGetString((GLenum)name);
1118 	jstring output = env->NewStringUTF(chars);
1119 	return output;
1120 }
1121 
1122 /*
1123  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1124  * Method:    glGetTexParameterfv
1125  * Signature: (IILjava/nio/FloatBuffer;)V
1126  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetTexParameterfv(JNIEnv * env,jobject,jint target,jint pname,jobject params)1127 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetTexParameterfv
1128   (JNIEnv *env, jobject, jint target, jint pname, jobject params)
1129 {
1130 	void* dataPtr = getDirectBufferPointer( env, params );
1131 	glGetTexParameterfv( target, pname, (GLfloat*)dataPtr );
1132 }
1133 
1134 /*
1135  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1136  * Method:    glGetTexParameteriv
1137  * Signature: (IILjava/nio/IntBuffer;)V
1138  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetTexParameteriv(JNIEnv * env,jobject,jint target,jint pname,jobject params)1139 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetTexParameteriv
1140   (JNIEnv *env, jobject, jint target, jint pname, jobject params)
1141 {
1142 	void* dataPtr = getDirectBufferPointer( env, params );
1143 	glGetTexParameteriv( target, pname, (GLint*)dataPtr );
1144 }
1145 
1146 /*
1147  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1148  * Method:    glGetUniformfv
1149  * Signature: (IILjava/nio/FloatBuffer;)V
1150  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetUniformfv(JNIEnv * env,jobject,jint program,jint location,jobject params)1151 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetUniformfv
1152   (JNIEnv *env, jobject, jint program, jint location, jobject params)
1153 {
1154 	void* dataPtr = getDirectBufferPointer( env, params );
1155 	glGetUniformfv( program, location, (GLfloat*)dataPtr );
1156 }
1157 
1158 /*
1159  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1160  * Method:    glGetUniformiv
1161  * Signature: (IILjava/nio/IntBuffer;)V
1162  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetUniformiv(JNIEnv * env,jobject,jint program,jint location,jobject params)1163 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetUniformiv
1164   (JNIEnv *env, jobject, jint program, jint location, jobject params)
1165 {
1166 	void* dataPtr = getDirectBufferPointer( env, params );
1167 	glGetUniformiv( program, location, (GLint*)dataPtr );
1168 }
1169 
1170 /*
1171  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1172  * Method:    glGetUniformLocation
1173  * Signature: (ILjava/lang/String;)I
1174  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetUniformLocation(JNIEnv * env,jobject,jint program,jstring name)1175 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetUniformLocation
1176   (JNIEnv *env, jobject, jint program, jstring name)
1177 {
1178 	const char* cname = getString( env, name );
1179 	int location = glGetUniformLocation( program, cname );
1180 	releaseString( env, name, cname );
1181 	return location;
1182 }
1183 
1184 /*
1185  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1186  * Method:    glGetVertexAttribfv
1187  * Signature: (IILjava/nio/FloatBuffer;)V
1188  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetVertexAttribfv(JNIEnv * env,jobject,jint index,jint pname,jobject params)1189 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetVertexAttribfv
1190   (JNIEnv *env, jobject, jint index, jint pname, jobject params)
1191 {
1192 	void* dataPtr = getDirectBufferPointer( env, params );
1193 	glGetVertexAttribfv( index, pname, (GLfloat*)dataPtr );
1194 }
1195 
1196 /*
1197  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1198  * Method:    glGetVertexAttribiv
1199  * Signature: (IILjava/nio/IntBuffer;)V
1200  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetVertexAttribiv(JNIEnv * env,jobject,jint index,jint pname,jobject params)1201 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetVertexAttribiv
1202   (JNIEnv *env, jobject, jint index, jint pname, jobject params)
1203 {
1204 	void* dataPtr = getDirectBufferPointer( env, params );
1205 	glGetVertexAttribiv( index, pname, (GLint*)dataPtr );
1206 }
1207 
1208 /*
1209  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1210  * Method:    glGetVertexAttribPointerv
1211  * Signature: (IILjava/nio/Buffer;)V
1212  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetVertexAttribPointerv(JNIEnv * env,jobject,jint index,jint pname,jobject pointer)1213 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glGetVertexAttribPointerv
1214   (JNIEnv *env, jobject, jint index, jint pname, jobject pointer)
1215 {
1216 	env->ThrowNew(UOEClass, "This method is not supported"); // FIXME won't implement this shit
1217 }
1218 
1219 /*
1220  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1221  * Method:    glHint
1222  * Signature: (II)V
1223  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glHint(JNIEnv * env,jobject,jint target,jint mode)1224 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glHint
1225   (JNIEnv *env, jobject, jint target, jint mode)
1226 {
1227 	glHint( target, mode );
1228 }
1229 
1230 /*
1231  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1232  * Method:    glIsBuffer
1233  * Signature: (I)C
1234  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsBuffer(JNIEnv * env,jobject,jint buffer)1235 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsBuffer
1236   (JNIEnv *env, jobject, jint buffer)
1237 {
1238 	return glIsBuffer( buffer );
1239 }
1240 
1241 /*
1242  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1243  * Method:    glIsEnabled
1244  * Signature: (I)C
1245  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsEnabled(JNIEnv * env,jobject,jint cap)1246 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsEnabled
1247   (JNIEnv *env, jobject, jint cap)
1248 {
1249 	return glIsEnabled( cap );
1250 }
1251 
1252 /*
1253  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1254  * Method:    glIsFramebuffer
1255  * Signature: (I)C
1256  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsFramebuffer(JNIEnv * env,jobject,jint framebuffer)1257 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsFramebuffer
1258   (JNIEnv *env, jobject, jint framebuffer)
1259 {
1260 	return glIsFramebuffer( framebuffer );
1261 }
1262 
1263 /*
1264  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1265  * Method:    glIsProgram
1266  * Signature: (I)C
1267  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsProgram(JNIEnv * env,jobject,jint program)1268 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsProgram
1269   (JNIEnv *env, jobject, jint program)
1270 {
1271 	return glIsProgram( program );
1272 }
1273 
1274 /*
1275  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1276  * Method:    glIsRenderbuffer
1277  * Signature: (I)C
1278  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsRenderbuffer(JNIEnv * env,jobject,jint renderbuffer)1279 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsRenderbuffer
1280   (JNIEnv *env, jobject, jint renderbuffer)
1281 {
1282 	return glIsRenderbuffer( renderbuffer );
1283 }
1284 
1285 /*
1286  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1287  * Method:    glIsShader
1288  * Signature: (I)C
1289  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsShader(JNIEnv * env,jobject,jint shader)1290 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsShader
1291   (JNIEnv *env, jobject, jint shader)
1292 {
1293 	return glIsShader( shader );
1294 }
1295 
1296 /*
1297  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1298  * Method:    glIsTexture
1299  * Signature: (I)C
1300  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsTexture(JNIEnv * env,jobject,jint texture)1301 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glIsTexture
1302   (JNIEnv *env, jobject, jint texture)
1303 {
1304 	return glIsTexture( texture );
1305 }
1306 
1307 /*
1308  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1309  * Method:    glLineWidth
1310  * Signature: (F)V
1311  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glLineWidth(JNIEnv * env,jobject,jfloat width)1312 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glLineWidth
1313   (JNIEnv *env, jobject, jfloat width)
1314 {
1315 	glLineWidth( width );
1316 }
1317 
1318 /*
1319  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1320  * Method:    glLinkProgram
1321  * Signature: (I)V
1322  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glLinkProgram(JNIEnv * env,jobject,jint program)1323 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glLinkProgram
1324   (JNIEnv *env, jobject, jint program)
1325 {
1326 	glLinkProgram( program );
1327 }
1328 
1329 /*
1330  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1331  * Method:    glPixelStorei
1332  * Signature: (II)V
1333  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glPixelStorei(JNIEnv * env,jobject,jint pname,jint param)1334 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glPixelStorei
1335   (JNIEnv *env, jobject, jint pname, jint param)
1336 {
1337 	glPixelStorei( pname, param );
1338 }
1339 
1340 /*
1341  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1342  * Method:    glPolygonOffset
1343  * Signature: (FF)V
1344  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glPolygonOffset(JNIEnv * env,jobject,jfloat factor,jfloat units)1345 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glPolygonOffset
1346   (JNIEnv *env, jobject, jfloat factor, jfloat units)
1347 {
1348 	glPolygonOffset( factor, units );
1349 }
1350 
1351 /*
1352  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1353  * Method:    glReadPixels
1354  * Signature: (IIIIIILjava/nio/Buffer;)V
1355  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glReadPixels(JNIEnv * env,jobject,jint x,jint y,jint width,jint height,jint format,jint type,jobject pixels)1356 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glReadPixels
1357   (JNIEnv *env, jobject, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels)
1358 {
1359 	void* dataPtr = getDirectBufferPointer( env, pixels );
1360 	glReadPixels( x, y, width, height, format, type, dataPtr );
1361 }
1362 
1363 /*
1364  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1365  * Method:    glReleaseShaderCompiler
1366  * Signature: ()V
1367  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glReleaseShaderCompiler(JNIEnv * env,jobject)1368 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glReleaseShaderCompiler
1369   (JNIEnv *env, jobject)
1370 {
1371 	glReleaseShaderCompiler();
1372 }
1373 
1374 /*
1375  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1376  * Method:    glRenderbufferStorage
1377  * Signature: (IIII)V
1378  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glRenderbufferStorage(JNIEnv * env,jobject,jint target,jint internalFormat,jint width,jint height)1379 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glRenderbufferStorage
1380   (JNIEnv *env, jobject, jint target, jint internalFormat, jint width, jint height)
1381 {
1382 	glRenderbufferStorage( target, internalFormat, width, height );
1383 }
1384 
1385 /*
1386  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1387  * Method:    glSampleCoverage
1388  * Signature: (FZ)V
1389  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glSampleCoverage(JNIEnv * env,jobject,jfloat value,jboolean inver)1390 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glSampleCoverage
1391   (JNIEnv *env, jobject, jfloat value, jboolean inver)
1392 {
1393 	glSampleCoverage( value, inver );
1394 }
1395 
1396 /*
1397  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1398  * Method:    glScissor
1399  * Signature: (IIII)V
1400  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glScissor(JNIEnv * env,jobject,jint x,jint y,jint width,jint height)1401 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glScissor
1402   (JNIEnv *env, jobject, jint x, jint y, jint width, jint height)
1403 {
1404 	glScissor( x, y, width, height );
1405 }
1406 
1407 /*
1408  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1409  * Method:    glShaderBinary
1410  * Signature: (ILjava/nio/IntBuffer;ILjava/nio/Buffer;I)V
1411  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glShaderBinary(JNIEnv * env,jobject,jint n,jobject shaders,jint binaryformat,jobject binary,jint length)1412 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glShaderBinary
1413   (JNIEnv *env, jobject, jint n, jobject shaders, jint binaryformat, jobject binary, jint length)
1414 {
1415 	void* shaderPtr = getDirectBufferPointer( env, shaders );
1416 	void* binaryPtr = getDirectBufferPointer( env, binary );
1417 	glShaderBinary( n, (GLuint*)shaderPtr, binaryformat, binaryPtr, length );
1418 }
1419 
1420 /*
1421  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1422  * Method:    glShaderSource
1423  * Signature: (IILjava/lang/String;Ljava/nio/IntBuffer;)V
1424  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glShaderSource(JNIEnv * env,jobject,jint shader,jstring string)1425 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glShaderSource
1426   (JNIEnv *env, jobject, jint shader, jstring string )
1427 {
1428 	const char* cstring = getString( env, string );
1429 	glShaderSource( shader, 1, &cstring, NULL );
1430 	releaseString( env, string, cstring );
1431 }
1432 
1433 /*
1434  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1435  * Method:    glStencilFunc
1436  * Signature: (III)V
1437  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilFunc(JNIEnv * env,jobject,jint func,jint ref,jint mask)1438 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilFunc
1439   (JNIEnv *env, jobject, jint func, jint ref, jint mask)
1440 {
1441 	glStencilFunc( func, ref, mask );
1442 }
1443 
1444 /*
1445  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1446  * Method:    glStencilFuncSeparate
1447  * Signature: (IIII)V
1448  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilFuncSeparate(JNIEnv * env,jobject,jint face,jint func,jint ref,jint mask)1449 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilFuncSeparate
1450   (JNIEnv *env, jobject, jint face, jint func, jint ref, jint mask)
1451 {
1452 	glStencilFuncSeparate( face, func, ref, mask );
1453 }
1454 
1455 /*
1456  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1457  * Method:    glStencilMask
1458  * Signature: (I)V
1459  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilMask(JNIEnv * env,jobject,jint mask)1460 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilMask
1461   (JNIEnv *env, jobject, jint mask)
1462 {
1463 	glStencilMask( mask );
1464 }
1465 
1466 /*
1467  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1468  * Method:    glStencilMaskSeparate
1469  * Signature: (II)V
1470  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilMaskSeparate(JNIEnv * env,jobject,jint face,jint mask)1471 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilMaskSeparate
1472   (JNIEnv *env, jobject, jint face, jint mask)
1473 {
1474 	glStencilMaskSeparate( face, mask );
1475 }
1476 
1477 /*
1478  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1479  * Method:    glStencilOp
1480  * Signature: (III)V
1481  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilOp(JNIEnv * env,jobject,jint fail,jint zFail,jint zpass)1482 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilOp
1483   (JNIEnv *env, jobject, jint fail, jint zFail, jint zpass)
1484 {
1485 	glStencilOp( fail, zFail, zpass );
1486 }
1487 
1488 /*
1489  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1490  * Method:    glStencilOpSeparate
1491  * Signature: (IIII)V
1492  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilOpSeparate(JNIEnv * env,jobject,jint face,jint fail,jint zFail,jint zPass)1493 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glStencilOpSeparate
1494   (JNIEnv *env, jobject, jint face, jint fail, jint zFail, jint zPass)
1495 {
1496 	glStencilOpSeparate( face, fail, zFail, zPass );
1497 }
1498 
1499 /*
1500  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1501  * Method:    glTexImage2D
1502  * Signature: (IIIIIIIILjava/nio/Buffer;)V
1503  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexImage2D(JNIEnv * env,jobject,jint target,jint level,jint internalformat,jint width,jint height,jint border,jint format,jint type,jobject pixels)1504 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexImage2D
1505   (JNIEnv *env, jobject, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels)
1506 {
1507 	void* dataPtr = getDirectBufferPointer( env, pixels );
1508 	glTexImage2D( target, level, internalformat, width, height, border, format, type, dataPtr );
1509 }
1510 
1511 /*
1512  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1513  * Method:    glTexParameterf
1514  * Signature: (IIF)V
1515  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexParameterf(JNIEnv * env,jobject,jint target,jint pname,jfloat param)1516 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexParameterf
1517   (JNIEnv *env, jobject, jint target, jint pname, jfloat param)
1518 {
1519 	glTexParameterf( target, pname, param );
1520 }
1521 
1522 /*
1523  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1524  * Method:    glTexParameterfv
1525  * Signature: (IILjava/nio/FloatBuffer;)V
1526  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexParameterfv(JNIEnv * env,jobject,jint target,jint pname,jobject params)1527 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexParameterfv
1528   (JNIEnv *env, jobject, jint target, jint pname, jobject params)
1529 {
1530 	void* dataPtr = getDirectBufferPointer( env, params );
1531 	glTexParameterfv( target, pname, (GLfloat*)dataPtr );
1532 }
1533 
1534 /*
1535  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1536  * Method:    glTexParameteri
1537  * Signature: (III)V
1538  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexParameteri(JNIEnv * env,jobject,jint target,jint pname,jint param)1539 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexParameteri
1540   (JNIEnv *env, jobject, jint target, jint pname, jint param)
1541 {
1542 	glTexParameteri( target, pname, param );
1543 }
1544 
1545 /*
1546  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1547  * Method:    glTexParameteriv
1548  * Signature: (IILjava/nio/IntBuffer;)V
1549  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexParameteriv(JNIEnv * env,jobject,jint target,jint pname,jobject params)1550 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexParameteriv
1551   (JNIEnv *env, jobject, jint target, jint pname, jobject params)
1552 {
1553 	void* dataPtr = getDirectBufferPointer( env, params );
1554 	glTexParameteriv( target, pname, (GLint*)dataPtr );
1555 }
1556 
1557 /*
1558  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1559  * Method:    glTexSubImage2D
1560  * Signature: (IIIIIIIILjava/nio/Buffer;)V
1561  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexSubImage2D(JNIEnv * env,jobject,jint target,jint level,jint xoffset,jint yoffset,jint width,jint height,jint format,jint type,jobject pixels)1562 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glTexSubImage2D
1563   (JNIEnv *env, jobject, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels)
1564 {
1565 	void* dataPtr = getDirectBufferPointer( env, pixels );
1566 	glTexSubImage2D( target, level, xoffset, yoffset, width, height, format, type, dataPtr );
1567 }
1568 
1569 /*
1570  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1571  * Method:    glUniform1f
1572  * Signature: (IF)V
1573  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1f(JNIEnv * env,jobject,jint location,jfloat x)1574 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1f
1575   (JNIEnv *env, jobject, jint location, jfloat x)
1576 {
1577 	glUniform1f( location, x );
1578 }
1579 
1580 /*
1581  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1582  * Method:    glUniform1fv
1583  * Signature: (IILjava/nio/FloatBuffer;)V
1584  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1fv__IILjava_nio_FloatBuffer_2(JNIEnv * env,jobject,jint location,jint count,jobject v)1585 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1fv__IILjava_nio_FloatBuffer_2
1586   (JNIEnv *env, jobject, jint location, jint count, jobject v)
1587 {
1588 	void* dataPtr = getDirectBufferPointer( env, v );
1589 	glUniform1fv( location, count, (GLfloat*)dataPtr );
1590 }
1591 
1592 /*
1593  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1594  * Method:    glUniform1fv
1595  * Signature: (II[FI)V
1596  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1fv__II_3FI(JNIEnv * env,jobject,jint location,jint count,jfloatArray value,jint offset)1597 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1fv__II_3FI
1598   (JNIEnv *env, jobject, jint location, jint count, jfloatArray value, jint offset)
1599 {
1600 	float* v = (float*)env->GetPrimitiveArrayCritical(value, 0);
1601 	glUniform1fv( location, count, (GLfloat*)&v[offset] );
1602 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1603 }
1604 
1605 /*
1606  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1607  * Method:    glUniform1i
1608  * Signature: (II)V
1609  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1i(JNIEnv * env,jobject,jint location,jint x)1610 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1i
1611   (JNIEnv *env, jobject, jint location, jint x)
1612 {
1613 	glUniform1i( location, x );
1614 }
1615 
1616 /*
1617  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1618  * Method:    glUniform1iv
1619  * Signature: (IILjava/nio/IntBuffer;)V
1620  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1iv__IILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint location,jint count,jobject v)1621 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1iv__IILjava_nio_IntBuffer_2
1622   (JNIEnv *env, jobject, jint location, jint count, jobject v)
1623 {
1624 	void* dataPtr = getDirectBufferPointer( env, v );
1625 	glUniform1iv( location, count, (GLint*)dataPtr );
1626 }
1627 
1628 /*
1629  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1630  * Method:    glUniform1iv
1631  * Signature: (II[II)V
1632  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1iv__II_3II(JNIEnv * env,jobject,jint location,jint count,jintArray value,jint offset)1633 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform1iv__II_3II
1634   (JNIEnv *env, jobject, jint location, jint count, jintArray value, jint offset)
1635 {
1636 	int* v = (int*)env->GetPrimitiveArrayCritical(value, 0);
1637 	glUniform1iv( location, count, (GLint*)&v[offset] );
1638 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1639 }
1640 
1641 /*
1642  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1643  * Method:    glUniform2f
1644  * Signature: (IFF)V
1645  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2f(JNIEnv * env,jobject,jint location,jfloat x,jfloat y)1646 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2f
1647   (JNIEnv *env, jobject, jint location, jfloat x, jfloat y)
1648 {
1649 	glUniform2f( location, x, y );
1650 }
1651 
1652 /*
1653  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1654  * Method:    glUniform2fv
1655  * Signature: (IILjava/nio/FloatBuffer;)V
1656  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2fv__IILjava_nio_FloatBuffer_2(JNIEnv * env,jobject,jint location,jint count,jobject v)1657 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2fv__IILjava_nio_FloatBuffer_2
1658   (JNIEnv *env, jobject, jint location, jint count, jobject v)
1659 {
1660 	void* dataPtr = getDirectBufferPointer( env, v );
1661 	glUniform2fv( location, count, (GLfloat*)dataPtr );
1662 }
1663 
1664 /*
1665  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1666  * Method:    glUniform2fv
1667  * Signature: (II[FI)V
1668  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2fv__II_3FI(JNIEnv * env,jobject,jint location,jint count,jfloatArray value,jint offset)1669 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2fv__II_3FI
1670   (JNIEnv *env, jobject, jint location, jint count, jfloatArray value, jint offset)
1671 {
1672 	float* v = (float*)env->GetPrimitiveArrayCritical(value, 0);
1673 	glUniform2fv( location, count, (GLfloat*)&v[offset] );
1674 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1675 }
1676 
1677 /*
1678  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1679  * Method:    glUniform2i
1680  * Signature: (III)V
1681  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2i(JNIEnv * env,jobject,jint location,jint x,jint y)1682 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2i
1683   (JNIEnv *env, jobject, jint location, jint x, jint y)
1684 {
1685 	glUniform2i( location, x, y );
1686 }
1687 
1688 /*
1689  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1690  * Method:    glUniform2iv
1691  * Signature: (IILjava/nio/IntBuffer;)V
1692  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2iv__IILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint location,jint count,jobject v)1693 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2iv__IILjava_nio_IntBuffer_2
1694   (JNIEnv *env, jobject, jint location, jint count, jobject v)
1695 {
1696 	void* dataPtr = getDirectBufferPointer( env, v );
1697 	glUniform2iv( location, count, (GLint*)dataPtr );
1698 }
1699 
1700 /*
1701  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1702  * Method:    glUniform2iv
1703  * Signature: (II[II)V
1704  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2iv__II_3II(JNIEnv * env,jobject,jint location,jint count,jintArray value,jint offset)1705 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform2iv__II_3II
1706   (JNIEnv *env, jobject, jint location, jint count, jintArray value, jint offset)
1707 {
1708 	int* v = (int*)env->GetPrimitiveArrayCritical(value, 0);
1709 	glUniform2iv( location, count, (GLint*)&v[offset] );
1710 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1711 }
1712 
1713 /*
1714  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1715  * Method:    glUniform3f
1716  * Signature: (IFFF)V
1717  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3f(JNIEnv * env,jobject,jint location,jfloat x,jfloat y,jfloat z)1718 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3f
1719   (JNIEnv *env, jobject, jint location, jfloat x, jfloat y, jfloat z)
1720 {
1721 	glUniform3f( location, x, y, z );
1722 }
1723 
1724 /*
1725  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1726  * Method:    glUniform3fv
1727  * Signature: (IILjava/nio/FloatBuffer;)V
1728  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3fv__IILjava_nio_FloatBuffer_2(JNIEnv * env,jobject,jint location,jint count,jobject v)1729 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3fv__IILjava_nio_FloatBuffer_2
1730   (JNIEnv *env, jobject, jint location, jint count, jobject v)
1731 {
1732 	void* dataPtr = getDirectBufferPointer( env, v );
1733 	glUniform3fv( location, count, (GLfloat*)dataPtr );
1734 }
1735 
1736 /*
1737  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1738  * Method:    glUniform3fv
1739  * Signature: (II[FI)V
1740  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3fv__II_3FI(JNIEnv * env,jobject,jint location,jint count,jfloatArray value,jint offset)1741 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3fv__II_3FI
1742   (JNIEnv *env, jobject, jint location, jint count, jfloatArray value, jint offset)
1743 {
1744 	float* v = (float*)env->GetPrimitiveArrayCritical(value, 0);
1745 	glUniform3fv( location, count, (GLfloat*)&v[offset] );
1746 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1747 }
1748 
1749 /*
1750  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1751  * Method:    glUniform3i
1752  * Signature: (IIII)V
1753  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3i(JNIEnv * env,jobject,jint location,jint x,jint y,jint z)1754 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3i
1755   (JNIEnv *env, jobject, jint location, jint x, jint y, jint z)
1756 {
1757 	glUniform3i( location, x, y, z );
1758 }
1759 
1760 /*
1761  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1762  * Method:    glUniform3iv
1763  * Signature: (IILjava/nio/IntBuffer;)V
1764  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3iv__IILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint location,jint count,jobject v)1765 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3iv__IILjava_nio_IntBuffer_2
1766   (JNIEnv *env, jobject, jint location, jint count, jobject v)
1767 {
1768 	void* dataPtr = getDirectBufferPointer( env, v );
1769 	glUniform3iv( location, count, (GLint*)dataPtr );
1770 }
1771 
1772 /*
1773  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1774  * Method:    glUniform3iv
1775  * Signature: (II[II)V
1776  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3iv__II_3II(JNIEnv * env,jobject,jint location,jint count,jintArray value,jint offset)1777 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform3iv__II_3II
1778   (JNIEnv *env, jobject, jint location, jint count, jintArray value, jint offset)
1779 {
1780 	int* v = (int*)env->GetPrimitiveArrayCritical(value, 0);
1781 	glUniform3iv( location, count, (GLint*)&v[offset] );
1782 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1783 }
1784 
1785 /*
1786  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1787  * Method:    glUniform4f
1788  * Signature: (IFFFF)V
1789  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4f(JNIEnv * env,jobject,jint location,jfloat x,jfloat y,jfloat z,jfloat w)1790 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4f
1791   (JNIEnv *env, jobject, jint location, jfloat x, jfloat y, jfloat z, jfloat w)
1792 {
1793 	glUniform4f( location, x, y, z, w );
1794 }
1795 
1796 /*
1797  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1798  * Method:    glUniform4fv
1799  * Signature: (IILjava/nio/FloatBuffer;)V
1800  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4fv__IILjava_nio_FloatBuffer_2(JNIEnv * env,jobject,jint location,jint count,jobject v)1801 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4fv__IILjava_nio_FloatBuffer_2
1802   (JNIEnv *env, jobject, jint location, jint count, jobject v)
1803 {
1804 	void* dataPtr = getDirectBufferPointer( env, v );
1805 	glUniform4fv( location, count, (GLfloat*)dataPtr );
1806 }
1807 
1808 /*
1809  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1810  * Method:    glUniform4fv
1811  * Signature: (II[FI)V
1812  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4fv__II_3FI(JNIEnv * env,jobject,jint location,jint count,jfloatArray value,jint offset)1813 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4fv__II_3FI
1814   (JNIEnv *env, jobject, jint location, jint count, jfloatArray value, jint offset)
1815 {
1816 	float* v = (float*)env->GetPrimitiveArrayCritical(value, 0);
1817 	glUniform4fv( location, count, (GLfloat*)&v[offset] );
1818 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1819 }
1820 
1821 /*
1822  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1823  * Method:    glUniform4i
1824  * Signature: (IIIII)V
1825  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4i(JNIEnv * env,jobject,jint location,jint x,jint y,jint z,jint w)1826 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4i
1827   (JNIEnv *env, jobject, jint location, jint x, jint y, jint z, jint w)
1828 {
1829 	glUniform4i( location, x, y, z, w );
1830 }
1831 
1832 /*
1833  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1834  * Method:    glUniform4iv
1835  * Signature: (IILjava/nio/IntBuffer;)V
1836  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4iv__IILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint location,jint count,jobject v)1837 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4iv__IILjava_nio_IntBuffer_2
1838   (JNIEnv *env, jobject, jint location, jint count, jobject v)
1839 {
1840 	void* dataPtr = getDirectBufferPointer( env, v );
1841 	glUniform4iv( location, count, (GLint*)dataPtr );
1842 }
1843 
1844 /*
1845  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1846  * Method:    glUniform4iv
1847  * Signature: (II[II)V
1848  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4iv__II_3II(JNIEnv * env,jobject,jint location,jint count,jintArray value,jint offset)1849 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniform4iv__II_3II
1850   (JNIEnv *env, jobject, jint location, jint count, jintArray value, jint offset)
1851 {
1852 	int* v = (int*)env->GetPrimitiveArrayCritical(value, 0);
1853 	glUniform4iv( location, count, (GLint*)&v[offset] );
1854 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1855 }
1856 
1857 /*
1858  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1859  * Method:    glUniformMatrix2fv
1860  * Signature: (IIZLjava/nio/FloatBuffer;)V
1861  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jobject value)1862 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2
1863   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value)
1864 {
1865 	void* dataPtr = getDirectBufferPointer( env, value );
1866 	glUniformMatrix2fv( location, count, transpose, (GLfloat*)dataPtr );
1867 }
1868 
1869 /*
1870  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1871  * Method:    glUniformMatrix2fv
1872  * Signature: (IIZ[FI)V
1873  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix2fv__IIZ_3FI(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jfloatArray value,jint offset)1874 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix2fv__IIZ_3FI
1875   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jfloatArray value, jint offset)
1876 {
1877 	float* v = (float*)env->GetPrimitiveArrayCritical(value, 0);
1878 	glUniformMatrix2fv( location, count, transpose, (GLfloat*)&v[offset] );
1879 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1880 }
1881 
1882 /*
1883  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1884  * Method:    glUniformMatrix3fv
1885  * Signature: (IIZLjava/nio/FloatBuffer;)V
1886  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jobject value)1887 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2
1888   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value)
1889 {
1890 	void* dataPtr = getDirectBufferPointer( env, value );
1891 	glUniformMatrix3fv( location, count, transpose, (GLfloat*)dataPtr );
1892 }
1893 
1894 /*
1895  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1896  * Method:    glUniformMatrix3fv
1897  * Signature: (IIZ[FI)V
1898  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix3fv__IIZ_3FI(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jfloatArray value,jint offset)1899 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix3fv__IIZ_3FI
1900   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jfloatArray value, jint offset)
1901 {
1902 	float* v = (float*)env->GetPrimitiveArrayCritical(value, 0);
1903 	glUniformMatrix3fv( location, count, transpose, (GLfloat*)&v[offset] );
1904 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1905 }
1906 
1907 /*
1908  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1909  * Method:    glUniformMatrix4fv
1910  * Signature: (IIZLjava/nio/FloatBuffer;)V
1911  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jobject value)1912 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2
1913   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value)
1914 {
1915 	void* dataPtr = getDirectBufferPointer( env, value );
1916 	glUniformMatrix4fv( location, count, transpose, (GLfloat*)dataPtr );
1917 }
1918 
1919 /*
1920  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1921  * Method:    glUniformMatrix4fv
1922  * Signature: (IIZ[FI)V
1923  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix4fv__IIZ_3FI(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jfloatArray value,jint offset)1924 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUniformMatrix4fv__IIZ_3FI
1925   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jfloatArray value, jint offset)
1926 {
1927 	float* v = (float*)env->GetPrimitiveArrayCritical(value, 0);
1928 	glUniformMatrix4fv( location, count, transpose, (GLfloat*)&v[offset] );
1929 	env->ReleasePrimitiveArrayCritical(value, v, 0);
1930 }
1931 
1932 /*
1933  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1934  * Method:    glUseProgram
1935  * Signature: (I)V
1936  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glUseProgram(JNIEnv * env,jobject,jint program)1937 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glUseProgram
1938   (JNIEnv *env, jobject, jint program)
1939 {
1940 	glUseProgram( program );
1941 }
1942 
1943 /*
1944  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1945  * Method:    glValidateProgram
1946  * Signature: (I)V
1947  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glValidateProgram(JNIEnv * env,jobject,jint program)1948 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glValidateProgram
1949   (JNIEnv *env, jobject, jint program)
1950 {
1951 	glValidateProgram( program );
1952 }
1953 
1954 /*
1955  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1956  * Method:    glVertexAttrib1f
1957  * Signature: (IF)V
1958  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib1f(JNIEnv * env,jobject,jint indx,jfloat x)1959 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib1f
1960   (JNIEnv *env, jobject, jint indx, jfloat x)
1961 {
1962 	glVertexAttrib1f( indx, x );
1963 }
1964 
1965 /*
1966  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1967  * Method:    glVertexAttrib1fv
1968  * Signature: (ILjava/nio/FloatBuffer;)V
1969  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib1fv(JNIEnv * env,jobject,jint indx,jobject values)1970 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib1fv
1971   (JNIEnv *env, jobject, jint indx, jobject values)
1972 {
1973 	void* dataPtr = getDirectBufferPointer( env, values );
1974 	glVertexAttrib1fv( indx, (GLfloat*)dataPtr );
1975 }
1976 
1977 /*
1978  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1979  * Method:    glVertexAttrib2f
1980  * Signature: (IFF)V
1981  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib2f(JNIEnv * env,jobject,jint indx,jfloat x,jfloat y)1982 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib2f
1983   (JNIEnv *env, jobject, jint indx, jfloat x, jfloat y)
1984 {
1985 	glVertexAttrib2f( indx, x, y );
1986 }
1987 
1988 /*
1989  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
1990  * Method:    glVertexAttrib2fv
1991  * Signature: (ILjava/nio/FloatBuffer;)V
1992  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib2fv(JNIEnv * env,jobject,jint indx,jobject values)1993 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib2fv
1994   (JNIEnv *env, jobject, jint indx, jobject values)
1995 {
1996 	void* dataPtr = getDirectBufferPointer( env, values );
1997 	glVertexAttrib2fv( indx, (GLfloat*)dataPtr );
1998 }
1999 
2000 /*
2001  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
2002  * Method:    glVertexAttrib3f
2003  * Signature: (IFFF)V
2004  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib3f(JNIEnv * env,jobject,jint indx,jfloat x,jfloat y,jfloat z)2005 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib3f
2006   (JNIEnv *env, jobject, jint indx, jfloat x, jfloat y, jfloat z)
2007 {
2008 	glVertexAttrib3f( indx, x, y, z );
2009 }
2010 
2011 /*
2012  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
2013  * Method:    glVertexAttrib3fv
2014  * Signature: (ILjava/nio/FloatBuffer;)V
2015  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib3fv(JNIEnv * env,jobject,jint indx,jobject values)2016 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib3fv
2017   (JNIEnv *env, jobject, jint indx, jobject values)
2018 {
2019 	void* dataPtr = getDirectBufferPointer( env, values );
2020 	glVertexAttrib3fv( indx, (GLfloat*)dataPtr );
2021 }
2022 
2023 /*
2024  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
2025  * Method:    glVertexAttrib4f
2026  * Signature: (IFFFF)V
2027  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib4f(JNIEnv * env,jobject,jint indx,jfloat x,jfloat y,jfloat z,jfloat w)2028 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib4f
2029   (JNIEnv *env, jobject, jint indx, jfloat x, jfloat y, jfloat z, jfloat w)
2030 {
2031 	glVertexAttrib4f( indx, x, y, z, w );
2032 }
2033 
2034 /*
2035  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
2036  * Method:    glVertexAttrib4fv
2037  * Signature: (ILjava/nio/FloatBuffer;)V
2038  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib4fv(JNIEnv * env,jobject,jint indx,jobject values)2039 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttrib4fv
2040   (JNIEnv *env, jobject, jint indx, jobject values)
2041 {
2042 	void* dataPtr = getDirectBufferPointer( env, values );
2043 	glVertexAttrib4fv( indx, (GLfloat*)dataPtr );
2044 }
2045 
2046 /*
2047  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
2048  * Method:    glVertexAttribPointer
2049  * Signature: (IIIZILjava/nio/Buffer;)V
2050  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttribPointer__IIIZILjava_nio_Buffer_2(JNIEnv * env,jobject,jint indx,jint size,jint type,jboolean normalized,jint stride,jobject ptr)2051 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttribPointer__IIIZILjava_nio_Buffer_2
2052   (JNIEnv *env, jobject, jint indx, jint size, jint type, jboolean normalized, jint stride, jobject ptr)
2053 {
2054 	void* dataPtr = getDirectBufferPointer( env, ptr );
2055 	glVertexAttribPointer( indx, size, type, normalized, stride, dataPtr );
2056 }
2057 
Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttribPointer__IIIZII(JNIEnv *,jobject,jint indx,jint size,jint type,jboolean normalized,jint stride,jint ptr)2058 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glVertexAttribPointer__IIIZII
2059   (JNIEnv *, jobject, jint indx, jint size, jint type, jboolean normalized, jint stride, jint ptr)
2060 {
2061 	glVertexAttribPointer( indx, size, type, normalized, stride, (const void*)(uintptr_t)ptr );
2062 }
2063 
2064 /*
2065  * Class:     com_badlogic_gdx_backends_android_AndroidGL20
2066  * Method:    glViewport
2067  * Signature: (IIII)V
2068  */
Java_com_badlogic_gdx_backends_android_AndroidGL20_glViewport(JNIEnv * env,jobject,jint x,jint y,jint width,jint height)2069 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_android_AndroidGL20_glViewport
2070   (JNIEnv *env, jobject, jint x, jint y, jint width, jint height)
2071 {
2072 	glViewport( x, y, width, height );
2073 }
2074