• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifdef __APPLE__
2 #include <TargetConditionals.h>
3 
4 #if TARGET_OS_IPHONE
5 #include "iosgl30.h"
6 #include <OpenGLES/ES3/gl.h>
7 #include <OpenGLES/ES3/glext.h>
8 #include <stdio.h>
9 
10 static jclass bufferClass;
11 static jclass byteBufferClass;
12 static jclass charBufferClass;
13 static jclass shortBufferClass;
14 static jclass intBufferClass;
15 static jclass longBufferClass;
16 static jclass floatBufferClass;
17 static jclass doubleBufferClass;
18 static jclass OOMEClass;
19 static jclass UOEClass;
20 static jclass IAEClass;
21 
22 static jmethodID positionID;
23 
24 
25 static void
nativeClassInitBuffer(JNIEnv * _env)26 nativeClassInitBuffer(JNIEnv *_env)
27 {
28     jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
29     bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
30 
31     byteBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/ByteBuffer"));
32     charBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/CharBuffer"));
33     shortBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/ShortBuffer"));
34     intBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/IntBuffer"));
35     longBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/LongBuffer"));
36     floatBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/FloatBuffer"));
37     doubleBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/DoubleBuffer"));
38 
39     positionID = _env->GetMethodID(bufferClass, "position","()I");
40     if(positionID == 0) _env->ThrowNew(IAEClass, "Couldn't fetch position() method");
41 }
42 
43 static void
nativeClassInit(JNIEnv * _env)44 nativeClassInit(JNIEnv *_env)
45 {
46     nativeClassInitBuffer(_env);
47 
48     jclass IAEClassLocal =
49         _env->FindClass("java/lang/IllegalArgumentException");
50     jclass OOMEClassLocal =
51          _env->FindClass("java/lang/OutOfMemoryError");
52     jclass UOEClassLocal =
53          _env->FindClass("java/lang/UnsupportedOperationException");
54 
55     IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
56     OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
57     UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
58 }
59 
getElementSizeShift(JNIEnv * _env,jobject buffer)60 static jint getElementSizeShift(JNIEnv *_env, jobject buffer) {
61 	if(_env->IsInstanceOf(buffer, byteBufferClass)) return 0;
62 	if(_env->IsInstanceOf(buffer, floatBufferClass)) return 2;
63 	if(_env->IsInstanceOf(buffer, shortBufferClass)) return 1;
64 
65 	if(_env->IsInstanceOf(buffer, charBufferClass)) return 1;
66 	if(_env->IsInstanceOf(buffer, intBufferClass)) return 2;
67 	if(_env->IsInstanceOf(buffer, longBufferClass)) return 3;
68 	if(_env->IsInstanceOf(buffer, doubleBufferClass)) return 3;
69 
70 	_env->ThrowNew(IAEClass, "buffer type unkown! (Not a ByteBuffer, ShortBuffer, etc.)");
71 	return 0;
72 }
73 
getBufferPosition(JNIEnv * env,jobject buffer)74 inline jint getBufferPosition(JNIEnv *env, jobject buffer)
75 {
76 	jint ret = env->CallIntMethodA(buffer, positionID, 0);
77 	return  ret;
78 }
79 
80 static void *
getDirectBufferPointer(JNIEnv * _env,jobject buffer)81 getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
82     if (!buffer) {
83         return NULL;
84     }
85     void* buf = _env->GetDirectBufferAddress(buffer);
86     if (buf) {
87         jint position = getBufferPosition(_env, buffer);
88         jint elementSizeShift = getElementSizeShift(_env, buffer);
89         buf = ((char*) buf) + (position << elementSizeShift);
90     } else {
91         _env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
92     }
93     return buf;
94 }
95 
getString(JNIEnv * env,jstring string)96 static const char* getString( JNIEnv *env, jstring string )
97 {
98 	return (const char*)env->GetStringUTFChars(string, NULL);
99 }
100 
releaseString(JNIEnv * env,jstring string,const char * cString)101 static void releaseString( JNIEnv *env, jstring string, const char* cString )
102 {
103 	env->ReleaseStringUTFChars(string, cString);
104 }
105 
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_init(JNIEnv * env,jclass)106 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_init
107   (JNIEnv *env, jclass)
108 {
109 	nativeClassInit( env );
110 }
111 
112 /*
113  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
114  * Method:    glReadBuffer
115  * Signature: (I)V
116  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glReadBuffer(JNIEnv * env,jobject,jint mode)117 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glReadBuffer
118   (JNIEnv *env, jobject, jint mode) {
119       glReadBuffer(mode);
120 }
121 
122 /*
123  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
124  * Method:    glDrawRangeElements
125  * Signature: (IIIIILjava/nio/Buffer;)V
126  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDrawRangeElements__IIIIILjava_nio_Buffer_2(JNIEnv * env,jobject,jint mode,jint start,jint end,jint count,jint type,jobject indices)127 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDrawRangeElements__IIIIILjava_nio_Buffer_2
128   (JNIEnv *env, jobject, jint mode, jint start, jint end, jint count, jint type, jobject indices) {
129   void* dataPtr = getDirectBufferPointer( env, indices );
130   glDrawRangeElements(mode, start, end, count, type, dataPtr);
131 }
132 
133 /*
134  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
135  * Method:    glDrawRangeElements
136  * Signature: (IIIIII)V
137  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDrawRangeElements__IIIIII(JNIEnv * env,jobject,jint mode,jint start,jint end,jint count,jint type,jint offset)138 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDrawRangeElements__IIIIII
139   (JNIEnv *env, jobject, jint mode, jint start, jint end, jint count, jint type, jint offset) {
140     glDrawRangeElements(mode, start, end, count, type, (void*)offset);
141 }
142 
143 /*
144  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
145  * Method:    glTexImage3D
146  * Signature: (IIIIIIIIILjava/nio/Buffer;)V
147  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glTexImage3D__IIIIIIIIILjava_nio_Buffer_2(JNIEnv * env,jobject,jint target,jint level,jint internalformat,jint width,jint height,jint depth,jint border,jint format,jint type,jobject pixels)148 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glTexImage3D__IIIIIIIIILjava_nio_Buffer_2
149   (JNIEnv *env, jobject, jint target, jint level, jint internalformat, jint width, jint height, jint depth, jint border, jint format, jint type, jobject pixels) {
150     void* dataPtr = getDirectBufferPointer( env, pixels );
151     glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, dataPtr);
152 }
153 
154 /*
155  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
156  * Method:    glTexImage3D
157  * Signature: (IIIIIIIIII)V
158  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glTexImage3D__IIIIIIIIII(JNIEnv * env,jobject,jint target,jint level,jint internalformat,jint width,jint height,jint depth,jint border,jint format,jint type,jint offset)159 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glTexImage3D__IIIIIIIIII
160   (JNIEnv *env, jobject, jint target, jint level, jint internalformat, jint width, jint height, jint depth, jint border, jint format, jint type, jint offset) {
161     glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, (void*)offset);
162 }
163 
164 /*
165  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
166  * Method:    glTexSubImage3D
167  * Signature: (IIIIIIIIIILjava/nio/Buffer;)V
168  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glTexSubImage3D__IIIIIIIIIILjava_nio_Buffer_2(JNIEnv * env,jobject,jint target,jint level,jint xoffset,jint yoffset,jint zoffset,jint width,jint height,jint depth,jint format,jint type,jobject pixels)169 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glTexSubImage3D__IIIIIIIIIILjava_nio_Buffer_2
170   (JNIEnv *env, jobject, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint width, jint height, jint depth, jint format, jint type, jobject pixels) {
171     void* dataPtr = getDirectBufferPointer( env, pixels );
172     glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, dataPtr);
173 }
174 
175 /*
176  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
177  * Method:    glTexSubImage3D
178  * Signature: (IIIIIIIIIII)V
179  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glTexSubImage3D__IIIIIIIIIII(JNIEnv * env,jobject,jint target,jint level,jint xoffset,jint yoffset,jint zoffset,jint width,jint height,jint depth,jint format,jint type,jint offset)180 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glTexSubImage3D__IIIIIIIIIII
181   (JNIEnv *env, jobject, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint width, jint height, jint depth, jint format, jint type, jint offset) {
182     glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, (void*)offset);
183 }
184 
185 /*
186  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
187  * Method:    glCopyTexSubImage3D
188  * Signature: (IIIIIIIII)V
189  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glCopyTexSubImage3D(JNIEnv * env,jobject,jint target,jint level,jint xoffset,jint yoffset,jint zoffset,jint x,jint y,jint width,jint height)190 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glCopyTexSubImage3D
191   (JNIEnv *env, jobject, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint x, jint y, jint width, jint height) {
192     glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
193 }
194 
195 /*
196  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
197  * Method:    glGenQueries
198  * Signature: (I[II)V
199  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenQueries__I_3II(JNIEnv * env,jobject,jint n,jintArray ids,jint offset)200 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenQueries__I_3II
201   (JNIEnv *env, jobject, jint n, jintArray ids, jint offset) {
202     int* v = (int*)env->GetPrimitiveArrayCritical(ids, 0);
203     glGenQueries(n, (GLuint*)&v[offset]);
204     env->ReleasePrimitiveArrayCritical(ids, v, 0);
205 }
206 
207 /*
208  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
209  * Method:    glGenQueries
210  * Signature: (ILjava/nio/IntBuffer;)V
211  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenQueries__ILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint n,jobject ids)212 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenQueries__ILjava_nio_IntBuffer_2
213   (JNIEnv *env, jobject, jint n, jobject ids) {
214     void* dataPtr = getDirectBufferPointer( env, ids );
215     glGenQueries(n, (GLuint*)dataPtr);
216 }
217 
218 /*
219  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
220  * Method:    glDeleteQueries
221  * Signature: (I[II)V
222  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteQueries__I_3II(JNIEnv * env,jobject,jint n,jintArray ids,jint offset)223 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteQueries__I_3II
224   (JNIEnv *env, jobject, jint n, jintArray ids, jint offset) {
225     void* dataPtr = getDirectBufferPointer( env, ids );
226     glDeleteQueries(n, (GLuint*)dataPtr);
227 }
228 
229 /*
230  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
231  * Method:    glDeleteQueries
232  * Signature: (ILjava/nio/IntBuffer;)V
233  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteQueries__ILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint n,jobject ids)234 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteQueries__ILjava_nio_IntBuffer_2
235   (JNIEnv *env, jobject, jint n, jobject ids) {
236     void* dataPtr = getDirectBufferPointer( env, ids );
237     glDeleteQueries(n, (GLuint*)dataPtr);
238 }
239 
240 /*
241  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
242  * Method:    glIsQuery
243  * Signature: (I)Z
244  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glIsQuery(JNIEnv * env,jobject,jint id)245 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glIsQuery
246   (JNIEnv *env, jobject, jint id) {
247   return glIsQuery(id);
248 }
249 
250 /*
251  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
252  * Method:    glBeginQuery
253  * Signature: (II)V
254  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBeginQuery(JNIEnv * env,jobject,jint target,jint id)255 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBeginQuery
256   (JNIEnv *env, jobject, jint target, jint id) {
257     glBeginQuery(target, id);
258 }
259 
260 /*
261  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
262  * Method:    glEndQuery
263  * Signature: (I)V
264  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glEndQuery(JNIEnv * env,jobject,jint target)265 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glEndQuery
266   (JNIEnv *env, jobject, jint target) {
267     glEndQuery(target);
268 }
269 
270 /*
271  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
272  * Method:    glGetQueryiv
273  * Signature: (IILjava/nio/IntBuffer;)V
274  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetQueryiv(JNIEnv * env,jobject,jint target,jint pname,jobject params)275 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetQueryiv
276   (JNIEnv *env, jobject, jint target, jint pname, jobject params) {
277     void* dataPtr = getDirectBufferPointer( env, params );
278     glGetQueryiv(target, pname, (GLint*)dataPtr);
279 }
280 
281 /*
282  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
283  * Method:    glGetQueryObjectuiv
284  * Signature: (IILjava/nio/IntBuffer;)V
285  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetQueryObjectuiv(JNIEnv * env,jobject,jint target,jint pname,jobject params)286 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetQueryObjectuiv
287   (JNIEnv *env, jobject, jint target, jint pname, jobject params) {
288     void* dataPtr = getDirectBufferPointer( env, params );
289     glGetQueryObjectuiv(target, pname, (GLuint*)dataPtr);
290 }
291 
292 /*
293  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
294  * Method:    glUnmapBuffer
295  * Signature: (I)Z
296  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUnmapBuffer(JNIEnv * env,jobject,jint target)297 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUnmapBuffer
298   (JNIEnv *env, jobject, jint target) {
299     return glUnmapBuffer(target);
300 }
301 
302 /*
303  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
304  * Method:    glGetBufferPointerv
305  * Signature: (II)Ljava/nio/Buffer;
306  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetBufferPointerv(JNIEnv * env,jobject,jint target,jint pname)307 JNIEXPORT jobject JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetBufferPointerv
308   (JNIEnv *env, jobject, jint target, jint pname) {
309 //FIXME glGetBufferPointerv (GLenum target, GLenum pname, void **params);
310     env->ThrowNew(IAEClass, "Unsupported method");
311 }
312 
313 /*
314  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
315  * Method:    glDrawBuffers
316  * Signature: (ILjava/nio/IntBuffer;)V
317  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDrawBuffers(JNIEnv * env,jobject,jint n,jobject bufs)318 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDrawBuffers
319   (JNIEnv *env, jobject, jint n, jobject bufs) {
320     void* dataPtr = getDirectBufferPointer( env, bufs );
321     glDrawBuffers(n, (GLenum*)dataPtr);
322 }
323 
324 /*
325  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
326  * Method:    glUniformMatrix2x3fv
327  * Signature: (IIZLjava/nio/FloatBuffer;)V
328  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix2x3fv(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jobject value)329 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix2x3fv
330   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value) {
331     void* dataPtr = getDirectBufferPointer( env, value );
332     glUniformMatrix2x3fv(location, count, transpose, (GLfloat*)dataPtr);
333 }
334 
335 /*
336  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
337  * Method:    glUniformMatrix3x2fv
338  * Signature: (IIZLjava/nio/FloatBuffer;)V
339  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix3x2fv(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jobject value)340 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix3x2fv
341   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value) {
342     void* dataPtr = getDirectBufferPointer( env, value );
343     glUniformMatrix3x2fv(location, count, transpose, (GLfloat*)dataPtr);
344 }
345 
346 /*
347  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
348  * Method:    glUniformMatrix2x4fv
349  * Signature: (IIZLjava/nio/FloatBuffer;)V
350  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix2x4fv(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jobject value)351 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix2x4fv
352   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value) {
353     void* dataPtr = getDirectBufferPointer( env, value );
354     glUniformMatrix2x4fv(location, count, transpose, (GLfloat*)dataPtr);
355 }
356 
357 /*
358  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
359  * Method:    glUniformMatrix4x2fv
360  * Signature: (IIZLjava/nio/FloatBuffer;)V
361  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix4x2fv(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jobject value)362 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix4x2fv
363   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value) {
364     void* dataPtr = getDirectBufferPointer( env, value );
365     glUniformMatrix4x2fv(location, count, transpose, (GLfloat*)dataPtr);
366 }
367 
368 /*
369  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
370  * Method:    glUniformMatrix3x4fv
371  * Signature: (IIZLjava/nio/FloatBuffer;)V
372  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix3x4fv(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jobject value)373 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix3x4fv
374   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value) {
375     void* dataPtr = getDirectBufferPointer( env, value );
376     glUniformMatrix3x4fv(location, count, transpose, (GLfloat*)dataPtr);
377 }
378 
379 /*
380  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
381  * Method:    glUniformMatrix4x3fv
382  * Signature: (IIZLjava/nio/FloatBuffer;)V
383  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix4x3fv(JNIEnv * env,jobject,jint location,jint count,jboolean transpose,jobject value)384 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformMatrix4x3fv
385   (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value) {
386     void* dataPtr = getDirectBufferPointer( env, value );
387     glUniformMatrix4x3fv(location, count, transpose, (GLfloat*)dataPtr);
388 }
389 
390 /*
391  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
392  * Method:    glBlitFramebuffer
393  * Signature: (IIIIIIIIII)V
394  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBlitFramebuffer(JNIEnv * env,jobject,jint srcX0,jint srcY0,jint srcX1,jint srcY1,jint dstX0,jint dstY0,jint dstX1,jint dstY1,jint mask,jint filter)395 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBlitFramebuffer
396   (JNIEnv *env, jobject, jint srcX0, jint srcY0, jint srcX1, jint srcY1, jint dstX0, jint dstY0, jint dstX1, jint dstY1, jint mask, jint filter) {
397     glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
398 }
399 
400 /*
401  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
402  * Method:    glRenderbufferStorageMultisample
403  * Signature: (IIIII)V
404  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glRenderbufferStorageMultisample(JNIEnv * env,jobject,jint target,jint samples,jint internalformat,jint width,jint height)405 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glRenderbufferStorageMultisample
406   (JNIEnv *env, jobject, jint target, jint samples, jint internalformat, jint width, jint height) {
407     glRenderbufferStorageMultisample(target, samples, internalformat, width, height);
408 }
409 
410 /*
411  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
412  * Method:    glFramebufferTextureLayer
413  * Signature: (IIIII)V
414  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glFramebufferTextureLayer(JNIEnv * env,jobject,jint target,jint attachment,jint texture,jint level,jint layer)415 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glFramebufferTextureLayer
416   (JNIEnv *env, jobject, jint target, jint attachment, jint texture, jint level, jint layer) {
417     glFramebufferTextureLayer(target, attachment, texture, level, layer);
418 }
419 
420 /*
421  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
422  * Method:    glFlushMappedBufferRange
423  * Signature: (III)V
424  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glFlushMappedBufferRange(JNIEnv * env,jobject,jint target,jint offset,jint length)425 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glFlushMappedBufferRange
426   (JNIEnv *env, jobject, jint target, jint offset, jint length) {
427     glFlushMappedBufferRange(target, offset, length);
428 }
429 
430 /*
431  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
432  * Method:    glBindVertexArray
433  * Signature: (I)V
434  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBindVertexArray(JNIEnv * env,jobject,jint array)435 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBindVertexArray
436   (JNIEnv *env, jobject, jint array) {
437     glBindVertexArray(array);
438 }
439 
440 /*
441  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
442  * Method:    glDeleteVertexArrays
443  * Signature: (I[II)V
444  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteVertexArrays__I_3II(JNIEnv * env,jobject,jint n,jintArray arrays,jint offset)445 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteVertexArrays__I_3II
446   (JNIEnv *env, jobject, jint n, jintArray arrays, jint offset) {
447     int* v = (int*)env->GetPrimitiveArrayCritical(arrays, 0);
448     glDeleteVertexArrays(n, (GLuint*)&v[offset]);
449     env->ReleasePrimitiveArrayCritical(arrays, v, 0);
450 }
451 
452 /*
453  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
454  * Method:    glDeleteVertexArrays
455  * Signature: (ILjava/nio/IntBuffer;)V
456  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteVertexArrays__ILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint n,jobject arrays)457 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteVertexArrays__ILjava_nio_IntBuffer_2
458   (JNIEnv *env, jobject, jint n, jobject arrays) {
459     void* dataPtr = getDirectBufferPointer( env, arrays );
460     glDeleteVertexArrays(n, (GLuint*)dataPtr);
461 }
462 
463 /*
464  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
465  * Method:    glGenVertexArrays
466  * Signature: (I[II)V
467  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenVertexArrays__I_3II(JNIEnv * env,jobject,jint n,jintArray arrays,jint offset)468 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenVertexArrays__I_3II
469   (JNIEnv *env, jobject, jint n, jintArray arrays, jint offset) {
470     int* v = (int*)env->GetPrimitiveArrayCritical(arrays, 0);
471     glGenVertexArrays(n, (GLuint*)&v[offset]);
472     env->ReleasePrimitiveArrayCritical(arrays, v, 0);
473 }
474 
475 /*
476  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
477  * Method:    glGenVertexArrays
478  * Signature: (ILjava/nio/IntBuffer;)V
479  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenVertexArrays__ILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint n,jobject arrays)480 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenVertexArrays__ILjava_nio_IntBuffer_2
481   (JNIEnv *env, jobject, jint n, jobject arrays) {
482     void* dataPtr = getDirectBufferPointer( env, arrays );
483     glGenVertexArrays(n, (GLuint*)dataPtr);
484 }
485 
486 /*
487  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
488  * Method:    glIsVertexArray
489  * Signature: (I)Z
490  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glIsVertexArray(JNIEnv * env,jobject,jint array)491 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glIsVertexArray
492   (JNIEnv *env, jobject, jint array) {
493     return glIsVertexArray(array);
494 }
495 
496 /*
497  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
498  * Method:    glBeginTransformFeedback
499  * Signature: (I)V
500  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBeginTransformFeedback(JNIEnv * env,jobject,jint primitiveMode)501 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBeginTransformFeedback
502   (JNIEnv *env, jobject, jint primitiveMode) {
503     glBeginTransformFeedback(primitiveMode);
504 }
505 
506 /*
507  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
508  * Method:    glEndTransformFeedback
509  * Signature: ()V
510  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glEndTransformFeedback(JNIEnv * env,jobject)511 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glEndTransformFeedback
512   (JNIEnv *env, jobject) {
513     glEndTransformFeedback();
514 }
515 
516 /*
517  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
518  * Method:    glBindBufferRange
519  * Signature: (IIIII)V
520  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBindBufferRange(JNIEnv * env,jobject,jint target,jint index,jint buffer,jint offset,jint size)521 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBindBufferRange
522   (JNIEnv *env, jobject, jint target, jint index, jint buffer, jint offset, jint size) {
523     glBindBufferRange(target, index, buffer, offset, size);
524 }
525 
526 /*
527  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
528  * Method:    glBindBufferBase
529  * Signature: (III)V
530  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBindBufferBase(JNIEnv * env,jobject,jint target,jint index,jint buffer)531 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBindBufferBase
532   (JNIEnv *env, jobject, jint target, jint index, jint buffer) {
533     glBindBufferBase(target, index, buffer);
534 }
535 
536 /*
537  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
538  * Method:    glTransformFeedbackVaryings
539  * Signature: (I[Ljava/lang/String;I)V
540  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glTransformFeedbackVaryings(JNIEnv * env,jobject,jint program,jobjectArray varyings,jint buffermode)541 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glTransformFeedbackVaryings
542   (JNIEnv *env, jobject, jint program, jobjectArray varyings, jint buffermode) {
543 //FIXME: convert String[] to char**
544     env->ThrowNew(IAEClass, "Unsupported method");
545 }
546 
547 /*
548  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
549  * Method:    glVertexAttribIPointer
550  * Signature: (IIIII)V
551  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glVertexAttribIPointer(JNIEnv * env,jobject,jint index,jint size,jint type,jint stride,jint offset)552 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glVertexAttribIPointer
553   (JNIEnv *env, jobject, jint index, jint size, jint type, jint stride, jint offset) {
554     glVertexAttribIPointer(index, size, type, stride, (void*)offset);
555 }
556 
557 /*
558  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
559  * Method:    glGetVertexAttribIiv
560  * Signature: (IILjava/nio/IntBuffer;)V
561  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetVertexAttribIiv(JNIEnv * env,jobject,jint index,jint pname,jobject params)562 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetVertexAttribIiv
563   (JNIEnv *env, jobject, jint index, jint pname, jobject params) {
564     void* dataPtr = getDirectBufferPointer( env, params );
565     glGetVertexAttribIiv(index, pname, (GLint*)dataPtr);
566 }
567 
568 /*
569  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
570  * Method:    glGetVertexAttribIuiv
571  * Signature: (IILjava/nio/IntBuffer;)V
572  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetVertexAttribIuiv(JNIEnv * env,jobject,jint index,jint pname,jobject params)573 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetVertexAttribIuiv
574   (JNIEnv *env, jobject, jint index, jint pname, jobject params) {
575     void* dataPtr = getDirectBufferPointer( env, params );
576     glGetVertexAttribIuiv(index, pname, (GLuint*)dataPtr);
577 }
578 
579 /*
580  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
581  * Method:    glVertexAttribI4i
582  * Signature: (IIIII)V
583  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glVertexAttribI4i(JNIEnv * env,jobject,jint index,jint x,jint y,jint z,jint w)584 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glVertexAttribI4i
585   (JNIEnv *env, jobject, jint index, jint x, jint y, jint z, jint w) {
586     glVertexAttribI4i(index, x, y, z, w);
587 }
588 
589 /*
590  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
591  * Method:    glVertexAttribI4ui
592  * Signature: (IIIII)V
593  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glVertexAttribI4ui(JNIEnv * env,jobject,jint index,jint x,jint y,jint z,jint w)594 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glVertexAttribI4ui
595   (JNIEnv *env, jobject, jint index, jint x, jint y, jint z, jint w) {
596     glVertexAttribI4ui(index, x, y, z, w);
597 }
598 
599 /*
600  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
601  * Method:    glGetUniformuiv
602  * Signature: (IILjava/nio/IntBuffer;)V
603  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetUniformuiv(JNIEnv * env,jobject,jint program,jint location,jobject params)604 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetUniformuiv
605   (JNIEnv *env, jobject, jint program, jint location, jobject params) {
606     void* dataPtr = getDirectBufferPointer( env, params );
607     glGetUniformuiv(program, location, (GLuint*)dataPtr);
608 }
609 
610 /*
611  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
612  * Method:    glGetFragDataLocation
613  * Signature: (ILjava/lang/String;)I
614  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetFragDataLocation(JNIEnv * env,jobject,jint program,jstring name)615 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetFragDataLocation
616   (JNIEnv *env, jobject, jint program, jstring name) {
617     const char* cname = getString( env, name );
618     int loc = glGetFragDataLocation(program, cname);
619     releaseString( env, name, cname );
620 }
621 
622 /*
623  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
624  * Method:    glUniform1uiv
625  * Signature: (IILjava/nio/IntBuffer;)V
626  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniform1uiv(JNIEnv * env,jobject,jint location,jint count,jobject value)627 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniform1uiv
628   (JNIEnv *env, jobject, jint location, jint count, jobject value) {
629     void* dataPtr = getDirectBufferPointer( env, value );
630     glUniform1uiv(location, count, (GLuint*)dataPtr);
631 }
632 
633 /*
634  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
635  * Method:    glUniform3uiv
636  * Signature: (IILjava/nio/IntBuffer;)V
637  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniform3uiv(JNIEnv * env,jobject,jint location,jint count,jobject value)638 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniform3uiv
639   (JNIEnv *env, jobject, jint location, jint count, jobject value) {
640     void* dataPtr = getDirectBufferPointer( env, value );
641     glUniform3uiv(location, count, (GLuint*)dataPtr);
642 }
643 
644 /*
645  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
646  * Method:    glUniform4uiv
647  * Signature: (IILjava/nio/IntBuffer;)V
648  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniform4uiv(JNIEnv * env,jobject,jint location,jint count,jobject value)649 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniform4uiv
650   (JNIEnv *env, jobject, jint location, jint count, jobject value) {
651     void* dataPtr = getDirectBufferPointer( env, value );
652     glUniform4uiv(location, count, (GLuint*)dataPtr);
653 }
654 
655 /*
656  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
657  * Method:    glClearBufferiv
658  * Signature: (IILjava/nio/IntBuffer;)V
659  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glClearBufferiv(JNIEnv * env,jobject,jint buffer,jint drawbuffer,jobject value)660 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glClearBufferiv
661   (JNIEnv *env, jobject, jint buffer, jint drawbuffer, jobject value) {
662     void* dataPtr = getDirectBufferPointer( env, value );
663     glClearBufferiv(buffer, drawbuffer, (GLint*)dataPtr);
664 }
665 
666 /*
667  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
668  * Method:    glClearBufferuiv
669  * Signature: (IILjava/nio/IntBuffer;)V
670  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glClearBufferuiv(JNIEnv * env,jobject,jint buffer,jint drawbuffer,jobject value)671 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glClearBufferuiv
672   (JNIEnv *env, jobject, jint buffer, jint drawbuffer, jobject value) {
673     void* dataPtr = getDirectBufferPointer( env, value );
674     glClearBufferuiv(buffer, drawbuffer, (GLuint*)dataPtr);
675 }
676 
677 /*
678  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
679  * Method:    glClearBufferfv
680  * Signature: (IILjava/nio/FloatBuffer;)V
681  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glClearBufferfv(JNIEnv * env,jobject,jint buffer,jint drawbuffer,jobject value)682 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glClearBufferfv
683   (JNIEnv *env, jobject, jint buffer, jint drawbuffer, jobject value) {
684     void* dataPtr = getDirectBufferPointer( env, value );
685     glClearBufferfv(buffer, drawbuffer, (GLfloat*)dataPtr);
686 }
687 
688 /*
689  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
690  * Method:    glClearBufferfi
691  * Signature: (IIFI)V
692  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glClearBufferfi(JNIEnv * env,jobject,jint buffer,jint drawbuffer,jfloat depth,jint stencil)693 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glClearBufferfi
694   (JNIEnv *env, jobject, jint buffer, jint drawbuffer, jfloat depth, jint stencil) {
695     glClearBufferfi(buffer, drawbuffer, depth, stencil);
696 }
697 
698 /*
699  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
700  * Method:    glGetStringi
701  * Signature: (II)Ljava/lang/String;
702  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetStringi(JNIEnv * env,jobject,jint name,jint index)703 JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetStringi
704   (JNIEnv *env, jobject, jint name, jint index) {
705     return env->NewStringUTF((const char *)glGetStringi(name, index));
706 }
707 
708 /*
709  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
710  * Method:    glCopyBufferSubData
711  * Signature: (IIIII)V
712  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glCopyBufferSubData(JNIEnv * env,jobject,jint readTarget,jint writeTarget,jint readOffset,jint writeOffset,jint size)713 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glCopyBufferSubData
714   (JNIEnv *env, jobject, jint readTarget, jint writeTarget, jint readOffset, jint writeOffset, jint size) {
715     glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
716 }
717 
718 /*
719  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
720  * Method:    glGetUniformIndices
721  * Signature: (I[Ljava/lang/String;Ljava/nio/IntBuffer;)V
722  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetUniformIndices(JNIEnv * env,jobject,jint,jobjectArray,jobject)723 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetUniformIndices
724   (JNIEnv *env, jobject, jint, jobjectArray, jobject) {
725 //FIXME: glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
726     env->ThrowNew(IAEClass, "Unsupported method");
727 }
728 
729 /*
730  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
731  * Method:    glGetActiveUniformsiv
732  * Signature: (IILjava/nio/IntBuffer;ILjava/nio/IntBuffer;)V
733  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetActiveUniformsiv(JNIEnv * env,jobject,jint program,jint uniformCount,jobject indices,jint pname,jobject params)734 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetActiveUniformsiv
735   (JNIEnv *env, jobject, jint program, jint uniformCount, jobject indices, jint pname, jobject params) {
736     void* indicesPtr = getDirectBufferPointer( env, indices );
737     void* paramsPtr = getDirectBufferPointer( env, params );
738     glGetActiveUniformsiv(program, uniformCount, (GLuint*)indicesPtr, pname, (GLint*)paramsPtr);
739 }
740 
741 /*
742  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
743  * Method:    glGetUniformBlockIndex
744  * Signature: (ILjava/lang/String;)I
745  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetUniformBlockIndex(JNIEnv * env,jobject,jint program,jstring uniformBlockName)746 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetUniformBlockIndex
747   (JNIEnv *env, jobject, jint program, jstring uniformBlockName) {
748     const char* cname = getString( env, uniformBlockName );
749     int loc = glGetUniformBlockIndex(program, cname);
750     releaseString( env, uniformBlockName, cname );
751     return loc;
752 }
753 
754 /*
755  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
756  * Method:    glGetActiveUniformBlockiv
757  * Signature: (IIILjava/nio/IntBuffer;)V
758  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetActiveUniformBlockiv(JNIEnv * env,jobject,jint program,jint uniformBlockIndex,jint pname,jobject params)759 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetActiveUniformBlockiv
760   (JNIEnv *env, jobject, jint program, jint uniformBlockIndex, jint pname, jobject params) {
761     void* dataPtr = getDirectBufferPointer( env, params );
762     glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, (GLint*)dataPtr);
763 }
764 
765 /*
766  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
767  * Method:    glGetActiveUniformBlockName
768  * Signature: (IILjava/nio/Buffer;Ljava/nio/Buffer;)V
769  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetActiveUniformBlockName__IILjava_nio_Buffer_2Ljava_nio_Buffer_2(JNIEnv * env,jobject,jint,jint,jobject,jobject)770 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetActiveUniformBlockName__IILjava_nio_Buffer_2Ljava_nio_Buffer_2
771   (JNIEnv *env, jobject, jint, jint, jobject, jobject) {
772 //FIXME: glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
773     env->ThrowNew(IAEClass, "Unsupported method");
774 }
775 
776 /*
777  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
778  * Method:    glGetActiveUniformBlockName
779  * Signature: (II)Ljava/lang/String;
780  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetActiveUniformBlockName__II(JNIEnv * env,jobject,jint,jint)781 JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetActiveUniformBlockName__II
782   (JNIEnv *env, jobject, jint, jint) {
783 //FIXME: glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
784     env->ThrowNew(IAEClass, "Unsupported method");
785 }
786 
787 /*
788  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
789  * Method:    glUniformBlockBinding
790  * Signature: (III)V
791  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformBlockBinding(JNIEnv * env,jobject,jint program,jint uniformBlockIndex,jint uniformBlockBinding)792 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glUniformBlockBinding
793   (JNIEnv *env, jobject, jint program, jint uniformBlockIndex, jint uniformBlockBinding) {
794     glUniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
795 }
796 
797 /*
798  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
799  * Method:    glDrawArraysInstanced
800  * Signature: (IIII)V
801  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDrawArraysInstanced(JNIEnv * env,jobject,jint mode,jint first,jint count,jint instancecount)802 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDrawArraysInstanced
803   (JNIEnv *env, jobject, jint mode, jint first, jint count, jint instancecount) {
804     glDrawArraysInstanced(mode, first, count, instancecount);
805 }
806 
807 /*
808  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
809  * Method:    glDrawElementsInstanced
810  * Signature: (IIIII)V
811  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDrawElementsInstanced(JNIEnv * env,jobject,jint mode,jint count,jint type,jint indicesOffset,jint instancecount)812 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDrawElementsInstanced
813   (JNIEnv *env, jobject, jint mode, jint count, jint type, jint indicesOffset, jint instancecount) {
814     glDrawElementsInstanced(mode, count, type, (GLvoid*)indicesOffset, instancecount);
815 }
816 
817 /*
818  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
819  * Method:    glGetInteger64v
820  * Signature: (ILjava/nio/LongBuffer;)V
821  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetInteger64v(JNIEnv * env,jobject,jint pname,jobject data)822 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetInteger64v
823   (JNIEnv *env, jobject, jint pname, jobject data) {
824     void* dataPtr = getDirectBufferPointer( env, data );
825     glGetInteger64v(pname, (GLint64*)dataPtr);
826 }
827 
828 /*
829  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
830  * Method:    glGetBufferParameteri64v
831  * Signature: (IILjava/nio/LongBuffer;)V
832  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetBufferParameteri64v(JNIEnv * env,jobject,jint target,jint pname,jobject params)833 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetBufferParameteri64v
834   (JNIEnv *env, jobject, jint target, jint pname, jobject params) {
835     void* dataPtr = getDirectBufferPointer( env, params );
836     glGetBufferParameteri64v(target, pname, (GLint64*)dataPtr);
837 }
838 
839 /*
840  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
841  * Method:    glGenSamplers
842  * Signature: (I[II)V
843  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenSamplers__I_3II(JNIEnv * env,jobject,jint count,jintArray samplers,jint offset)844 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenSamplers__I_3II
845   (JNIEnv *env, jobject, jint count, jintArray samplers, jint offset) {
846     int* v = (int*)env->GetPrimitiveArrayCritical(samplers, 0);
847     glGenSamplers(count, (GLuint*)&v[offset]);
848     env->ReleasePrimitiveArrayCritical(samplers, v, 0);
849 }
850 
851 /*
852  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
853  * Method:    glGenSamplers
854  * Signature: (ILjava/nio/IntBuffer;)V
855  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenSamplers__ILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint count,jobject samplers)856 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenSamplers__ILjava_nio_IntBuffer_2
857   (JNIEnv *env, jobject, jint count, jobject samplers) {
858     void* dataPtr = getDirectBufferPointer( env, samplers );
859     glGenSamplers(count, (GLuint*)dataPtr);
860 }
861 
862 /*
863  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
864  * Method:    glDeleteSamplers
865  * Signature: (I[II)V
866  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteSamplers__I_3II(JNIEnv * env,jobject,jint count,jintArray samplers,jint offset)867 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteSamplers__I_3II
868   (JNIEnv *env, jobject, jint count, jintArray samplers, jint offset) {
869     int* v = (int*)env->GetPrimitiveArrayCritical(samplers, 0);
870     glDeleteSamplers(count, (GLuint*)&v[offset]);
871     env->ReleasePrimitiveArrayCritical(samplers, v, 0);
872 }
873 
874 /*
875  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
876  * Method:    glDeleteSamplers
877  * Signature: (ILjava/nio/IntBuffer;)V
878  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteSamplers__ILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint count,jobject samplers)879 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteSamplers__ILjava_nio_IntBuffer_2
880   (JNIEnv *env, jobject, jint count, jobject samplers) {
881     void* dataPtr = getDirectBufferPointer( env, samplers );
882     glDeleteSamplers(count, (GLuint*)dataPtr);
883 }
884 
885 /*
886  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
887  * Method:    glIsSampler
888  * Signature: (I)Z
889  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glIsSampler(JNIEnv * env,jobject,jint sampler)890 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glIsSampler
891   (JNIEnv *env, jobject, jint sampler) {
892     return glIsSampler(sampler);
893 }
894 
895 /*
896  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
897  * Method:    glBindSampler
898  * Signature: (II)V
899  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBindSampler(JNIEnv * env,jobject,jint unit,jint sampler)900 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBindSampler
901   (JNIEnv *env, jobject, jint unit, jint sampler) {
902     glBindSampler(unit, sampler);
903 }
904 
905 /*
906  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
907  * Method:    glSamplerParameteri
908  * Signature: (III)V
909  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glSamplerParameteri(JNIEnv * env,jobject,jint sampler,jint pname,jint param)910 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glSamplerParameteri
911   (JNIEnv *env, jobject, jint sampler, jint pname, jint param) {
912     glSamplerParameteri(sampler, pname, param);
913 }
914 
915 /*
916  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
917  * Method:    glSamplerParameteriv
918  * Signature: (IILjava/nio/IntBuffer;)V
919  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glSamplerParameteriv(JNIEnv * env,jobject,jint sampler,jint pname,jobject params)920 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glSamplerParameteriv
921   (JNIEnv *env, jobject, jint sampler, jint pname, jobject params) {
922     void* dataPtr = getDirectBufferPointer( env, params );
923     glSamplerParameteriv(sampler, pname, (GLint*)dataPtr);
924 }
925 
926 /*
927  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
928  * Method:    glSamplerParameterf
929  * Signature: (IIF)V
930  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glSamplerParameterf(JNIEnv * env,jobject,jint sampler,jint pname,jfloat param)931 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glSamplerParameterf
932   (JNIEnv *env, jobject, jint sampler, jint pname, jfloat param) {
933     glSamplerParameterf(sampler, pname, param);
934 }
935 
936 /*
937  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
938  * Method:    glSamplerParameterfv
939  * Signature: (IILjava/nio/FloatBuffer;)V
940  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glSamplerParameterfv(JNIEnv * env,jobject,jint sampler,jint pname,jobject params)941 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glSamplerParameterfv
942   (JNIEnv *env, jobject, jint sampler, jint pname, jobject params) {
943     void* dataPtr = getDirectBufferPointer( env, params );
944     glSamplerParameterfv(sampler, pname, (GLfloat*)dataPtr);
945 }
946 
947 /*
948  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
949  * Method:    glGetSamplerParameteriv
950  * Signature: (IILjava/nio/IntBuffer;)V
951  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetSamplerParameteriv(JNIEnv * env,jobject,jint sampler,jint pname,jobject params)952 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetSamplerParameteriv
953   (JNIEnv *env, jobject, jint sampler, jint pname, jobject params) {
954     void* dataPtr = getDirectBufferPointer( env, params );
955     glGetSamplerParameteriv(sampler, pname, (GLint*)dataPtr);
956 }
957 
958 /*
959  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
960  * Method:    glGetSamplerParameterfv
961  * Signature: (IILjava/nio/FloatBuffer;)V
962  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetSamplerParameterfv(JNIEnv * env,jobject,jint sampler,jint pname,jobject params)963 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGetSamplerParameterfv
964   (JNIEnv *env, jobject, jint sampler, jint pname, jobject params) {
965     void* dataPtr = getDirectBufferPointer( env, params );
966     glGetSamplerParameterfv(sampler, pname, (GLfloat*)dataPtr);
967 }
968 
969 /*
970  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
971  * Method:    glVertexAttribDivisor
972  * Signature: (II)V
973  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glVertexAttribDivisor(JNIEnv * env,jobject,jint index,jint divisor)974 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glVertexAttribDivisor
975   (JNIEnv *env, jobject, jint index, jint divisor) {
976     glVertexAttribDivisor(index, divisor);
977 }
978 
979 /*
980  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
981  * Method:    glBindTransformFeedback
982  * Signature: (II)V
983  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBindTransformFeedback(JNIEnv * env,jobject,jint target,jint id)984 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glBindTransformFeedback
985   (JNIEnv *env, jobject, jint target, jint id) {
986     glBindTransformFeedback(target, id);
987 }
988 
989 /*
990  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
991  * Method:    glDeleteTransformFeedbacks
992  * Signature: (I[II)V
993  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteTransformFeedbacks__I_3II(JNIEnv * env,jobject,jint n,jintArray ids,jint offset)994 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteTransformFeedbacks__I_3II
995   (JNIEnv *env, jobject, jint n, jintArray ids, jint offset) {
996     int* v = (int*)env->GetPrimitiveArrayCritical(ids, 0);
997     glDeleteTransformFeedbacks(n, (GLuint*)&v[offset]);
998     env->ReleasePrimitiveArrayCritical(ids, v, 0);
999 }
1000 
1001 /*
1002  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
1003  * Method:    glDeleteTransformFeedbacks
1004  * Signature: (ILjava/nio/IntBuffer;)V
1005  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteTransformFeedbacks__ILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint n,jobject ids)1006 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glDeleteTransformFeedbacks__ILjava_nio_IntBuffer_2
1007   (JNIEnv *env, jobject, jint n, jobject ids) {
1008     void* dataPtr = getDirectBufferPointer( env, ids );
1009     glDeleteTransformFeedbacks(n, (GLuint*)dataPtr);
1010 }
1011 
1012 /*
1013  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
1014  * Method:    glGenTransformFeedbacks
1015  * Signature: (I[II)V
1016  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenTransformFeedbacks__I_3II(JNIEnv * env,jobject,jint n,jintArray ids,jint offset)1017 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenTransformFeedbacks__I_3II
1018   (JNIEnv *env, jobject, jint n, jintArray ids, jint offset) {
1019     int* v = (int*)env->GetPrimitiveArrayCritical(ids, 0);
1020     glGenTransformFeedbacks(n, (GLuint*)&v[offset]);
1021     env->ReleasePrimitiveArrayCritical(ids, v, 0);
1022 }
1023 
1024 /*
1025  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
1026  * Method:    glGenTransformFeedbacks
1027  * Signature: (ILjava/nio/IntBuffer;)V
1028  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenTransformFeedbacks__ILjava_nio_IntBuffer_2(JNIEnv * env,jobject,jint n,jobject ids)1029 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glGenTransformFeedbacks__ILjava_nio_IntBuffer_2
1030   (JNIEnv *env, jobject, jint n, jobject ids) {
1031     void* dataPtr = getDirectBufferPointer( env, ids );
1032     glGenTransformFeedbacks(n, (GLuint*)dataPtr);
1033 }
1034 
1035 /*
1036  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
1037  * Method:    glIsTransformFeedback
1038  * Signature: (I)Z
1039  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glIsTransformFeedback(JNIEnv * env,jobject,jint id)1040 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glIsTransformFeedback
1041   (JNIEnv *env, jobject, jint id) {
1042     return glIsTransformFeedback(id);
1043 }
1044 
1045 /*
1046  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
1047  * Method:    glPauseTransformFeedback
1048  * Signature: ()V
1049  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glPauseTransformFeedback(JNIEnv * env,jobject)1050 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glPauseTransformFeedback
1051   (JNIEnv *env, jobject) {
1052     glPauseTransformFeedback();
1053 }
1054 /*
1055  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
1056  * Method:    glResumeTransformFeedback
1057  * Signature: ()V
1058  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glResumeTransformFeedback(JNIEnv * env,jobject)1059 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glResumeTransformFeedback
1060   (JNIEnv *env, jobject) {
1061     glResumeTransformFeedback();
1062 }
1063 
1064 /*
1065  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
1066  * Method:    glProgramParameteri
1067  * Signature: (III)V
1068  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glProgramParameteri(JNIEnv * env,jobject,jint program,jint pname,jint value)1069 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glProgramParameteri
1070   (JNIEnv *env, jobject, jint program, jint pname, jint value) {
1071     glProgramParameteri(program, pname, value);
1072 }
1073 
1074 /*
1075  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
1076  * Method:    glInvalidateFramebuffer
1077  * Signature: (IILjava/nio/IntBuffer;)V
1078  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glInvalidateFramebuffer(JNIEnv * env,jobject,jint target,jint numAttachments,jobject attachments)1079 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glInvalidateFramebuffer
1080   (JNIEnv *env, jobject, jint target, jint numAttachments, jobject attachments) {
1081     void* dataPtr = getDirectBufferPointer( env, attachments );
1082     glInvalidateFramebuffer(target, numAttachments, (GLenum*)dataPtr);
1083 }
1084 
1085 /*
1086  * Class:     com_badlogic_gdx_backends_iosrobovm_IOSGLES30
1087  * Method:    glInvalidateSubFramebuffer
1088  * Signature: (IILjava/nio/IntBuffer;IIII)V
1089  */
Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glInvalidateSubFramebuffer(JNIEnv * env,jobject,jint target,jint numAttachments,jobject attachments,jint x,jint y,jint width,jint height)1090 JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES30_glInvalidateSubFramebuffer
1091   (JNIEnv *env, jobject, jint target, jint numAttachments, jobject attachments, jint x, jint y, jint width, jint height) {
1092     void* dataPtr = getDirectBufferPointer( env, attachments );
1093     glInvalidateSubFramebuffer(target, numAttachments, (GLenum*)dataPtr, x, y, width, height);
1094 }
1095 
1096 
1097 #endif
1098 #endif