--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="lib" path="libs/robovm-cocoatouch-sources.jar"/>
+ <classpathentry kind="lib" path="libs/robovm-cocoatouch.jar"/>
+ <classpathentry kind="lib" path="libs/robovm-objc-sources.jar"/>
+ <classpathentry kind="lib" path="libs/robovm-objc.jar"/>
+ <classpathentry kind="lib" path="libs/robovm-rt-sources.jar"/>
+ <classpathentry kind="lib" path="libs/robovm-rt.jar"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/gdx"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>gdx-backend-robovm</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
--- /dev/null
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import java.io.File;
+
+import org.robovm.cocoatouch.coregraphics.CGSize;
+import org.robovm.cocoatouch.foundation.NSDictionary;
+import org.robovm.cocoatouch.foundation.NSMutableDictionary;
+import org.robovm.cocoatouch.uikit.UIApplication;
+import org.robovm.cocoatouch.uikit.UIApplicationDelegate;
+import org.robovm.cocoatouch.uikit.UIDevice;
+import org.robovm.cocoatouch.uikit.UIInterfaceOrientation;
+import org.robovm.cocoatouch.uikit.UIScreen;
+import org.robovm.cocoatouch.uikit.UIUserInterfaceIdiom;
+import org.robovm.cocoatouch.uikit.UIViewController;
+import org.robovm.cocoatouch.uikit.UIWindow;
+
+import com.badlogic.gdx.Application;
+import com.badlogic.gdx.ApplicationListener;
+import com.badlogic.gdx.Audio;
+import com.badlogic.gdx.Files;
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Graphics;
+import com.badlogic.gdx.Input;
+import com.badlogic.gdx.LifecycleListener;
+import com.badlogic.gdx.Net;
+import com.badlogic.gdx.Preferences;
+import com.badlogic.gdx.graphics.GL20;
+import com.badlogic.gdx.utils.Array;
+import com.badlogic.gdx.utils.Clipboard;
+
+public class IOSApplication implements Application {
+
+ public static abstract class Delegate extends UIApplicationDelegate.Adapter {
+ private IOSApplication app;
+
+ protected abstract IOSApplication createApplication();
+
+ @Override
+ public boolean didFinishLaunching (UIApplication application, NSDictionary launchOptions) {
+ application.addStrongRef(this); // Prevent this from being GCed until the ObjC UIApplication is deallocated
+ this.app = createApplication();
+ return app.didFinishLaunching(application, launchOptions);
+ }
+
+ @Override
+ public void didBecomeActive (UIApplication application) {
+ app.didBecomeActive(application);
+ }
+
+ @Override
+ public void willResignActive (UIApplication application) {
+ app.willResignActive(application);
+ }
+
+ @Override
+ public void willTerminate (UIApplication application) {
+ app.willTerminate(application);
+ }
+ }
+
+ UIApplication uiApp;
+ UIWindow uiWindow;
+ ApplicationListener listener;
+ IOSApplicationConfiguration config;
+ IOSGraphics graphics;
+ IOSAudio audio;
+ IOSFiles files;
+ IOSInput input;
+ IOSNet net;
+ int logLevel = Application.LOG_DEBUG;
+
+ /** The display scale factor (1.0f for normal; 2.0f to use retina coordinates/dimensions). */
+ float displayScaleFactor;
+
+ Array<Runnable> runnables = new Array<Runnable>();
+ Array<Runnable> executedRunnables = new Array<Runnable>();
+ Array<LifecycleListener> lifecycleListeners = new Array<LifecycleListener>();
+
+ public IOSApplication (ApplicationListener listener, IOSApplicationConfiguration config) {
+ this.listener = listener;
+ this.config = config;
+ }
+
+ final boolean didFinishLaunching (UIApplication uiApp, NSDictionary options) {
+ Gdx.app = this;
+ this.uiApp = uiApp;
+
+ // enable or disable screen dimming
+ UIApplication.getSharedApplication().setIdleTimerDisabled(config.preventScreenDimming);
+
+ // fix the scale factor if we have a retina device (NOTE: iOS screen sizes are in "points" not pixels by default!)
+ if (UIScreen.getMainScreen().getScale() == 2.0f) {
+ // we have a retina device!
+ if (UIDevice.getCurrentDevice().getUserInterfaceIdiom() == UIUserInterfaceIdiom.Pad) {
+ // it's an iPad!
+ displayScaleFactor = config.displayScaleLargeScreenIfRetina * 2.0f;
+ } else {
+ // it's an iPod or iPhone
+ displayScaleFactor = config.displayScaleSmallScreenIfRetina * 2.0f;
+ }
+ }
+ else {
+ // no retina screen: no scaling!
+ if (UIDevice.getCurrentDevice().getUserInterfaceIdiom() == UIUserInterfaceIdiom.Pad) {
+ // it's an iPad!
+ displayScaleFactor = config.displayScaleLargeScreenIfNonRetina;
+ } else {
+ // it's an iPod or iPhone
+ displayScaleFactor = config.displayScaleSmallScreenIfNonRetina;
+ }
+ }
+
+ GL20 gl20 = new IOSGLES20();
+
+ Gdx.gl = gl20;
+ Gdx.gl20 = gl20;
+
+ // setup libgdx
+ this.input = new IOSInput(this);
+ this.graphics = new IOSGraphics(getBounds(null), this, input, gl20);
+ this.files = new IOSFiles();
+ this.audio = new IOSAudio();
+ this.net = new IOSNet(this);
+
+ Gdx.files = this.files;
+ Gdx.graphics = this.graphics;
+ Gdx.audio = this.audio;
+ Gdx.input = this.input;
+ Gdx.net = this.net;
+
+ this.input.setupPeripherals();
+
+ this.uiWindow = new UIWindow(UIScreen.getMainScreen().getBounds());
+ this.uiWindow.setRootViewController(this.graphics.viewController);
+ this.uiWindow.makeKeyAndVisible();
+ Gdx.app.debug("IOSApplication", "created");
+ return true;
+ }
+
+ /**
+ * Return the UI view controller of IOSApplication
+ * @return the view controller of IOSApplication
+ */
+ public UIViewController getUIViewController(){
+ return graphics.viewController;
+ }
+
+ /** Returns our real display dimension based on screen orientation.
+ *
+ * @param viewController The view controller.
+ * @return Or real display dimension. */
+ CGSize getBounds (UIViewController viewController) {
+ // or screen size (always portrait)
+ CGSize bounds = UIScreen.getMainScreen().getBounds().size();
+
+ // determine orientation and resulting width + height
+ UIInterfaceOrientation orientation = viewController != null
+ ? viewController.getInterfaceOrientation() : uiApp.getStatusBarOrientation();
+ int width;
+ int height;
+ switch (orientation) {
+ case LandscapeLeft:
+ case LandscapeRight:
+ height = (int)bounds.width();
+ width = (int)bounds.height();
+ break;
+ default:
+ // assume portrait
+ width = (int)bounds.width();
+ height = (int)bounds.height();
+ }
+
+ // update width/height depending on display scaling selected
+ width *= displayScaleFactor;
+ height *= displayScaleFactor;
+
+ // log screen dimensions
+ Gdx.app.debug("IOSApplication", "View: " + orientation.toString() + " " + width + "x" + height);
+
+ // return resulting view size (based on orientation)
+ return new CGSize(width, height);
+ }
+
+ final void didBecomeActive (UIApplication uiApp) {
+ Gdx.app.debug("IOSApplication", "resumed");
+ if (config.useObjectAL)
+ {
+ // workaround for ObjectAL crash problem
+ // see: https://groups.google.com/forum/?fromgroups=#!topic/objectal-for-iphone/ubRWltp_i1Q
+// OALAudioSession.sharedInstance().forceEndInterrupt();
+ }
+ graphics.makeCurrent();
+ graphics.resume();
+ }
+
+ final void willResignActive (UIApplication uiApp) {
+ Gdx.app.debug("IOSApplication", "paused");
+ graphics.makeCurrent();
+ graphics.pause();
+ Gdx.gl.glFlush();
+ }
+
+ final void willTerminate (UIApplication uiApp) {
+ Gdx.app.debug("IOSApplication", "disposed");
+ graphics.makeCurrent();
+ Array<LifecycleListener> listeners = lifecycleListeners;
+ synchronized(listeners) {
+ for(LifecycleListener listener: listeners) {
+ listener.pause();
+ }
+ }
+ listener.dispose();
+ Gdx.gl.glFlush();
+ }
+
+ @Override
+ public ApplicationListener getApplicationListener () {
+ return listener;
+ }
+
+ @Override
+ public Graphics getGraphics () {
+ return graphics;
+ }
+
+ @Override
+ public Audio getAudio () {
+ return audio;
+ }
+
+ @Override
+ public Input getInput () {
+ return input;
+ }
+
+ @Override
+ public Files getFiles () {
+ return files;
+ }
+
+ @Override
+ public Net getNet () {
+ return net;
+ }
+
+ @Override
+ public void log (String tag, String message) {
+ if (logLevel > LOG_NONE) {
+ System.out.println("[info] " + tag + ": " + message);
+ }
+ }
+
+ @Override
+ public void log (String tag, String message, Exception exception) {
+ if (logLevel > LOG_NONE) {
+ System.out.println("[info] " + tag + ": " + message);
+ exception.printStackTrace();
+ }
+ }
+
+ @Override
+ public void error (String tag, String message) {
+ if (logLevel >= LOG_ERROR) {
+ System.out.println("[error] " + tag + ": " + message);
+ }
+ }
+
+ @Override
+ public void error (String tag, String message, Throwable exception) {
+ if (logLevel >= LOG_ERROR) {
+ System.out.println("[error] " + tag + ": " + message);
+ exception.printStackTrace();
+ }
+ }
+
+ @Override
+ public void debug (String tag, String message) {
+ if (logLevel >= LOG_DEBUG) {
+ System.out.println("[debug] " + tag + ": " + message);
+ }
+ }
+
+ @Override
+ public void debug (String tag, String message, Throwable exception) {
+ if (logLevel >= LOG_DEBUG) {
+ System.out.println("[error] " + tag + ": " + message);
+ exception.printStackTrace();
+ }
+ }
+
+ @Override
+ public void setLogLevel (int logLevel) {
+ this.logLevel = logLevel;
+ }
+
+ @Override
+ public ApplicationType getType () {
+ return ApplicationType.iOS;
+ }
+
+ @Override
+ public int getVersion () {
+ // FIXME return iOS version
+ return 0;
+ }
+
+ @Override
+ public long getJavaHeap () {
+ // FIXME check what mono offers
+ return 0;
+ }
+
+ @Override
+ public long getNativeHeap () {
+ // FIXME check what mono offers
+ return 0;
+ }
+
+ @Override
+ public Preferences getPreferences (String name) {
+ File libraryPath = new File(System.getenv("HOME"), "Library");
+ String finalPath = new File(libraryPath, name + ".plist").getAbsolutePath();
+
+ Gdx.app.debug("IOSApplication", "Loading NSDictionary from file " + finalPath);
+ NSMutableDictionary nsDictionary = NSMutableDictionary.fromFile(finalPath);
+
+ // if it fails to get an existing dictionary, create a new one.
+ if (nsDictionary == null) {
+ Gdx.app.debug("IOSApplication", "NSDictionary not found, creating a new one");
+ nsDictionary = new NSMutableDictionary();
+ boolean fileWritten = nsDictionary.writeToFile(finalPath, false);
+ if (fileWritten)
+ Gdx.app.debug("IOSApplication", "NSDictionary file written");
+ else
+ Gdx.app.debug("IOSApplication", "Failed to write NSDictionary to file " + finalPath);
+ }
+ return new IOSPreferences(nsDictionary, finalPath);
+ }
+
+ @Override
+ public void postRunnable (Runnable runnable) {
+ synchronized (runnables) {
+ runnables.add(runnable);
+ }
+ }
+
+ public void processRunnables () {
+ synchronized (runnables) {
+ executedRunnables.clear();
+ executedRunnables.addAll(runnables);
+ runnables.clear();
+ }
+ for (int i = 0; i < executedRunnables.size; i++) {
+ try {
+ executedRunnables.get(i).run();
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+ }
+
+ @Override
+ public void exit () {
+ System.exit(0);
+ }
+
+ @Override
+ public Clipboard getClipboard () {
+ // FIXME implement clipboard
+ return new Clipboard() {
+ @Override
+ public void setContents (String content) {
+ }
+
+ @Override
+ public String getContents () {
+ return null;
+ }
+ };
+ }
+
+ @Override
+ public void addLifecycleListener (LifecycleListener listener) {
+ synchronized(lifecycleListeners) {
+ lifecycleListeners.add(listener);
+ }
+ }
+
+ @Override
+ public void removeLifecycleListener (LifecycleListener listener) {
+ synchronized(lifecycleListeners) {
+ lifecycleListeners.removeValue(listener, true);
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+public class IOSApplicationConfiguration {
+ // FIXME add compass, framebuffer bit depth, stencil, just like on Android if possible
+ /** whether to enable screen dimming. */
+ public boolean preventScreenDimming = true;
+ /** whether or not portrait orientation is supported. */
+ public boolean orientationPortrait = true;
+ /** whether or not landscape orientation is supported. */
+ public boolean orientationLandscape = true;
+
+ /**
+ * Scale factor to use on large screens with retina display, i.e. iPad 3+ (has no effect on non-retina screens).
+ * <ul>
+ * <li>1.0 = no scaling (everything is in pixels)
+ * <li>0.5 = LibGDX will behave as you would only have half the pixels. I.e. instead of 2048x1536 you
+ * will work in 1024x768. This looks pixel perfect and will save you the trouble to create bigger
+ * graphics for the retina display.
+ * <li>any other value: scales the screens according to your scale factor. A scale factor
+ * oof 0.75, 0.8, 1.2, 1.5 etc. works very well without any artifacts!
+ * </ul>
+ */
+ public float displayScaleLargeScreenIfRetina = 1.0f;
+ /**
+ * Scale factor to use on small screens with retina display, i.e. iPhone 4+, iPod 4+ (has no effect on non-retina screens).
+ * <ul>
+ * <li>1.0 = no scaling (everything is in pixels)
+ * <li>0.5 = LibGDX will behave as you would only have half the pixels. I.e. instead of 960x640 you
+ * will work in 480x320. This looks pixel perfect and will save you the trouble to create bigger
+ * graphics for the retina display.
+ * <li>any other value: scales the screens according to your scale factor. A scale factor
+ * of 0.75, 0.8, 1.2, 1.5 etc. works very well without any artifacts!
+ * </ul>
+ */
+ public float displayScaleSmallScreenIfRetina = 1.0f;
+ /**
+ * Scale factor to use on large screens without retina display, i.e. iPad 1+2 (has no effect on retina screens).
+ * <ul>
+ * <li>1.0 = no scaling (everything is in pixels)
+ * <li>any other value: scales the screens according to your scale factor. A scale factor
+ * of 0.75, 0.8, 1.2, 1.5 etc. works very well without any artifacts!
+ * </ul>
+ */
+ public float displayScaleLargeScreenIfNonRetina = 1.0f;
+ /**
+ * Scale factor to use on small screens without retina display, i.e. iPhone 1-3, iPod 1-3 (has no effect on retina screens).
+ * <ul>
+ * <li>1.0 = no scaling (everything is in pixels)
+ * <li>any other value: scales the screens according to your scale factor. A scale factor
+ * of 0.75, 0.8, 1.2, 1.5 etc. works very well without any artifacts!
+ * </ul>
+ */
+ public float displayScaleSmallScreenIfNonRetina = 1.0f;
+
+ /** whether to use the accelerometer **/
+ public boolean useAccelerometer = true;
+ /** the update interval to poll the accelerometer with, in seconds **/
+ public float accelerometerUpdate = 0.05f;
+
+ /** whether to use ObjectAL for sound implementation or not. */
+ public boolean useObjectAL = true;
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import com.badlogic.gdx.Audio;
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.audio.AudioDevice;
+import com.badlogic.gdx.audio.AudioRecorder;
+import com.badlogic.gdx.audio.Music;
+import com.badlogic.gdx.audio.Sound;
+import com.badlogic.gdx.files.FileHandle;
+import com.badlogic.gdx.utils.GdxRuntimeException;
+
+public class IOSAudio implements Audio {
+
+ @Override
+ public AudioDevice newAudioDevice (int samplingRate, boolean isMono) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public AudioRecorder newAudioRecorder (int samplingRate, boolean isMono) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Sound newSound (FileHandle fileHandle) {
+ // TODO Auto-generated method stub
+ return new IOSSound();
+ }
+
+ @Override
+ public Music newMusic (FileHandle file) {
+ // TODO Auto-generated method stub
+ return new IOSMusic();
+ }
+
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import java.io.File;
+
+import com.badlogic.gdx.Files.FileType;
+import com.badlogic.gdx.files.FileHandle;
+import com.badlogic.gdx.utils.GdxRuntimeException;
+
+public class IOSFileHandle extends FileHandle {
+ protected IOSFileHandle (String fileName, FileType type) {
+ super(fileName, type);
+ }
+
+ protected IOSFileHandle (File file, FileType type) {
+ super(file, type);
+ }
+
+ public FileHandle child (String name) {
+ if (file.getPath().length() == 0) return new IOSFileHandle(new File(name), type);
+ return new IOSFileHandle(new File(file, name), type);
+ }
+
+ public FileHandle parent () {
+ File parent = file.getParentFile();
+ if (parent == null) {
+ if (type == FileType.Absolute)
+ parent = new File("/");
+ else
+ parent = new File("");
+ }
+ return new IOSFileHandle(parent, type);
+ }
+
+ public File file () {
+ if (type == FileType.External) return new File(IOSFiles.externalPath, file.getPath());
+ if (type == FileType.Local) return new File(IOSFiles.localPath, file.getPath());
+ return file;
+ }
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import java.io.File;
+
+import org.robovm.cocoatouch.foundation.NSBundle;
+
+import com.badlogic.gdx.Files;
+import com.badlogic.gdx.files.FileHandle;
+import com.badlogic.gdx.utils.GdxRuntimeException;
+
+public class IOSFiles implements Files {
+ // TODO: Use NSSearchPathForDirectoriesInDomains instead?
+ // $HOME should point to the app root dir.
+ static final String appDir = System.getenv("HOME");
+ static final String externalPath = appDir + "/Documents";
+ static final String localPath = appDir + "/Library/local";
+ static final String internalPath = NSBundle.getMainBundle().getBundlePath();
+
+ public IOSFiles() {
+ new FileHandle(externalPath).mkdirs();
+ new FileHandle(localPath).mkdirs();
+ }
+
+ @Override
+ public FileHandle getFileHandle (String fileName, FileType type) {
+ return new IOSFileHandle(fileName, type);
+ }
+
+ @Override
+ public FileHandle classpath (String path) {
+ return new IOSFileHandle(path, FileType.Classpath);
+ }
+
+ @Override
+ public FileHandle internal (String path) {
+ return new IOSFileHandle(new File(internalPath, path), FileType.Internal);
+ }
+
+ @Override
+ public FileHandle external (String path) {
+ return new IOSFileHandle(path, FileType.External);
+ }
+
+ @Override
+ public FileHandle absolute (String path) {
+ return new IOSFileHandle(path, FileType.Absolute);
+ }
+
+ @Override
+ public FileHandle local (String path) {
+ return new IOSFileHandle(path, FileType.Local);
+ }
+
+ @Override
+ public String getExternalStoragePath() {
+ return externalPath;
+ }
+
+ @Override
+ public boolean isExternalStorageAvailable() {
+ return true;
+ }
+
+ @Override
+ public String getLocalStoragePath() {
+ return localPath;
+ }
+
+ @Override
+ public boolean isLocalStorageAvailable() {
+ return true;
+ }
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import java.nio.Buffer;
+import java.nio.FloatBuffer;
+import java.nio.IntBuffer;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.graphics.GL20;
+import com.badlogic.gdx.graphics.GLCommon;
+
+
+public class IOSGLES20 implements GL20, GLCommon
+{
+ public IOSGLES20() {
+ init();
+ }
+
+ private static native void init( );
+
+ public native void glActiveTexture ( int texture );
+
+ public native void glAttachShader ( int program, int shader );
+
+ public native void glBindAttribLocation ( int program, int index, String name );
+
+ public native void glBindBuffer ( int target, int buffer );
+
+ public native void glBindFramebuffer ( int target, int framebuffer );
+
+ public native void glBindRenderbuffer ( int target, int renderbuffer );
+
+ public native void glBindTexture ( int target, int texture );
+
+ public native void glBlendColor ( float red, float green, float blue, float alpha );
+
+ public native void glBlendEquation ( int mode );
+
+ public native void glBlendEquationSeparate ( int modeRGB, int modeAlpha );
+
+ public native void glBlendFunc ( int sfactor, int dfactor );
+
+ public native void glBlendFuncSeparate ( int srcRGB, int dstRGB, int srcAlpha, int dstAlpha );
+
+ public native void glBufferData ( int target, int size, Buffer data, int usage );
+
+ public native void glBufferSubData ( int target, int offset, int size, Buffer data );
+
+ public native int glCheckFramebufferStatus ( int target );
+
+ public native void glClear ( int mask );
+
+ public native void glClearColor ( float red, float green, float blue, float alpha );
+
+ public native void glClearDepthf ( float depth );
+
+ public native void glClearStencil ( int s );
+
+ public native void glColorMask ( boolean red, boolean green, boolean blue, boolean alpha );
+
+ public native void glCompileShader ( int shader );
+
+ public native void glCompressedTexImage2D ( int target, int level, int internalformat, int width, int height, int border, int imageSize, Buffer data );
+
+ public native void glCompressedTexSubImage2D ( int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, Buffer data );
+
+ public native void glCopyTexImage2D ( int target, int level, int internalformat, int x, int y, int width, int height, int border );
+
+ public native void glCopyTexSubImage2D ( int target, int level, int xoffset, int yoffset, int x, int y, int width, int height );
+
+ public native int glCreateProgram ( );
+
+ public native int glCreateShader ( int type );
+
+ public native void glCullFace ( int mode );
+
+ public native void glDeleteBuffers ( int n, IntBuffer buffers );
+
+ public native void glDeleteFramebuffers ( int n, IntBuffer framebuffers );
+
+ public native void glDeleteProgram ( int program );
+
+ public native void glDeleteRenderbuffers ( int n, IntBuffer renderbuffers );
+
+ public native void glDeleteShader ( int shader );
+
+ public native void glDeleteTextures ( int n, IntBuffer textures );
+
+ public native void glDepthFunc ( int func );
+
+ public native void glDepthMask ( boolean flag );
+
+ public native void glDepthRangef ( float zNear, float zFar );
+
+ public native void glDetachShader ( int program, int shader );
+
+ public native void glDisable ( int cap );
+
+ public native void glDisableVertexAttribArray ( int index );
+
+ public native void glDrawArrays ( int mode, int first, int count );
+
+ public native void glDrawElements ( int mode, int count, int type, Buffer indices );
+
+ public native void glDrawElements ( int mode, int count, int type, int indices );
+
+ public native void glEnable ( int cap );
+
+ public native void glEnableVertexAttribArray ( int index );
+
+ public native void glFinish ( );
+
+ public native void glFlush ( );
+
+ public native void glFramebufferRenderbuffer ( int target, int attachment, int renderbuffertarget, int renderbuffer );
+
+ public native void glFramebufferTexture2D ( int target, int attachment, int textarget, int texture, int level );
+
+ public native void glFrontFace ( int mode );
+
+ public native void glGenBuffers ( int n, IntBuffer buffers );
+
+ public native void glGenerateMipmap ( int target );
+
+ public native void glGenFramebuffers ( int n, IntBuffer framebuffers );
+
+ public native void glGenRenderbuffers ( int n, IntBuffer renderbuffers );
+
+ public native void glGenTextures ( int n, IntBuffer textures );
+
+ public native String glGetActiveAttrib ( int program, int index, IntBuffer size, Buffer type );
+
+ public native String glGetActiveUniform ( int program, int index, IntBuffer size, Buffer type );
+
+ public native void glGetAttachedShaders ( int program, int maxcount, Buffer count, IntBuffer shaders );
+
+ public native int glGetAttribLocation ( int program, String name );
+
+ public native void glGetBooleanv ( int pname, Buffer params );
+
+ public native void glGetBufferParameteriv ( int target, int pname, IntBuffer params );
+
+ public native int glGetError ( );
+
+ public native void glGetFloatv ( int pname, FloatBuffer params );
+
+ public native void glGetFramebufferAttachmentParameteriv ( int target, int attachment, int pname, IntBuffer params );
+
+ public native void glGetIntegerv ( int pname, IntBuffer params );
+
+ public native void glGetProgramiv ( int program, int pname, IntBuffer params );
+
+ public native String glGetProgramInfoLog ( int program );
+
+ public native void glGetRenderbufferParameteriv ( int target, int pname, IntBuffer params );
+
+ public native void glGetShaderiv ( int shader, int pname, IntBuffer params );
+
+ public native String glGetShaderInfoLog ( int shader );
+
+ public native void glGetShaderPrecisionFormat ( int shadertype, int precisiontype, IntBuffer range, IntBuffer precision );
+
+ public native void glGetShaderSource ( int shader, int bufsize, Buffer length, String source );
+
+ public native String glGetString ( int name );
+
+ public native void glGetTexParameterfv ( int target, int pname, FloatBuffer params );
+
+ public native void glGetTexParameteriv ( int target, int pname, IntBuffer params );
+
+ public native void glGetUniformfv ( int program, int location, FloatBuffer params );
+
+ public native void glGetUniformiv ( int program, int location, IntBuffer params );
+
+ public native int glGetUniformLocation ( int program, String name );
+
+ public native void glGetVertexAttribfv ( int index, int pname, FloatBuffer params );
+
+ public native void glGetVertexAttribiv ( int index, int pname, IntBuffer params );
+
+ public native void glGetVertexAttribPointerv ( int index, int pname, Buffer pointer );
+
+ public native void glHint ( int target, int mode );
+
+ public native boolean glIsBuffer ( int buffer );
+
+ public native boolean glIsEnabled ( int cap );
+
+ public native boolean glIsFramebuffer ( int framebuffer );
+
+ public native boolean glIsProgram ( int program );
+
+ public native boolean glIsRenderbuffer ( int renderbuffer );
+
+ public native boolean glIsShader ( int shader );
+
+ public native boolean glIsTexture ( int texture );
+
+ public native void glLineWidth ( float width );
+
+ public native void glLinkProgram ( int program );
+
+ public native void glPixelStorei ( int pname, int param );
+
+ public native void glPolygonOffset ( float factor, float units );
+
+ public native void glReadPixels ( int x, int y, int width, int height, int format, int type, Buffer pixels );
+
+ public native void glReleaseShaderCompiler ( );
+
+ public native void glRenderbufferStorage ( int target, int internalformat, int width, int height );
+
+ public native void glSampleCoverage ( float value, boolean invert );
+
+ public native void glScissor ( int x, int y, int width, int height );
+
+ public native void glShaderBinary ( int n, IntBuffer shaders, int binaryformat, Buffer binary, int length );
+
+ public native void glShaderSource ( int shader, String string );
+
+ public native void glStencilFunc ( int func, int ref, int mask );
+
+ public native void glStencilFuncSeparate ( int face, int func, int ref, int mask );
+
+ public native void glStencilMask ( int mask );
+
+ public native void glStencilMaskSeparate ( int face, int mask );
+
+ public native void glStencilOp ( int fail, int zfail, int zpass );
+
+ public native void glStencilOpSeparate ( int face, int fail, int zfail, int zpass );
+
+ public native void glTexImage2D ( int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels );
+
+ public native void glTexParameterf ( int target, int pname, float param );
+
+ public native void glTexParameterfv ( int target, int pname, FloatBuffer params );
+
+ public native void glTexParameteri ( int target, int pname, int param );
+
+ public native void glTexParameteriv ( int target, int pname, IntBuffer params );
+
+ public native void glTexSubImage2D ( int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, Buffer pixels );
+
+ public native void glUniform1f ( int location, float x );
+
+ public native void glUniform1fv ( int location, int count, FloatBuffer v );
+
+ public native void glUniform1i ( int location, int x );
+
+ public native void glUniform1iv ( int location, int count, IntBuffer v );
+
+ public native void glUniform2f ( int location, float x, float y );
+
+ public native void glUniform2fv ( int location, int count, FloatBuffer v );
+
+ public native void glUniform2i ( int location, int x, int y );
+
+ public native void glUniform2iv ( int location, int count, IntBuffer v );
+
+ public native void glUniform3f ( int location, float x, float y, float z );
+
+ public native void glUniform3fv ( int location, int count, FloatBuffer v );
+
+ public native void glUniform3i ( int location, int x, int y, int z );
+
+ public native void glUniform3iv ( int location, int count, IntBuffer v );
+
+ public native void glUniform4f ( int location, float x, float y, float z, float w );
+
+ public native void glUniform4fv ( int location, int count, FloatBuffer v );
+
+ public native void glUniform4i ( int location, int x, int y, int z, int w );
+
+ public native void glUniform4iv ( int location, int count, IntBuffer v );
+
+ public native void glUniformMatrix2fv ( int location, int count, boolean transpose, FloatBuffer value );
+
+ public native void glUniformMatrix3fv ( int location, int count, boolean transpose, FloatBuffer value );
+
+ public native void glUniformMatrix4fv ( int location, int count, boolean transpose, FloatBuffer value );
+
+ public native void glUseProgram ( int program );
+
+ public native void glValidateProgram ( int program );
+
+ public native void glVertexAttrib1f ( int indx, float x );
+
+ public native void glVertexAttrib1fv ( int indx, FloatBuffer values );
+
+ public native void glVertexAttrib2f ( int indx, float x, float y );
+
+ public native void glVertexAttrib2fv ( int indx, FloatBuffer values );
+
+ public native void glVertexAttrib3f ( int indx, float x, float y, float z );
+
+ public native void glVertexAttrib3fv ( int indx, FloatBuffer values );
+
+ public native void glVertexAttrib4f ( int indx, float x, float y, float z, float w );
+
+ public native void glVertexAttrib4fv ( int indx, FloatBuffer values );
+
+ public native void glVertexAttribPointer ( int indx, int size, int type, boolean normalized, int stride, Buffer ptr );
+
+ public native void glVertexAttribPointer ( int indx, int size, int type, boolean normalized, int stride, int ptr );
+
+ public native void glViewport ( int x, int y, int width, int height );
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import org.robovm.cocoatouch.coregraphics.CGPoint;
+import org.robovm.cocoatouch.coregraphics.CGRect;
+import org.robovm.cocoatouch.coregraphics.CGSize;
+import org.robovm.cocoatouch.foundation.NSObject;
+import org.robovm.cocoatouch.foundation.NSSet;
+import org.robovm.cocoatouch.glkit.GLKView;
+import org.robovm.cocoatouch.glkit.GLKViewController;
+import org.robovm.cocoatouch.glkit.GLKViewControllerDelegate;
+import org.robovm.cocoatouch.glkit.GLKViewDelegate;
+import org.robovm.cocoatouch.glkit.GLKViewDrawableColorFormat;
+import org.robovm.cocoatouch.opengles.EAGLContext;
+import org.robovm.cocoatouch.opengles.EAGLRenderingAPI;
+import org.robovm.cocoatouch.uikit.UIDevice;
+import org.robovm.cocoatouch.uikit.UIEvent;
+import org.robovm.cocoatouch.uikit.UIInterfaceOrientation;
+import org.robovm.cocoatouch.uikit.UIScreen;
+import org.robovm.cocoatouch.uikit.UIUserInterfaceIdiom;
+import org.robovm.objc.Selector;
+import org.robovm.objc.annotation.BindSelector;
+import org.robovm.rt.bro.annotation.Callback;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Graphics;
+import com.badlogic.gdx.LifecycleListener;
+import com.badlogic.gdx.graphics.GL10;
+import com.badlogic.gdx.graphics.GL11;
+import com.badlogic.gdx.graphics.GL20;
+import com.badlogic.gdx.graphics.GLCommon;
+import com.badlogic.gdx.utils.Array;
+
+// FIXME add GL 1.x support by ripping Android's classes
+public class IOSGraphics extends NSObject implements Graphics, GLKViewDelegate, GLKViewControllerDelegate {
+
+ private static final String tag = "IOSGraphics";
+
+ static class IOSUIViewController extends GLKViewController {
+ final IOSApplication app;
+ final IOSGraphics graphics;
+ IOSUIViewController (IOSApplication app, IOSGraphics graphics) {
+ this.app = app;
+ this.graphics = graphics;
+ }
+
+ @Override
+ public void viewDidAppear (boolean animated) {
+ super.viewDidAppear(animated);
+ graphics.makeCurrent();
+ app.listener.create();
+ }
+
+ @Override
+ public void didRotate (UIInterfaceOrientation orientation) {
+ super.didRotate(orientation);
+ // get the view size and update graphics
+ // FIXME: supporting BOTH (landscape+portrait at same time) is currently not working correctly (needs fix)
+ // FIXME screen orientation needs to be stored for Input#getNativeOrientation
+ CGSize bounds = app.getBounds(this);
+ graphics.width = (int)bounds.width();
+ graphics.height = (int)bounds.height();
+ graphics.makeCurrent(); // not sure if that's needed? badlogic: yes it is, so resize can do OpenGL stuff, not sure if
+// it's on the correct thread though
+ app.listener.resize(graphics.width, graphics.height);
+ }
+
+ public boolean shouldAutorotateToInterfaceOrientation (UIInterfaceOrientation orientation) {
+ // we return "true" if we support the orientation
+ switch (orientation) {
+ case LandscapeLeft:
+ case LandscapeRight:
+ return app.config.orientationLandscape;
+ default:
+ // assume portrait
+ return app.config.orientationPortrait;
+ }
+ }
+ @Callback @BindSelector("shouldAutorotateToInterfaceOrientation:")
+ private static boolean shouldAutorotateToInterfaceOrientation (IOSUIViewController self, Selector sel, UIInterfaceOrientation orientation) {
+ return self.shouldAutorotateToInterfaceOrientation(orientation);
+ }
+ }
+
+ static class IOSUIView extends GLKView {
+
+ public IOSUIView (CGRect frame, EAGLContext context) {
+ super(frame, context);
+ }
+ }
+
+ IOSApplication app;
+ IOSInput input;
+ GL20 gl20;
+ int width;
+ int height;
+ long lastFrameTime;
+ float deltaTime;
+ long framesStart;
+ int frames;
+ int fps;
+ BufferFormat bufferFormat;
+ String extensions;
+
+ private float ppiX = 0;
+ private float ppiY = 0;
+ private float ppcX = 0;
+ private float ppcY = 0;
+ private float density = 1;
+
+ volatile boolean paused;
+ boolean wasPaused;
+
+ EAGLContext context;
+ GLKView view;
+ IOSUIViewController viewController;
+
+ public IOSGraphics (CGSize bounds, IOSApplication app, IOSInput input, GL20 gl20) {
+ // setup view and OpenGL
+ width = (int)bounds.width();
+ height = (int)bounds.height();
+ app.debug(tag, bounds.width() + "x" + bounds.height() + ", " + UIScreen.getMainScreen().getScale());
+ this.gl20 = gl20;
+
+ context = new EAGLContext(EAGLRenderingAPI.OpenGLES2);
+
+ view = new GLKView(new CGRect(new CGPoint(0, 0), bounds), context) {
+ @Override
+ public void touchesBegan (NSSet touches, UIEvent event) {
+ super.touchesBegan(touches, event);
+ IOSGraphics.this.input.touchDown(touches, event);
+ }
+
+ @Override
+ public void touchesCancelled (NSSet touches, UIEvent event) {
+ super.touchesCancelled(touches, event);
+ IOSGraphics.this.input.touchUp(touches, event);
+ }
+
+ @Override
+ public void touchesEnded (NSSet touches, UIEvent event) {
+ super.touchesEnded(touches, event);
+ IOSGraphics.this.input.touchUp(touches, event);
+ }
+
+ @Override
+ public void touchesMoved (NSSet touches, UIEvent event) {
+ super.touchesMoved(touches, event);
+ IOSGraphics.this.input.touchMoved(touches, event);
+ }
+
+ @Override
+ public void draw (CGRect rect) {
+ IOSGraphics.this.draw(this, rect);
+ }
+
+ };
+ view.setDelegate(this);
+ view.setDrawableColorFormat(GLKViewDrawableColorFormat.RGB565);
+
+ viewController = new IOSUIViewController(app, this);
+ viewController.setView(view);
+ viewController.setDelegate(this);
+ viewController.setPreferredFramesPerSecond(60);
+
+ this.app = app;
+ this.input = input;
+
+ // FIXME fix this if we add rgba/depth/stencil flags to IOSApplicationConfiguration
+ bufferFormat = new BufferFormat(5, 6, 5, 0, 16, 0, 0, false);
+ this.gl20 = gl20;
+
+ // determine display density and PPI (PPI values via Wikipedia!)
+ density = 1f;
+
+// if ((UIScreen.getMainScreen().respondsToSelector(new Selector("scale")))) {
+ float scale = UIScreen.getMainScreen().getScale();
+ app.debug(tag, "Calculating density, UIScreen.mainScreen.scale: " + scale);
+ if (scale == 2f) density = 2f;
+// }
+
+ int ppi;
+ if (UIDevice.getCurrentDevice().getUserInterfaceIdiom() == UIUserInterfaceIdiom.Pad) {
+ // iPad
+ ppi = Math.round(density * 132);
+ } else {
+ // iPhone or iPodTouch
+ ppi = Math.round(density * 163);
+ }
+ ppiX = ppi;
+ ppiY = ppi;
+ ppcX = ppiX / 2.54f;
+ ppcY = ppcY / 2.54f;
+ app.debug(tag, "Display: ppi=" + ppi + ", density=" + density);
+
+ // time + FPS
+ lastFrameTime = System.nanoTime();
+ framesStart = lastFrameTime;
+
+ paused = false;
+ wasPaused = true;
+ }
+
+ public void resume() {
+ paused = false;
+ }
+
+ public void pause() {
+ paused = true;
+ }
+
+ @Override
+ public void draw (GLKView view, CGRect rect) {
+ if (paused) {
+ if (!wasPaused) {
+ Array<LifecycleListener> listeners = app.lifecycleListeners;
+ synchronized(listeners) {
+ for(LifecycleListener listener: listeners) {
+ listener.pause();
+ }
+ }
+ app.listener.pause();
+ wasPaused = true;
+ }
+ return;
+ } else {
+ if (wasPaused) {
+ Array<LifecycleListener> listeners = app.lifecycleListeners;
+ synchronized(listeners) {
+ for(LifecycleListener listener: listeners) {
+ listener.resume();
+ }
+ }
+ app.listener.resume();
+ wasPaused = false;
+ }
+ }
+
+ long time = System.nanoTime();
+ deltaTime = (time - lastFrameTime) / 1000000000.0f;
+ lastFrameTime = time;
+
+ frames++;
+ if (time - framesStart >= 1000000000l) {
+ framesStart = time;
+ fps = frames;
+ frames = 0;
+ }
+
+ makeCurrent();
+ ((IOSInput)Gdx.input).processEvents();
+ app.listener.render();
+// SwapBuffers();
+ }
+
+ void makeCurrent() {
+ EAGLContext.setCurrentContext(context);
+ }
+
+ @Override
+ public void update (GLKViewController controller) {
+ makeCurrent();
+ app.processRunnables();
+ }
+
+ @Override
+ public void willPause (GLKViewController controller, boolean pause) {
+ if (pause) {
+ pause();
+ } else {
+ resume();
+ }
+ }
+
+// @Override
+// protected void OnResize (EventArgs event) {
+// super.OnResize(event);
+//
+// // not used on iOS
+// // FIXME resize could happen if app supports both portrait and landscape, so this should be implemented
+// Gdx.app.debug("IOSGraphics", "iOS OnResize(...) is not implement (don't think it is needed?).");
+// }
+
+ @Override
+ public boolean isGL11Available () {
+ return false;
+ }
+
+ @Override
+ public boolean isGL20Available () {
+ return true;
+ }
+
+ @Override
+ public GLCommon getGLCommon () {
+ return gl20;
+ }
+
+ @Override
+ public GL10 getGL10 () {
+ return null;
+ }
+
+ @Override
+ public GL11 getGL11 () {
+ return null;
+ }
+
+ @Override
+ public GL20 getGL20 () {
+ return gl20;
+ }
+
+ @Override
+ public int getWidth () {
+ return width;
+ }
+
+ @Override
+ public int getHeight () {
+ return height;
+ }
+
+ @Override
+ public float getDeltaTime () {
+ return deltaTime;
+ }
+
+ @Override
+ public float getRawDeltaTime () {
+ return deltaTime;
+ }
+
+ @Override
+ public int getFramesPerSecond () {
+ return fps;
+ }
+
+ @Override
+ public GraphicsType getType () {
+ return GraphicsType.iOSGL;
+ }
+
+ @Override
+ public float getPpiX () {
+ return ppiX;
+ }
+
+ @Override
+ public float getPpiY () {
+ return ppiY;
+ }
+
+ @Override
+ public float getPpcX () {
+ return ppcX;
+ }
+
+ @Override
+ public float getPpcY () {
+ return ppcY;
+ }
+
+ /** Returns the display density.
+ *
+ * @return 1.0f for non-retina devices, 2.0f for retina devices. */
+ @Override
+ public float getDensity () {
+ return density;
+ }
+
+ @Override
+ public boolean supportsDisplayModeChange () {
+ return false;
+ }
+
+ @Override
+ public DisplayMode[] getDisplayModes () {
+ return new DisplayMode[] {getDesktopDisplayMode()};
+ }
+
+ @Override
+ public DisplayMode getDesktopDisplayMode () {
+ return new IOSDisplayMode(getWidth(), getHeight(), 60, 0);
+ }
+
+ private static class IOSDisplayMode extends DisplayMode {
+ protected IOSDisplayMode (int width, int height, int refreshRate, int bitsPerPixel) {
+ super(width, height, refreshRate, bitsPerPixel);
+ }
+ }
+
+ @Override
+ public boolean setDisplayMode (DisplayMode displayMode) {
+ return false;
+ }
+
+ @Override
+ public boolean setDisplayMode (int width, int height, boolean fullscreen) {
+ return false;
+ }
+
+ @Override
+ public void setTitle (String title) {
+ }
+
+ @Override
+ public void setVSync (boolean vsync) {
+ }
+
+ @Override
+ public BufferFormat getBufferFormat () {
+ return bufferFormat;
+ }
+
+ @Override
+ public boolean supportsExtension (String extension) {
+ if (extensions == null) extensions = Gdx.gl.glGetString(GL10.GL_EXTENSIONS);
+ return extensions.contains(extension);
+ }
+
+ @Override
+ public void setContinuousRendering (boolean isContinuous) {
+ // FIXME implement this if possible
+ }
+
+ @Override
+ public boolean isContinuousRendering () {
+ // FIXME implement this if possible
+ return true;
+ }
+
+ @Override
+ public void requestRendering () {
+ // FIXME implement this if possible
+ }
+
+ @Override
+ public boolean isFullscreen () {
+ return true;
+ }
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import org.robovm.cocoatouch.coregraphics.CGPoint;
+import org.robovm.cocoatouch.foundation.NSArray;
+import org.robovm.cocoatouch.foundation.NSSet;
+import org.robovm.cocoatouch.uikit.UIAlertView;
+import org.robovm.cocoatouch.uikit.UIAlertViewDelegate;
+import org.robovm.cocoatouch.uikit.UIAlertViewStyle;
+import org.robovm.cocoatouch.uikit.UIEvent;
+import org.robovm.cocoatouch.uikit.UITextField;
+import org.robovm.cocoatouch.uikit.UITouch;
+import org.robovm.cocoatouch.uikit.UITouchPhase;
+import org.robovm.cocoatouch.uikit.UIView;
+import org.robovm.objc.ObjCClass;
+
+import com.badlogic.gdx.Input;
+import com.badlogic.gdx.InputProcessor;
+import com.badlogic.gdx.utils.Array;
+import com.badlogic.gdx.utils.GdxRuntimeException;
+import com.badlogic.gdx.utils.Pool;
+
+public class IOSInput implements Input {
+ static final int MAX_TOUCHES = 20;
+
+ static {
+ // HACK: Make sure UITouch has been registered
+ ObjCClass.getByType(UITouch.class);
+ }
+
+ IOSApplication app;
+ IOSApplicationConfiguration config;
+ int[] deltaX = new int[MAX_TOUCHES];
+ int[] deltaY = new int[MAX_TOUCHES];
+ int[] touchX = new int[MAX_TOUCHES];
+ int[] touchY = new int[MAX_TOUCHES];
+ // we store the pointer to the UITouch struct here, or 0
+ int[] touchDown = new int[MAX_TOUCHES];
+ int numTouched = 0;
+ boolean justTouched = false;
+ Pool<TouchEvent> touchEventPool = new Pool<TouchEvent>() {
+ @Override
+ protected TouchEvent newObject() {
+ return new TouchEvent();
+ }
+ };
+ Array<TouchEvent> touchEvents = new Array<TouchEvent>();
+ TouchEvent currentEvent = null;
+ float[] acceleration = new float[3];
+ InputProcessor inputProcessor = null;
+
+ public IOSInput(IOSApplication app) {
+ this.app = app;
+ this.config = app.config;
+ }
+
+ void setupPeripherals() {
+ setupAccelerometer();
+ }
+
+ private void setupAccelerometer() {
+// if(config.useAccelerometer) {
+// UIAccelerometer.get_SharedAccelerometer().set_Delegate(new UIAccelerometerDelegate() {
+//
+// @Override
+// public void DidAccelerate(UIAccelerometer accelerometer, UIAcceleration values) {
+// //super.DidAccelerate(accelerometer, values);
+// // FIXME take orientation into account, these values here get flipped by iOS...
+// acceleration[0] = (float)values.get_X() * 10;
+// acceleration[1] = (float)values.get_Y() * 10;
+// acceleration[2] = (float)values.get_Z() * 10;
+// }
+// });
+// UIAccelerometer.get_SharedAccelerometer().set_UpdateInterval(config.accelerometerUpdate);
+// }
+ }
+
+ @Override
+ public float getAccelerometerX() {
+ return acceleration[0];
+ }
+
+ @Override
+ public float getAccelerometerY() {
+ return acceleration[1];
+ }
+
+ @Override
+ public float getAccelerometerZ() {
+ return acceleration[2];
+ }
+
+ @Override
+ public float getAzimuth() {
+ // FIXME implement this
+ return 0;
+ }
+
+ @Override
+ public float getPitch() {
+ // FIXME implement this
+ return 0;
+ }
+
+ @Override
+ public float getRoll() {
+ // FIXME implement this
+ return 0;
+ }
+
+ @Override
+ public void getRotationMatrix(float[] matrix) {
+ // FIXME implement this
+ }
+
+ @Override
+ public int getX() {
+ return touchX[0];
+ }
+
+ @Override
+ public int getX(int pointer) {
+ return touchX[pointer];
+ }
+
+ @Override
+ public int getDeltaX() {
+ return deltaX[0];
+ }
+
+ @Override
+ public int getDeltaX(int pointer) {
+ return deltaX[pointer];
+ }
+
+ @Override
+ public int getY() {
+ return touchY[0];
+ }
+
+ @Override
+ public int getY(int pointer) {
+ return touchY[pointer];
+ }
+
+ @Override
+ public int getDeltaY() {
+ return deltaY[0];
+ }
+
+ @Override
+ public int getDeltaY(int pointer) {
+ return deltaY[pointer];
+ }
+
+ @Override
+ public boolean isTouched() {
+ return touchDown[0] != 0;
+ }
+
+ @Override
+ public boolean justTouched() {
+ return justTouched;
+ }
+
+ @Override
+ public boolean isTouched(int pointer) {
+ return touchDown[pointer] != 0;
+ }
+
+ @Override
+ public boolean isButtonPressed(int button) {
+ return button == Buttons.LEFT && numTouched > 0;
+ }
+
+ @Override
+ public boolean isKeyPressed(int key) {
+ return false;
+ }
+
+ @Override
+ public void getTextInput(TextInputListener listener, String title, String text) {
+ final UIAlertView uiAlertView = buildUIAlertView(listener, title, text);
+ //app.uiViewController.add(uiAlertView);
+ uiAlertView.show();
+ }
+
+ /** Builds an {@link UIAlertView} with an added {@link UITextField} for inputting text.
+ * @param listener Text input listener
+ * @param title Dialog title
+ * @param text Text for text field
+ * @return UiAlertView */
+ private UIAlertView buildUIAlertView (final TextInputListener listener, String title, String text) {
+ UIAlertViewDelegate delegate = new UIAlertViewDelegate.Adapter() {
+ @Override
+ public void clicked (UIAlertView view, int clicked) {
+ if (clicked == 0) {
+ // user clicked "Cancel" button
+ listener.canceled();
+ } else if (clicked == 1) {
+ // user clicked "Ok" button
+ NSArray<UIView> views = view.getSubviews();
+ for (UIView uiView : views) {
+ // find text field from sub views
+ if (uiView != null && uiView instanceof UITextField) {
+ UITextField tf = (UITextField)uiView;
+ listener.input(tf.getText());
+ }
+ }
+ }
+ }
+
+ @Override
+ public void cancel (UIAlertView view) {
+ listener.canceled();
+ }
+ };
+
+ // build the view
+ final UIAlertView uiAlertView = new UIAlertView();
+ uiAlertView.setTitle(title);
+ uiAlertView.addButton("Cancel");
+ uiAlertView.addButton("Ok");
+ uiAlertView.setAlertViewStyle(UIAlertViewStyle.PlainTextInput);
+ uiAlertView.setDelegate(delegate);
+
+ for (UIView uiView : (NSArray<UIView>) uiAlertView.getSubviews()) {
+ // find text field from sub views and add default text
+ if (uiView != null && uiView instanceof UITextField) {
+ UITextField tf = (UITextField)uiView;
+ tf.setText(text);
+ }
+ }
+
+ return uiAlertView;
+ }
+
+ @Override
+ public void getPlaceholderTextInput(TextInputListener listener, String title, String placeholder) {
+ // FIXME implement this
+ }
+
+ @Override
+ public void setOnscreenKeyboardVisible(boolean visible) {
+ }
+
+ @Override
+ public void vibrate(int milliseconds) {
+ // FIXME implement this
+ }
+
+ @Override
+ public void vibrate(long[] pattern, int repeat) {
+ // FIXME implement this
+ }
+
+ @Override
+ public void cancelVibrate() {
+ // FIXME implement this
+ }
+
+ @Override
+ public long getCurrentEventTime() {
+ return currentEvent.timestamp;
+ }
+
+ @Override
+ public void setCatchBackKey(boolean catchBack) {
+ }
+
+ @Override
+ public void setCatchMenuKey(boolean catchMenu) {
+ }
+
+ @Override
+ public void setInputProcessor(InputProcessor processor) {
+ this.inputProcessor = processor;
+ }
+
+ @Override
+ public InputProcessor getInputProcessor() {
+ return inputProcessor;
+ }
+
+ @Override
+ public boolean isPeripheralAvailable(Peripheral peripheral) {
+ if(peripheral == Peripheral.Accelerometer && config.useAccelerometer) return true;
+ if(peripheral == Peripheral.MultitouchScreen) return true;
+ // FIXME implement this (not sure if possible)
+// if(peripheral == Peripheral.OnscreenKeyboard) return true;
+ // FIXME implement this
+// if(peripheral == Peripheral.Compass) return true;
+
+ return false;
+ }
+
+ @Override
+ public int getRotation() {
+ // FIXME implement this
+ return 0;
+ }
+
+ @Override
+ public Orientation getNativeOrientation() {
+ // FIXME implement this
+ return null;
+ }
+
+ @Override
+ public void setCursorCatched(boolean catched) {
+ }
+
+ @Override
+ public boolean isCursorCatched() {
+ return false;
+ }
+
+ @Override
+ public void setCursorPosition(int x, int y) {
+ }
+
+ public void touchDown(NSSet touches, UIEvent event) {
+ toTouchEvents(touches, event);
+ }
+
+ public void touchUp(NSSet touches, UIEvent event) {
+ toTouchEvents(touches, event);
+ }
+
+ public void touchMoved(NSSet touches, UIEvent event) {
+ toTouchEvents(touches, event);
+ }
+
+ void processEvents() {
+ synchronized(touchEvents) {
+ justTouched = false;
+ for(TouchEvent event: touchEvents) {
+ currentEvent = event;
+ switch(event.phase) {
+ case Began:
+ if(inputProcessor != null) inputProcessor.touchDown(event.x, event.y, event.pointer, Buttons.LEFT);
+ if(numTouched == 1)
+ justTouched = true;
+ break;
+ case Cancelled:
+ case Ended:
+ if(inputProcessor != null) inputProcessor.touchUp(event.x, event.y, event.pointer, Buttons.LEFT);
+ break;
+ case Moved:
+ case Stationary:
+ if(inputProcessor != null) inputProcessor.touchDragged(event.x, event.y, event.pointer);
+ break;
+ }
+ }
+ touchEventPool.freeAll(touchEvents);
+ touchEvents.clear();
+ }
+ }
+
+ private int getFreePointer() {
+ for(int i = 0; i < touchDown.length; i++) {
+ if(touchDown[i] == 0) return i;
+ }
+ throw new GdxRuntimeException("Couldn't find free pointer id!");
+ }
+
+ private int findPointer(UITouch touch) {
+ int ptr = (int) touch.getHandle();
+ for(int i = 0; i < touchDown.length; i++) {
+ if(touchDown[i] == ptr) return i;
+ }
+ throw new GdxRuntimeException("Couldn't find pointer id for touch event!");
+ }
+
+ private void toTouchEvents(NSSet touches, UIEvent uiEvent) {
+ for (UITouch touch : (NSSet<UITouch>) touches) {
+ CGPoint loc = touch.getLocation(touch.getView());
+ synchronized(touchEvents) {
+ TouchEvent event = touchEventPool.obtain();
+ event.x = (int)(loc.x() * app.displayScaleFactor);
+ event.y = (int)(loc.y() * app.displayScaleFactor);
+ event.phase = touch.getPhase();
+ event.timestamp = (long)(touch.getTimestamp() * 1000000000);
+ touchEvents.add(event);
+
+ if(touch.getPhase() == UITouchPhase.Began) {
+ event.pointer = getFreePointer();
+ touchDown[event.pointer] = (int) touch.getHandle();
+ touchX[event.pointer] = event.x;
+ touchY[event.pointer] = event.y;
+ deltaX[event.pointer] = 0;
+ deltaY[event.pointer] = 0;
+ numTouched++;
+ }
+
+ if(touch.getPhase() == UITouchPhase.Moved ||
+ touch.getPhase() == UITouchPhase.Stationary) {
+ event.pointer = findPointer(touch);
+ deltaX[event.pointer] = event.x - touchX[event.pointer];
+ deltaY[event.pointer] = event.y - touchY[event.pointer];
+ touchX[event.pointer] = event.x;
+ touchY[event.pointer] = event.y;
+ }
+
+ if(touch.getPhase() == UITouchPhase.Cancelled ||
+ touch.getPhase() == UITouchPhase.Ended) {
+ event.pointer = findPointer(touch);
+ touchDown[event.pointer] = 0;
+ touchX[event.pointer] = event.x;
+ touchY[event.pointer] = event.y;
+ deltaX[event.pointer] = 0;
+ deltaY[event.pointer] = 0;
+ numTouched--;
+ }
+ }
+ }
+ }
+
+ static class TouchEvent {
+ UITouchPhase phase;
+ long timestamp;
+ int x, y;
+ int pointer;
+ }
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import com.badlogic.gdx.audio.Music;
+
+/** A music player, suitable for background music. Supports MP3 and WAV files which are played via hardware on iOS.
+ * <p>
+ * Limitations: does not play OGG.
+ *
+ * @author noblemaster */
+public class IOSMusic implements Music {
+
+ @Override
+ public void play () {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void pause () {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void stop () {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean isPlaying () {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void setLooping (boolean isLooping) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean isLooping () {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void setVolume (float volume) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public float getPosition () {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public void dispose () {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public float getVolume() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import org.robovm.cocoatouch.foundation.NSURL;
+import org.robovm.cocoatouch.uikit.UIApplication;
+
+import com.badlogic.gdx.Net;
+import com.badlogic.gdx.net.NetJavaImpl;
+import com.badlogic.gdx.net.ServerSocket;
+import com.badlogic.gdx.net.ServerSocketHints;
+import com.badlogic.gdx.net.Socket;
+import com.badlogic.gdx.net.SocketHints;
+
+public class IOSNet implements Net {
+
+ NetJavaImpl netJavaImpl = new NetJavaImpl();
+ final UIApplication uiApp;
+
+ public IOSNet (IOSApplication app) {
+ uiApp = app.uiApp;
+ }
+
+ @Override
+ public void sendHttpRequest (HttpRequest httpRequest, HttpResponseListener httpResponseListener) {
+ netJavaImpl.sendHttpRequest(httpRequest, httpResponseListener);
+ }
+
+ @Override
+ public ServerSocket newServerSocket (Protocol protocol, int port, ServerSocketHints hints) {
+ return new IOSServerSocket(protocol, port, hints);
+ }
+
+ @Override
+ public Socket newClientSocket (Protocol protocol, String host, int port, SocketHints hints) {
+ return new IOSSocket(protocol, host, port, hints);
+ }
+
+ @Override
+ public void openURI (String URI) {
+ uiApp.openURL(new NSURL(URI));
+ }
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.robovm.cocoatouch.foundation.NSMutableDictionary;
+import org.robovm.cocoatouch.foundation.NSNumber;
+import org.robovm.cocoatouch.foundation.NSObject;
+import org.robovm.cocoatouch.foundation.NSString;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Preferences;
+
+public class IOSPreferences implements Preferences {
+
+ NSMutableDictionary<NSString, NSObject> nsDictionary;
+ String filePath;
+
+ public IOSPreferences (NSMutableDictionary<NSString, NSObject> nsDictionary, String filePath) {
+ this.nsDictionary = nsDictionary;
+ this.filePath = filePath;
+ }
+
+ @Override
+ public void putBoolean (String key, boolean val) {
+ nsDictionary.put(convertKey(key), NSNumber.valueOf(val));
+ }
+
+ @Override
+ public void putInteger (String key, int val) {
+ nsDictionary.put(convertKey(key), NSNumber.valueOf(val));
+ }
+
+ @Override
+ public void putLong (String key, long val) {
+ nsDictionary.put(convertKey(key), NSNumber.valueOf(val));
+ }
+
+ @Override
+ public void putFloat (String key, float val) {
+ nsDictionary.put(convertKey(key), NSNumber.valueOf(val));
+ }
+
+ @Override
+ public void putString (String key, String val) {
+ nsDictionary.put(convertKey(key), new NSString(val));
+ }
+
+ @Override
+ public void put (Map<String, ?> vals) {
+ Set<String> keySet = vals.keySet();
+ for (String key : keySet) {
+ Object value = vals.get(key);
+ if (value instanceof String) {
+ putString(key, (String)value);
+ } else if (value instanceof Boolean) {
+ putBoolean(key, (Boolean)value);
+ } else if (value instanceof Integer) {
+ putInteger(key, (Integer)value);
+ } else if (value instanceof Long) {
+ putLong(key, (Long)value);
+ } else if (value instanceof Float) {
+ putFloat(key, (Float)value);
+ }
+ }
+ }
+
+ @Override
+ public boolean getBoolean (String key) {
+ NSNumber value = (NSNumber)nsDictionary.get(convertKey(key));
+ if (value == null) return false;
+ return value.booleanValue();
+ }
+
+ @Override
+ public int getInteger (String key) {
+ NSNumber value = (NSNumber)nsDictionary.get(convertKey(key));
+ if (value == null) return 0;
+ return value.intValue();
+ }
+
+ @Override
+ public long getLong (String key) {
+ NSNumber value = (NSNumber)nsDictionary.get(convertKey(key));
+ if (value == null) return 0L;
+ return value.longValue();
+ }
+
+ @Override
+ public float getFloat (String key) {
+ NSNumber value = (NSNumber)nsDictionary.get(convertKey(key));
+ if (value == null) return 0f;
+ return value.floatValue();
+ }
+
+ @Override
+ public String getString (String key) {
+ NSString value = (NSString)nsDictionary.get(convertKey(key));
+ if (value == null) return "";
+ return value.toString();
+ }
+
+ @Override
+ public boolean getBoolean (String key, boolean defValue) {
+ if (!contains(key)) return defValue;
+ return getBoolean(key);
+ }
+
+ @Override
+ public int getInteger (String key, int defValue) {
+ if (!contains(key)) return defValue;
+ return getInteger(key);
+ }
+
+ @Override
+ public long getLong (String key, long defValue) {
+ if (!contains(key)) return defValue;
+ return getLong(key);
+ }
+
+ @Override
+ public float getFloat (String key, float defValue) {
+ if (!contains(key)) return defValue;
+ return getFloat(key);
+ }
+
+ @Override
+ public String getString (String key, String defValue) {
+ if (!contains(key)) return defValue;
+ return getString(key);
+ }
+
+ @Override
+ public Map<String, ?> get () {
+ Map<String, Object> map = new HashMap<String, Object>();
+ for (NSString key : nsDictionary.keySet()) {
+ NSObject value = nsDictionary.get(key);
+ map.put(key.toString(), value.toString());
+ }
+ return map;
+ }
+
+ @Override
+ public boolean contains (String key) {
+ return nsDictionary.containsKey(convertKey(key));
+ }
+
+ @Override
+ public void clear () {
+ nsDictionary.clear();
+ }
+
+ @Override
+ public void remove (String key) {
+ nsDictionary.remove(convertKey(key));
+ }
+
+ private NSString convertKey (String key) {
+ return new NSString(key);
+ }
+
+ @Override
+ public void flush () {
+ boolean fileWritten = nsDictionary.writeToFile(filePath, false);
+ if (fileWritten)
+ Gdx.app.debug("IOSPreferences", "NSDictionary file written");
+ else
+ Gdx.app.debug("IOSPreferences", "Failed to write NSDictionary to file " + filePath);
+ }
+
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import java.net.InetSocketAddress;
+
+import com.badlogic.gdx.Net.Protocol;
+import com.badlogic.gdx.net.ServerSocket;
+import com.badlogic.gdx.net.ServerSocketHints;
+import com.badlogic.gdx.net.Socket;
+import com.badlogic.gdx.net.SocketHints;
+import com.badlogic.gdx.utils.GdxRuntimeException;
+
+/**
+ * Server socket implementation using java.net.ServerSocket.
+ *
+ * @author noblemaster
+ */
+public class IOSServerSocket implements ServerSocket {
+
+ private Protocol protocol;
+
+ /** Our server or null for disposed, aka closed. */
+ private java.net.ServerSocket server;
+
+
+ public IOSServerSocket(Protocol protocol, int port, ServerSocketHints hints) {
+ this.protocol = protocol;
+
+ // create the server socket
+ try {
+ // initialize
+ server = new java.net.ServerSocket();
+ if (hints != null) {
+ server.setPerformancePreferences(hints.performancePrefConnectionTime,
+ hints.performancePrefLatency,
+ hints.performancePrefBandwidth);
+ server.setReuseAddress(hints.reuseAddress);
+ server.setSoTimeout(hints.acceptTimeout);
+ server.setReceiveBufferSize(hints.receiveBufferSize);
+ }
+
+ // and bind the server...
+ InetSocketAddress address = new InetSocketAddress(port);
+ if (hints != null) {
+ server.bind(address, hints.backlog);
+ }
+ else {
+ server.bind(address);
+ }
+ }
+ catch (Exception e) {
+ throw new GdxRuntimeException("Cannot create a server socket at port " + port + ".", e);
+ }
+ }
+
+ @Override
+ public Protocol getProtocol () {
+ return protocol;
+ }
+
+ @Override
+ public Socket accept(SocketHints hints) {
+ try {
+ return new IOSSocket(server.accept(), hints);
+ }
+ catch (Exception e) {
+ throw new GdxRuntimeException("Error accepting socket.", e);
+ }
+ }
+
+ @Override
+ public void dispose() {
+ if (server != null) {
+ try {
+ server.close();
+ server = null;
+ }
+ catch (Exception e) {
+ throw new GdxRuntimeException("Error closing server.", e);
+ }
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.InetSocketAddress;
+
+import com.badlogic.gdx.Net.Protocol;
+import com.badlogic.gdx.net.Socket;
+import com.badlogic.gdx.net.SocketHints;
+import com.badlogic.gdx.utils.GdxRuntimeException;
+
+/**
+ * Socket implementation using java.net.Socket.
+ *
+ * @author noblemaster
+ */
+public class IOSSocket implements Socket {
+
+ /** Our socket or null for disposed, aka closed. */
+ private java.net.Socket socket;
+
+
+ public IOSSocket(Protocol protocol, String host, int port, SocketHints hints) {
+ try {
+ // create the socket
+ socket = new java.net.Socket();
+ applyHints(hints); // better to call BEFORE socket is connected!
+
+ // and connect...
+ InetSocketAddress address = new InetSocketAddress(host, port);
+ if (hints != null) {
+ socket.connect(address, hints.connectTimeout);
+ }
+ else {
+ socket.connect(address);
+ }
+ }
+ catch (Exception e) {
+ throw new GdxRuntimeException("Error making a socket connection to " + host + ":" + port, e);
+ }
+ }
+
+ public IOSSocket(java.net.Socket socket, SocketHints hints) {
+ this.socket = socket;
+ applyHints(hints);
+ }
+
+ private void applyHints(SocketHints hints) {
+ if (hints != null) {
+ try {
+ socket.setPerformancePreferences(hints.performancePrefConnectionTime,
+ hints.performancePrefLatency,
+ hints.performancePrefBandwidth);
+ socket.setTrafficClass(hints.trafficClass);
+ socket.setTcpNoDelay(hints.tcpNoDelay);
+ socket.setKeepAlive(hints.keepAlive);
+ socket.setSendBufferSize(hints.sendBufferSize);
+ socket.setReceiveBufferSize(hints.receiveBufferSize);
+ socket.setSoLinger(hints.linger, hints.lingerDuration);
+ }
+ catch (Exception e) {
+ throw new GdxRuntimeException("Error setting socket hints." , e);
+ }
+ }
+ }
+
+ @Override
+ public boolean isConnected () {
+ if (socket != null) {
+ return socket.isConnected();
+ }
+ else {
+ return false;
+ }
+ }
+
+ @Override
+ public InputStream getInputStream () {
+ try {
+ return socket.getInputStream();
+ }
+ catch (Exception e) {
+ throw new GdxRuntimeException("Error getting input stream from socket.", e);
+ }
+ }
+
+ @Override
+ public OutputStream getOutputStream () {
+ try {
+ return socket.getOutputStream();
+ }
+ catch (Exception e) {
+ throw new GdxRuntimeException("Error getting output stream from socket.", e);
+ }
+ }
+
+ @Override
+ public void dispose() {
+ if (socket != null) {
+ try {
+ socket.close();
+ socket = null;
+ }
+ catch (Exception e) {
+ throw new GdxRuntimeException("Error closing socket.", e);
+ }
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+package com.badlogic.gdx.backends.robovm;
+
+import com.badlogic.gdx.audio.Sound;
+
+/**
+ * Stub
+ */
+public class IOSSound implements Sound {
+
+ @Override
+ public long play () {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long play (float volume) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long play (float volume, float pitch, float pan) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long loop () {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long loop (float volume) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long loop (float volume, float pitch, float pan) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public void stop () {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void dispose () {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void stop (long soundId) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setLooping (long soundId, boolean looping) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setPitch (long soundId, float pitch) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setVolume (long soundId, float volume) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setPan (long soundId, float pan, float volume) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setPriority (long soundId, int priority) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
\ No newline at end of file
etc1/etc1_utils.cpp\
gdx2d/gdx2d.c\
gdx2d/stb_image.c\
+ iosgl/iosgl20.cpp\
memcpy_wrap.c
\r
include $(BUILD_SHARED_LIBRARY)\r
#include <com.badlogic.gdx.graphics.g2d.Gdx2DPixmap.h>
-//@line:237
+//@line:241
#include <gdx2d/gdx2d.h>
#include <stdlib.h>
JNIEXPORT jobject JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_load(JNIEnv* env, jclass clazz, jlongArray nativeData, jbyteArray buffer, jint offset, jint len, jint requestedFormat) {
-//@line:242
+//@line:246
\r
const unsigned char* p_buffer = (const unsigned char*)env->GetPrimitiveArrayCritical(buffer, 0);\r
gdx2d_pixmap* pixmap = gdx2d_load(p_buffer + offset, len, requestedFormat);\r
JNIEXPORT jobject JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_newPixmap(JNIEnv* env, jclass clazz, jlongArray nativeData, jint width, jint height, jint format) {
-//@line:261
+//@line:265
\r
gdx2d_pixmap* pixmap = gdx2d_new(width, height, format);\r
if(pixmap==0)\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_free(JNIEnv* env, jclass clazz, jlong pixmap) {
-//@line:277
+//@line:281
\r
gdx2d_free((gdx2d_pixmap*)pixmap);\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_clear(JNIEnv* env, jclass clazz, jlong pixmap, jint color) {
-//@line:281
+//@line:285
\r
gdx2d_clear((gdx2d_pixmap*)pixmap, color);\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_setPixel(JNIEnv* env, jclass clazz, jlong pixmap, jint x, jint y, jint color) {
-//@line:285
+//@line:289
\r
gdx2d_set_pixel((gdx2d_pixmap*)pixmap, x, y, color);\r
JNIEXPORT jint JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_getPixel(JNIEnv* env, jclass clazz, jlong pixmap, jint x, jint y) {
-//@line:289
+//@line:293
\r
return gdx2d_get_pixel((gdx2d_pixmap*)pixmap, x, y);\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_drawLine(JNIEnv* env, jclass clazz, jlong pixmap, jint x, jint y, jint x2, jint y2, jint color) {
-//@line:293
+//@line:297
\r
gdx2d_draw_line((gdx2d_pixmap*)pixmap, x, y, x2, y2, color);\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_drawRect(JNIEnv* env, jclass clazz, jlong pixmap, jint x, jint y, jint width, jint height, jint color) {
-//@line:297
+//@line:301
\r
gdx2d_draw_rect((gdx2d_pixmap*)pixmap, x, y, width, height, color);\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_drawCircle(JNIEnv* env, jclass clazz, jlong pixmap, jint x, jint y, jint radius, jint color) {
-//@line:301
+//@line:305
\r
gdx2d_draw_circle((gdx2d_pixmap*)pixmap, x, y, radius, color); \r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_fillRect(JNIEnv* env, jclass clazz, jlong pixmap, jint x, jint y, jint width, jint height, jint color) {
-//@line:305
+//@line:309
\r
gdx2d_fill_rect((gdx2d_pixmap*)pixmap, x, y, width, height, color);\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_fillCircle(JNIEnv* env, jclass clazz, jlong pixmap, jint x, jint y, jint radius, jint color) {
-//@line:309
+//@line:313
\r
gdx2d_fill_circle((gdx2d_pixmap*)pixmap, x, y, radius, color);\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_fillTriangle(JNIEnv* env, jclass clazz, jlong pixmap, jint x1, jint y1, jint x2, jint y2, jint x3, jint y3, jint color) {
+//@line:317
+\r
gdx2d_fill_triangle((gdx2d_pixmap*)pixmap, x1, y1, x2, y2, x3, y3, color);\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_drawPixmap(JNIEnv* env, jclass clazz, jlong src, jlong dst, jint srcX, jint srcY, jint srcWidth, jint srcHeight, jint dstX, jint dstY, jint dstWidth, jint dstHeight) {
-//@line:314
+//@line:322
\r
gdx2d_draw_pixmap((gdx2d_pixmap*)src, (gdx2d_pixmap*)dst, srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight);\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_setBlend(JNIEnv* env, jclass clazz, jint blend) {
-//@line:318
+//@line:326
\r
gdx2d_set_blend(blend);\r
JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_setScale(JNIEnv* env, jclass clazz, jint scale) {
-//@line:322
+//@line:330
\r
gdx2d_set_scale(scale);\r
JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_graphics_g2d_Gdx2DPixmap_getFailureReason(JNIEnv* env, jclass clazz) {
-//@line:326
+//@line:334
\r
return env->NewStringUTF(gdx2d_get_failure_reason());\r
-/* DO NOT EDIT THIS FILE - it is machine generated */\r
-#include <jni.h>\r
-/* Header for class com_badlogic_gdx_physics_box2d_Contact */\r
-\r
-#ifndef _Included_com_badlogic_gdx_physics_box2d_Contact\r
-#define _Included_com_badlogic_gdx_physics_box2d_Contact\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniGetWorldManifold\r
- * Signature: (J[F)I\r
- */\r
-JNIEXPORT jint JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetWorldManifold\r
- (JNIEnv *, jobject, jlong, jfloatArray);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniIsTouching\r
- * Signature: (J)Z\r
- */\r
-JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniIsTouching\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniSetEnabled\r
- * Signature: (JZ)V\r
- */\r
-JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniSetEnabled\r
- (JNIEnv *, jobject, jlong, jboolean);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniIsEnabled\r
- * Signature: (J)Z\r
- */\r
-JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniIsEnabled\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniGetFixtureA\r
- * Signature: (J)J\r
- */\r
-JNIEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetFixtureA\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniGetFixtureB\r
- * Signature: (J)J\r
- */\r
-JNIEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetFixtureB\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniGetChildIndexA\r
- * Signature: (J)I\r
- */\r
-JNIEXPORT jint JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetChildIndexA\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniGetChildIndexB\r
- * Signature: (J)I\r
- */\r
-JNIEXPORT jint JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetChildIndexB\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniSetFriction\r
- * Signature: (JF)V\r
- */\r
-JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniSetFriction\r
- (JNIEnv *, jobject, jlong, jfloat);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniGetFriction\r
- * Signature: (J)F\r
- */\r
-JNIEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetFriction\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniResetFriction\r
- * Signature: (J)V\r
- */\r
-JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniResetFriction\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniSetRestitution\r
- * Signature: (JF)V\r
- */\r
-JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniSetRestitution\r
- (JNIEnv *, jobject, jlong, jfloat);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniGetRestitution\r
- * Signature: (J)F\r
- */\r
-JNIEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetRestitution\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniResetRestitution\r
- * Signature: (J)V\r
- */\r
-JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniResetRestitution\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniGetTangentSpeed\r
- * Signature: (J)F\r
- */\r
-JNIEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetTangentSpeed\r
- (JNIEnv *, jobject, jlong);\r
-\r
-/*\r
- * Class: com_badlogic_gdx_physics_box2d_Contact\r
- * Method: jniSetTangentSpeed\r
- * Signature: (JF)V\r
- */\r
-JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniSetTangentSpeed\r
- (JNIEnv *, jobject, jlong, jfloat);\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-#endif\r
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_badlogic_gdx_physics_box2d_Contact */
+
+#ifndef _Included_com_badlogic_gdx_physics_box2d_Contact
+#define _Included_com_badlogic_gdx_physics_box2d_Contact
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniGetWorldManifold
+ * Signature: (J[F)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetWorldManifold
+ (JNIEnv *, jobject, jlong, jfloatArray);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniIsTouching
+ * Signature: (J)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniIsTouching
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniSetEnabled
+ * Signature: (JZ)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniSetEnabled
+ (JNIEnv *, jobject, jlong, jboolean);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniIsEnabled
+ * Signature: (J)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniIsEnabled
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniGetFixtureA
+ * Signature: (J)J
+ */
+JNIEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetFixtureA
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniGetFixtureB
+ * Signature: (J)J
+ */
+JNIEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetFixtureB
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniGetChildIndexA
+ * Signature: (J)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetChildIndexA
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniGetChildIndexB
+ * Signature: (J)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetChildIndexB
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniSetFriction
+ * Signature: (JF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniSetFriction
+ (JNIEnv *, jobject, jlong, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniGetFriction
+ * Signature: (J)F
+ */
+JNIEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetFriction
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniResetFriction
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniResetFriction
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniSetRestitution
+ * Signature: (JF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniSetRestitution
+ (JNIEnv *, jobject, jlong, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniGetRestitution
+ * Signature: (J)F
+ */
+JNIEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetRestitution
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniResetRestitution
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniResetRestitution
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniGetTangentSpeed
+ * Signature: (J)F
+ */
+JNIEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniGetTangentSpeed
+ (JNIEnv *, jobject, jlong);
+
+/*
+ * Class: com_badlogic_gdx_physics_box2d_Contact
+ * Method: jniSetTangentSpeed
+ * Signature: (JF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_physics_box2d_Contact_jniSetTangentSpeed
+ (JNIEnv *, jobject, jlong, jfloat);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
--- /dev/null
+#ifdef TARGET_OS_IPHONE
+#include <iosgles20.h>
+#include <OpenGLES/ES2/gl.h>
+#include <OpenGLES/ES2/glext.h>
+#include <stdio.h>
+
+static jclass bufferClass;
+static jclass byteBufferClass;
+static jclass charBufferClass;
+static jclass shortBufferClass;
+static jclass intBufferClass;
+static jclass longBufferClass;
+static jclass floatBufferClass;
+static jclass doubleBufferClass;
+static jclass OOMEClass;
+static jclass UOEClass;
+static jclass IAEClass;
+
+static jmethodID positionID;
+
+
+static void
+nativeClassInitBuffer(JNIEnv *_env)
+{
+ jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
+ bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
+
+ byteBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/ByteBuffer"));
+ charBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/CharBuffer"));
+ shortBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/ShortBuffer"));
+ intBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/IntBuffer"));
+ longBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/LongBuffer"));
+ floatBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/FloatBuffer"));
+ doubleBufferClass = (jclass) _env->NewGlobalRef(_env->FindClass("java/nio/DoubleBuffer"));
+
+ positionID = _env->GetMethodID(bufferClass, "position","()I");
+ if(positionID == 0) _env->ThrowNew(IAEClass, "Couldn't fetch position() method");
+}
+
+static void
+nativeClassInit(JNIEnv *_env)
+{
+ nativeClassInitBuffer(_env);
+
+ jclass IAEClassLocal =
+ _env->FindClass("java/lang/IllegalArgumentException");
+ jclass OOMEClassLocal =
+ _env->FindClass("java/lang/OutOfMemoryError");
+ jclass UOEClassLocal =
+ _env->FindClass("java/lang/UnsupportedOperationException");
+
+ IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
+ OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
+ UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
+}
+
+static jint getElementSizeShift(JNIEnv *_env, jobject buffer) {
+ if(_env->IsInstanceOf(buffer, byteBufferClass)) return 0;
+ if(_env->IsInstanceOf(buffer, floatBufferClass)) return 2;
+ if(_env->IsInstanceOf(buffer, shortBufferClass)) return 1;
+
+ if(_env->IsInstanceOf(buffer, charBufferClass)) return 1;
+ if(_env->IsInstanceOf(buffer, intBufferClass)) return 2;
+ if(_env->IsInstanceOf(buffer, longBufferClass)) return 3;
+ if(_env->IsInstanceOf(buffer, doubleBufferClass)) return 3;
+
+ _env->ThrowNew(IAEClass, "buffer type unkown! (Not a ByteBuffer, ShortBuffer, etc.)");
+ return 0;
+}
+
+inline jint getBufferPosition(JNIEnv *env, jobject buffer)
+{
+ jint ret = env->CallIntMethodA(buffer, positionID, 0);
+ return ret;
+}
+
+static void *
+getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
+ if (!buffer) {
+ return NULL;
+ }
+ void* buf = _env->GetDirectBufferAddress(buffer);
+ if (buf) {
+ jint position = getBufferPosition(_env, buffer);
+ jint elementSizeShift = getElementSizeShift(_env, buffer);
+ buf = ((char*) buf) + (position << elementSizeShift);
+ } else {
+ _env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
+ }
+ return buf;
+}
+
+static const char* getString( JNIEnv *env, jstring string )
+{
+ return (const char*)env->GetStringUTFChars(string, NULL);
+}
+
+static void releaseString( JNIEnv *env, jstring string, const char* cString )
+{
+ env->ReleaseStringUTFChars(string, cString);
+}
+
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_init
+ (JNIEnv *env, jclass)
+{
+ nativeClassInit( env );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glActiveTexture
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glActiveTexture
+ (JNIEnv *, jobject, jint texture)
+{
+ glActiveTexture( texture );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glAttachShader
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glAttachShader
+ (JNIEnv *, jobject, jint program, jint shader)
+{
+ glAttachShader( program, shader );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBindAttribLocation
+ * Signature: (IILjava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBindAttribLocation
+ (JNIEnv *env, jobject, jint program, jint index, jstring name)
+{
+ const char* namePtr = getString( env, name );
+ glBindAttribLocation( program, index, namePtr );
+ releaseString( env, name, namePtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBindBuffer
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBindBuffer
+ (JNIEnv *env, jobject, jint target, jint buffer)
+{
+ glBindBuffer( target, buffer );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBindFramebuffer
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBindFramebuffer
+ (JNIEnv *env, jobject, jint target, jint framebuffer)
+{
+ glBindFramebuffer( target, framebuffer );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBindRenderbuffer
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBindRenderbuffer
+ (JNIEnv *env, jobject, jint target, jint renderbuffer)
+{
+ glBindRenderbuffer( target, renderbuffer );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBindTexture
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBindTexture
+ (JNIEnv *env, jobject, jint target, jint texture)
+{
+ glBindTexture( target, texture );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBlendColor
+ * Signature: (FFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBlendColor
+ (JNIEnv *env, jobject, jfloat red, jfloat green, jfloat blue, jfloat alpha)
+{
+ glBlendColor( red, green, blue, alpha );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBlendEquation
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBlendEquation
+ (JNIEnv *env, jobject, jint mode)
+{
+ glBlendEquation( mode );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBlendEquationSeparate
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBlendEquationSeparate
+ (JNIEnv *env, jobject, jint modeRGB, jint modeAlpha)
+{
+ glBlendEquationSeparate( modeRGB, modeAlpha );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBlendFunc
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBlendFunc
+ (JNIEnv *env, jobject, jint sfactor, jint dfactor)
+{
+ glBlendFunc( sfactor, dfactor );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBlendFuncSeparate
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBlendFuncSeparate
+ (JNIEnv *env, jobject, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha)
+{
+ glBlendFuncSeparate( srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBufferData
+ * Signature: (IILjava/nio/Buffer;I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBufferData
+ (JNIEnv * env, jobject, jint target, jint size, jobject data, jint usage)
+{
+ void* dataPtr = getDirectBufferPointer( env, data );
+ glBufferData( target, size, dataPtr, usage );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBufferSubData
+ * Signature: (IIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBufferSubData
+ (JNIEnv *env, jobject, jint target, jint offset, jint size, jobject data)
+{
+ void* dataPtr = getDirectBufferPointer( env, data );
+ glBufferSubData( target, offset, size, dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCheckFramebufferStatus
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCheckFramebufferStatus
+ (JNIEnv *env, jobject, jint target)
+{
+ return glCheckFramebufferStatus( target );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glClear
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glClear
+ (JNIEnv *env, jobject, jint mask)
+{
+ glClear( mask );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glClearColor
+ * Signature: (FFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glClearColor
+ (JNIEnv *env, jobject, jfloat red, jfloat green, jfloat blue, jfloat alpha)
+{
+ glClearColor( red, green, blue, alpha );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glClearDepthf
+ * Signature: (F)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glClearDepthf
+ (JNIEnv *env, jobject, jfloat depth)
+{
+ glClearDepthf( depth );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glClearStencil
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glClearStencil
+ (JNIEnv *env, jobject, jint s)
+{
+ glClearStencil( s );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glColorMask
+ * Signature: (ZZZZ)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glColorMask
+ (JNIEnv *env, jobject, jboolean red, jboolean green, jboolean blue, jboolean alpha)
+{
+ glColorMask( red, green, blue, alpha );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCompileShader
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCompileShader
+ (JNIEnv *env, jobject, jint shader)
+{
+ glCompileShader( shader );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCompressedTexImage2D
+ * Signature: (IIIIIIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCompressedTexImage2D
+ (JNIEnv *env, jobject, jint target, jint level, jint internalFormat, jint width, jint height, jint border, jint imageSize, jobject data)
+{
+ void* dataPtr = getDirectBufferPointer( env, data );
+ glCompressedTexImage2D( target, level, internalFormat, width, height, border, imageSize, dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCompressedTexSubImage2D
+ * Signature: (IIIIIIIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCompressedTexSubImage2D
+ (JNIEnv *env, jobject, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data)
+{
+ void* dataPtr = getDirectBufferPointer( env, data );
+ glCompressedTexSubImage2D( target, level, xoffset, yoffset, width, height, format, imageSize, dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCopyTexImage2D
+ * Signature: (IIIIIIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCopyTexImage2D
+ (JNIEnv *env, jobject, jint target, jint level, jint internalFormat, jint x, jint y, jint width, jint height, jint border)
+{
+ glCopyTexImage2D( target, level, internalFormat, x, y, width, height, border );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCopyTexSubImage2D
+ * Signature: (IIIIIIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCopyTexSubImage2D
+ (JNIEnv *env, jobject, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height)
+{
+ glCopyTexSubImage2D( target, level, xoffset, yoffset, x, y, width, height );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCreateProgram
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCreateProgram
+ (JNIEnv *env, jobject)
+{
+ return glCreateProgram( );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCreateShader
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCreateShader
+ (JNIEnv *env, jobject, jint type)
+{
+ return glCreateShader( type );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCullFace
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCullFace
+ (JNIEnv *env, jobject, jint mode)
+{
+ glCullFace( mode );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteBuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteBuffers
+ (JNIEnv *env, jobject, jint n, jobject buffers)
+{
+ void* dataPtr = getDirectBufferPointer( env, buffers );
+ glDeleteBuffers( n, (GLuint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteFramebuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteFramebuffers
+ (JNIEnv *env, jobject, jint n, jobject framebuffers)
+{
+ void* dataPtr = getDirectBufferPointer( env, framebuffers );
+ glDeleteFramebuffers( n, (GLuint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteProgram
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteProgram
+ (JNIEnv *env, jobject, jint program)
+{
+ glDeleteProgram( program );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteRenderbuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteRenderbuffers
+ (JNIEnv *env, jobject, jint n, jobject renderbuffers)
+{
+ void* dataPtr = getDirectBufferPointer( env, renderbuffers );
+ glDeleteRenderbuffers( n, (GLuint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteShader
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteShader
+ (JNIEnv *env, jobject, jint shader)
+{
+ glDeleteShader( shader );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteTextures
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteTextures
+ (JNIEnv *env, jobject, jint n, jobject textures)
+{
+ void* dataPtr = getDirectBufferPointer( env, textures );
+ glDeleteTextures( n, (GLuint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDepthFunc
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDepthFunc
+ (JNIEnv *env, jobject, jint func)
+{
+ glDepthFunc( func );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDepthMask
+ * Signature: (Z)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDepthMask
+ (JNIEnv *env, jobject, jboolean flag)
+{
+ glDepthMask( flag );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDepthRangef
+ * Signature: (FF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDepthRangef
+ (JNIEnv *env, jobject, jfloat zNear, jfloat zFar)
+{
+ glDepthRangef( zNear, zFar );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDetachShader
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDetachShader
+ (JNIEnv *env, jobject, jint program, jint shader)
+{
+ glDetachShader( program, shader );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDisable
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDisable
+ (JNIEnv *env, jobject, jint cap)
+{
+ glDisable( cap );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDisableVertexAttribArray
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDisableVertexAttribArray
+ (JNIEnv *env, jobject, jint index)
+{
+ glDisableVertexAttribArray( index );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDrawArrays
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDrawArrays
+ (JNIEnv *env, jobject, jint mode, jint first, jint count)
+{
+ glDrawArrays( mode, first, count );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDrawElements
+ * Signature: (IIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDrawElements__IIILjava_nio_Buffer_2
+(JNIEnv *env, jobject, jint mode, jint count, jint type, jobject indices)
+{
+ void* dataPtr = getDirectBufferPointer( env, indices );
+ //__android_log_print(ANDROID_LOG_INFO, "GL2", "drawelements");
+ glDrawElements( mode, count, type, dataPtr );
+}
+
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDrawElements__IIII
+ (JNIEnv *, jobject, jint mode, jint count, jint type, jint indices)
+{
+ glDrawElements( mode, count, type, (const void*)indices );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glEnable
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glEnable
+ (JNIEnv *env, jobject, jint cap)
+{
+ glEnable( cap );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glEnableVertexAttribArray
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glEnableVertexAttribArray
+ (JNIEnv *env, jobject, jint index)
+{
+ glEnableVertexAttribArray( index );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glFinish
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glFinish
+ (JNIEnv *env, jobject)
+{
+ glFinish();
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glFlush
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glFlush
+ (JNIEnv *env, jobject)
+{
+ glFlush();
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glFramebufferRenderbuffer
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glFramebufferRenderbuffer
+ (JNIEnv *env, jobject, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer)
+{
+ glFramebufferRenderbuffer( target, attachment, renderbuffertarget, renderbuffer );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glFramebufferTexture2D
+ * Signature: (IIIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glFramebufferTexture2D
+ (JNIEnv *env, jobject, jint target, jint attachment, jint textarget, jint texture, jint level)
+{
+ glFramebufferTexture2D( target, attachment, textarget, texture, level );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glFrontFace
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glFrontFace
+ (JNIEnv *env, jobject, jint mode)
+{ //XXXX
+ glFrontFace( mode );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGenBuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGenBuffers
+ (JNIEnv *env, jobject, jint n, jobject buffers)
+{
+ void* dataPtr = getDirectBufferPointer( env, buffers );
+ glGenBuffers( n, (GLuint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGenerateMipmap
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGenerateMipmap
+ (JNIEnv *env, jobject, jint target)
+{
+ glGenerateMipmap( target );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGenFramebuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGenFramebuffers
+ (JNIEnv *env, jobject, jint n, jobject framebuffers)
+{
+ void* dataPtr = getDirectBufferPointer( env, framebuffers );
+ glGenFramebuffers( n, (GLuint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGenRenderbuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGenRenderbuffers
+ (JNIEnv *env, jobject, jint n, jobject renderbuffers)
+{
+ void* dataPtr = getDirectBufferPointer( env, renderbuffers );
+ glGenRenderbuffers( n, (GLuint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGenTextures
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGenTextures
+ (JNIEnv *env, jobject, jint n, jobject textures)
+{
+ void* dataPtr = getDirectBufferPointer( env, textures );
+ glGenTextures( n, (GLuint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetActiveAttrib
+ * Signature: (IIILjava/nio/Buffer;Ljava/nio/IntBuffer;Ljava/nio/Buffer;Ljava/lang/String;)V
+ */
+JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetActiveAttrib
+ (JNIEnv *env, jobject, jint program, jint index, jobject size, jobject type )
+{
+ // FIXME is this wrong?
+ char cname[2048];
+ void* sizePtr = getDirectBufferPointer( env, size );
+ void* typePtr = getDirectBufferPointer( env, type );
+ glGetActiveAttrib( program, index, 2048, NULL, (GLint*)sizePtr, (GLenum*)typePtr, cname );
+
+ return env->NewStringUTF( cname );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetActiveUniform
+ * Signature: (IIILjava/nio/Buffer;Ljava/nio/IntBuffer;Ljava/nio/Buffer;Ljava/lang/String;)V
+ */
+JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetActiveUniform
+ (JNIEnv *env, jobject, jint program, jint index, jobject size, jobject type)
+{
+ // FIXME is this wrong?
+ char cname[2048];
+ void* sizePtr = getDirectBufferPointer( env, size );
+ void* typePtr = getDirectBufferPointer( env, type );
+ glGetActiveUniform( program, index, 2048, NULL, (GLint*)sizePtr, (GLenum*)typePtr, cname );
+
+ return env->NewStringUTF( cname );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetAttachedShaders
+ * Signature: (IILjava/nio/Buffer;Ljava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetAttachedShaders
+ (JNIEnv *env, jobject, jint program, jint maxcount, jobject count, jobject shaders)
+{
+ void* countPtr = getDirectBufferPointer( env, count );
+ void* shaderPtr = getDirectBufferPointer( env, shaders );
+ glGetAttachedShaders( program, maxcount, (GLsizei*)countPtr, (GLuint*)shaderPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetAttribLocation
+ * Signature: (ILjava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetAttribLocation
+ (JNIEnv *env, jobject, jint program, jstring name)
+{
+ const char* cname = getString( env, name );
+ int loc = glGetAttribLocation( program, cname );
+ releaseString( env, name, cname );
+ return loc;
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetBooleanv
+ * Signature: (ILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetBooleanv
+ (JNIEnv *env, jobject, jint program, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetBooleanv( program, (GLboolean*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetBufferParameteriv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetBufferParameteriv
+ (JNIEnv *env, jobject, jint target, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetBufferParameteriv( target, pname, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetError
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetError
+ (JNIEnv *env, jobject)
+{
+ return glGetError();
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetFloatv
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetFloatv
+ (JNIEnv *env, jobject, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetFloatv( pname, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetFramebufferAttachmentParameteriv
+ * Signature: (IIILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetFramebufferAttachmentParameteriv
+ (JNIEnv *env, jobject, jint target, jint attachment, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetFramebufferAttachmentParameteriv( target, attachment, pname, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetIntegerv
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetIntegerv
+ (JNIEnv *env, jobject, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetIntegerv( pname, (GLint*)dataPtr);
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetProgramiv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetProgramiv
+ (JNIEnv *env, jobject, jint program, jint pname, jobject params)
+{
+ void *dataPtr = getDirectBufferPointer( env, params );
+ glGetProgramiv( program, pname, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetProgramInfoLog
+ * Signature: (IILjava/nio/Buffer;Ljava/lang/String;)V
+ */
+JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetProgramInfoLog
+ (JNIEnv *env, jobject, jint program )
+{
+ char info[1024*10]; // FIXME 10k limit should suffice
+ int length = 0;
+ glGetProgramInfoLog( program, 1024*10, &length, info );
+ return env->NewStringUTF( info );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetRenderbufferParameteriv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetRenderbufferParameteriv
+ (JNIEnv *env, jobject, jint target, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetRenderbufferParameteriv( target, pname, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetShaderiv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetShaderiv
+ (JNIEnv *env, jobject, jint shader, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetShaderiv( shader, pname, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetShaderInfoLog
+ * Signature: (IILjava/nio/Buffer;Ljava/lang/String;)V
+ */
+JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetShaderInfoLog
+ (JNIEnv *env, jobject, jint shader )
+{
+ char info[1024*10]; // FIXME 10k limit should suffice
+ int length = 0;
+ glGetShaderInfoLog( shader, 1024*10, &length, info );
+ return env->NewStringUTF( info );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetShaderPrecisionFormat
+ * Signature: (IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetShaderPrecisionFormat
+ (JNIEnv *env, jobject, jint shadertype, jint precisiontype, jobject range, jobject precision)
+{
+ void* rangePtr = getDirectBufferPointer( env, range );
+ void* precisionPtr = getDirectBufferPointer( env, precision );
+ glGetShaderPrecisionFormat( shadertype, precisiontype, (GLint*)rangePtr, (GLint*)precisionPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetShaderSource
+ * Signature: (IILjava/nio/Buffer;Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetShaderSource
+ (JNIEnv *env, jobject, jint shader, jint bufsize, jobject length, jstring source)
+{
+ env->ThrowNew(UOEClass, "This method is not supported"); // FIXME won't implement this shit.
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetString
+ * Signature: (I)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetString
+ (JNIEnv *env, jobject, jint name)
+{
+ const char * chars = (const char *)glGetString((GLenum)name);
+ jstring output = env->NewStringUTF(chars);
+ return output;
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetTexParameterfv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetTexParameterfv
+ (JNIEnv *env, jobject, jint target, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetTexParameterfv( target, pname, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetTexParameteriv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetTexParameteriv
+ (JNIEnv *env, jobject, jint target, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetTexParameteriv( target, pname, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetUniformfv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetUniformfv
+ (JNIEnv *env, jobject, jint program, jint location, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetUniformfv( program, location, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetUniformiv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetUniformiv
+ (JNIEnv *env, jobject, jint program, jint location, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetUniformiv( program, location, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetUniformLocation
+ * Signature: (ILjava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetUniformLocation
+ (JNIEnv *env, jobject, jint program, jstring name)
+{
+ const char* cname = getString( env, name );
+ int location = glGetUniformLocation( program, cname );
+ releaseString( env, name, cname );
+ return location;
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetVertexAttribfv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetVertexAttribfv
+ (JNIEnv *env, jobject, jint index, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetVertexAttribfv( index, pname, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetVertexAttribiv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetVertexAttribiv
+ (JNIEnv *env, jobject, jint index, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glGetVertexAttribiv( index, pname, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetVertexAttribPointerv
+ * Signature: (IILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetVertexAttribPointerv
+ (JNIEnv *env, jobject, jint index, jint pname, jobject pointer)
+{
+ env->ThrowNew(UOEClass, "This method is not supported"); // FIXME won't implement this shit
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glHint
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glHint
+ (JNIEnv *env, jobject, jint target, jint mode)
+{
+ glHint( target, mode );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsBuffer
+ * Signature: (I)C
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsBuffer
+ (JNIEnv *env, jobject, jint buffer)
+{
+ return glIsBuffer( buffer );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsEnabled
+ * Signature: (I)C
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsEnabled
+ (JNIEnv *env, jobject, jint cap)
+{
+ return glIsEnabled( cap );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsFramebuffer
+ * Signature: (I)C
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsFramebuffer
+ (JNIEnv *env, jobject, jint framebuffer)
+{
+ return glIsFramebuffer( framebuffer );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsProgram
+ * Signature: (I)C
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsProgram
+ (JNIEnv *env, jobject, jint program)
+{
+ return glIsProgram( program );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsRenderbuffer
+ * Signature: (I)C
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsRenderbuffer
+ (JNIEnv *env, jobject, jint renderbuffer)
+{
+ return glIsRenderbuffer( renderbuffer );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsShader
+ * Signature: (I)C
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsShader
+ (JNIEnv *env, jobject, jint shader)
+{
+ return glIsShader( shader );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsTexture
+ * Signature: (I)C
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsTexture
+ (JNIEnv *env, jobject, jint texture)
+{
+ return glIsTexture( texture );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glLineWidth
+ * Signature: (F)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glLineWidth
+ (JNIEnv *env, jobject, jfloat width)
+{
+ glLineWidth( width );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glLinkProgram
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glLinkProgram
+ (JNIEnv *env, jobject, jint program)
+{
+ glLinkProgram( program );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glPixelStorei
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glPixelStorei
+ (JNIEnv *env, jobject, jint pname, jint param)
+{
+ glPixelStorei( pname, param );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glPolygonOffset
+ * Signature: (FF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glPolygonOffset
+ (JNIEnv *env, jobject, jfloat factor, jfloat units)
+{
+ glPolygonOffset( factor, units );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glReadPixels
+ * Signature: (IIIIIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glReadPixels
+ (JNIEnv *env, jobject, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels)
+{
+ void* dataPtr = getDirectBufferPointer( env, pixels );
+ glReadPixels( x, y, width, height, format, type, dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glReleaseShaderCompiler
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glReleaseShaderCompiler
+ (JNIEnv *env, jobject)
+{
+ glReleaseShaderCompiler();
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glRenderbufferStorage
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glRenderbufferStorage
+ (JNIEnv *env, jobject, jint target, jint internalFormat, jint width, jint height)
+{
+ glRenderbufferStorage( target, internalFormat, width, height );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glSampleCoverage
+ * Signature: (FZ)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glSampleCoverage
+ (JNIEnv *env, jobject, jfloat value, jboolean inver)
+{
+ glSampleCoverage( value, inver );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glScissor
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glScissor
+ (JNIEnv *env, jobject, jint x, jint y, jint width, jint height)
+{
+ glScissor( x, y, width, height );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glShaderBinary
+ * Signature: (ILjava/nio/IntBuffer;ILjava/nio/Buffer;I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glShaderBinary
+ (JNIEnv *env, jobject, jint n, jobject shaders, jint binaryformat, jobject binary, jint length)
+{
+ void* shaderPtr = getDirectBufferPointer( env, shaders );
+ void* binaryPtr = getDirectBufferPointer( env, binary );
+ glShaderBinary( n, (GLuint*)shaderPtr, binaryformat, binaryPtr, length );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glShaderSource
+ * Signature: (IILjava/lang/String;Ljava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glShaderSource
+ (JNIEnv *env, jobject, jint shader, jstring string )
+{
+ const char* cstring = getString( env, string );
+ glShaderSource( shader, 1, &cstring, NULL );
+ releaseString( env, string, cstring );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilFunc
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilFunc
+ (JNIEnv *env, jobject, jint func, jint ref, jint mask)
+{
+ glStencilFunc( func, ref, mask );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilFuncSeparate
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilFuncSeparate
+ (JNIEnv *env, jobject, jint face, jint func, jint ref, jint mask)
+{
+ glStencilFuncSeparate( face, func, ref, mask );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilMask
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilMask
+ (JNIEnv *env, jobject, jint mask)
+{
+ glStencilMask( mask );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilMaskSeparate
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilMaskSeparate
+ (JNIEnv *env, jobject, jint face, jint mask)
+{
+ glStencilMaskSeparate( face, mask );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilOp
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilOp
+ (JNIEnv *env, jobject, jint fail, jint zFail, jint zpass)
+{
+ glStencilOp( fail, zFail, zpass );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilOpSeparate
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilOpSeparate
+ (JNIEnv *env, jobject, jint face, jint fail, jint zFail, jint zPass)
+{
+ glStencilOpSeparate( face, fail, zFail, zPass );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexImage2D
+ * Signature: (IIIIIIIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexImage2D
+ (JNIEnv *env, jobject, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels)
+{
+ void* dataPtr = getDirectBufferPointer( env, pixels );
+ glTexImage2D( target, level, internalformat, width, height, border, format, type, dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexParameterf
+ * Signature: (IIF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexParameterf
+ (JNIEnv *env, jobject, jint target, jint pname, jfloat param)
+{
+ glTexParameterf( target, pname, param );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexParameterfv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexParameterfv
+ (JNIEnv *env, jobject, jint target, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glTexParameterfv( target, pname, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexParameteri
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexParameteri
+ (JNIEnv *env, jobject, jint target, jint pname, jint param)
+{
+ glTexParameteri( target, pname, param );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexParameteriv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexParameteriv
+ (JNIEnv *env, jobject, jint target, jint pname, jobject params)
+{
+ void* dataPtr = getDirectBufferPointer( env, params );
+ glTexParameteriv( target, pname, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexSubImage2D
+ * Signature: (IIIIIIIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexSubImage2D
+ (JNIEnv *env, jobject, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels)
+{
+ void* dataPtr = getDirectBufferPointer( env, pixels );
+ glTexSubImage2D( target, level, xoffset, yoffset, width, height, format, type, dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform1f
+ * Signature: (IF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform1f
+ (JNIEnv *env, jobject, jint location, jfloat x)
+{
+ glUniform1f( location, x );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform1fv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform1fv
+ (JNIEnv *env, jobject, jint location, jint count, jobject v)
+{
+ void* dataPtr = getDirectBufferPointer( env, v );
+ glUniform1fv( location, count, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform1i
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform1i
+ (JNIEnv *env, jobject, jint location, jint x)
+{
+ glUniform1i( location, x );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform1iv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform1iv
+ (JNIEnv *env, jobject, jint location, jint count, jobject v)
+{
+ void* dataPtr = getDirectBufferPointer( env, v );
+ glUniform1iv( location, count, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform2f
+ * Signature: (IFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform2f
+ (JNIEnv *env, jobject, jint location, jfloat x, jfloat y)
+{
+ glUniform2f( location, x, y );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform2fv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform2fv
+ (JNIEnv *env, jobject, jint location, jint count, jobject v)
+{
+ void* dataPtr = getDirectBufferPointer( env, v );
+ glUniform2fv( location, count, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform2i
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform2i
+ (JNIEnv *env, jobject, jint location, jint x, jint y)
+{
+ glUniform2i( location, x, y );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform2iv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform2iv
+ (JNIEnv *env, jobject, jint location, jint count, jobject v)
+{
+ void* dataPtr = getDirectBufferPointer( env, v );
+ glUniform2iv( location, count, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform3f
+ * Signature: (IFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform3f
+ (JNIEnv *env, jobject, jint location, jfloat x, jfloat y, jfloat z)
+{
+ glUniform3f( location, x, y, z );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform3fv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform3fv
+ (JNIEnv *env, jobject, jint location, jint count, jobject v)
+{
+ void* dataPtr = getDirectBufferPointer( env, v );
+ glUniform3fv( location, count, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform3i
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform3i
+ (JNIEnv *env, jobject, jint location, jint x, jint y, jint z)
+{
+ glUniform3i( location, x, y, z );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform3iv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform3iv
+ (JNIEnv *env, jobject, jint location, jint count, jobject v)
+{
+ void* dataPtr = getDirectBufferPointer( env, v );
+ glUniform3iv( location, count, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform4f
+ * Signature: (IFFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform4f
+ (JNIEnv *env, jobject, jint location, jfloat x, jfloat y, jfloat z, jfloat w)
+{
+ glUniform4f( location, x, y, z, w );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform4fv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform4fv
+ (JNIEnv *env, jobject, jint location, jint count, jobject v)
+{
+ void* dataPtr = getDirectBufferPointer( env, v );
+ glUniform4fv( location, count, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform4i
+ * Signature: (IIIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform4i
+ (JNIEnv *env, jobject, jint location, jint x, jint y, jint z, jint w)
+{
+ glUniform4i( location, x, y, z, w );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform4iv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform4iv
+ (JNIEnv *env, jobject, jint location, jint count, jobject v)
+{
+ void* dataPtr = getDirectBufferPointer( env, v );
+ glUniform4iv( location, count, (GLint*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniformMatrix2fv
+ * Signature: (IIZLjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniformMatrix2fv
+ (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value)
+{
+ void* dataPtr = getDirectBufferPointer( env, value );
+ glUniformMatrix2fv( location, count, transpose, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniformMatrix3fv
+ * Signature: (IIZLjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniformMatrix3fv
+ (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value)
+{
+ void* dataPtr = getDirectBufferPointer( env, value );
+ glUniformMatrix3fv( location, count, transpose, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniformMatrix4fv
+ * Signature: (IIZLjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniformMatrix4fv
+ (JNIEnv *env, jobject, jint location, jint count, jboolean transpose, jobject value)
+{
+ void* dataPtr = getDirectBufferPointer( env, value );
+ glUniformMatrix4fv( location, count, transpose, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUseProgram
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUseProgram
+ (JNIEnv *env, jobject, jint program)
+{
+ glUseProgram( program );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glValidateProgram
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glValidateProgram
+ (JNIEnv *env, jobject, jint program)
+{
+ glValidateProgram( program );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib1f
+ * Signature: (IF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib1f
+ (JNIEnv *env, jobject, jint indx, jfloat x)
+{
+ glVertexAttrib1f( indx, x );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib1fv
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib1fv
+ (JNIEnv *env, jobject, jint indx, jobject values)
+{
+ void* dataPtr = getDirectBufferPointer( env, values );
+ glVertexAttrib1fv( indx, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib2f
+ * Signature: (IFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib2f
+ (JNIEnv *env, jobject, jint indx, jfloat x, jfloat y)
+{
+ glVertexAttrib2f( indx, x, y );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib2fv
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib2fv
+ (JNIEnv *env, jobject, jint indx, jobject values)
+{
+ void* dataPtr = getDirectBufferPointer( env, values );
+ glVertexAttrib2fv( indx, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib3f
+ * Signature: (IFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib3f
+ (JNIEnv *env, jobject, jint indx, jfloat x, jfloat y, jfloat z)
+{
+ glVertexAttrib3f( indx, x, y, z );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib3fv
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib3fv
+ (JNIEnv *env, jobject, jint indx, jobject values)
+{
+ void* dataPtr = getDirectBufferPointer( env, values );
+ glVertexAttrib3fv( indx, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib4f
+ * Signature: (IFFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib4f
+ (JNIEnv *env, jobject, jint indx, jfloat x, jfloat y, jfloat z, jfloat w)
+{
+ glVertexAttrib4f( indx, x, y, z, w );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib4fv
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib4fv
+ (JNIEnv *env, jobject, jint indx, jobject values)
+{
+ void* dataPtr = getDirectBufferPointer( env, values );
+ glVertexAttrib4fv( indx, (GLfloat*)dataPtr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttribPointer
+ * Signature: (IIIZILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttribPointer__IIIZILjava_nio_Buffer_2
+ (JNIEnv *env, jobject, jint indx, jint size, jint type, jboolean normalized, jint stride, jobject ptr)
+{
+ void* dataPtr = getDirectBufferPointer( env, ptr );
+ glVertexAttribPointer( indx, size, type, normalized, stride, dataPtr );
+}
+
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttribPointer__IIIZII
+ (JNIEnv *, jobject, jint indx, jint size, jint type, jboolean normalized, jint stride, jint ptr)
+{
+ glVertexAttribPointer( indx, size, type, normalized, stride, (const void*)ptr );
+}
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glViewport
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glViewport
+ (JNIEnv *env, jobject, jint x, jint y, jint width, jint height)
+{
+ glViewport( x, y, width, height );
+}
+#endif
--- /dev/null
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_badlogic_gdx_backends_iosrobovm_IOSGLES20 */
+
+#ifndef _Included_com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+#define _Included_com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: init
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_init
+ (JNIEnv *, jclass);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glActiveTexture
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glActiveTexture
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glAttachShader
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glAttachShader
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBindAttribLocation
+ * Signature: (IILjava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBindAttribLocation
+ (JNIEnv *, jobject, jint, jint, jstring);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBindBuffer
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBindBuffer
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBindFramebuffer
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBindFramebuffer
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBindRenderbuffer
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBindRenderbuffer
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBindTexture
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBindTexture
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBlendColor
+ * Signature: (FFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBlendColor
+ (JNIEnv *, jobject, jfloat, jfloat, jfloat, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBlendEquation
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBlendEquation
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBlendEquationSeparate
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBlendEquationSeparate
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBlendFunc
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBlendFunc
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBlendFuncSeparate
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBlendFuncSeparate
+ (JNIEnv *, jobject, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBufferData
+ * Signature: (IILjava/nio/Buffer;I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBufferData
+ (JNIEnv *, jobject, jint, jint, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glBufferSubData
+ * Signature: (IIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glBufferSubData
+ (JNIEnv *, jobject, jint, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCheckFramebufferStatus
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCheckFramebufferStatus
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glClear
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glClear
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glClearColor
+ * Signature: (FFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glClearColor
+ (JNIEnv *, jobject, jfloat, jfloat, jfloat, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glClearDepthf
+ * Signature: (F)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glClearDepthf
+ (JNIEnv *, jobject, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glClearStencil
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glClearStencil
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glColorMask
+ * Signature: (ZZZZ)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glColorMask
+ (JNIEnv *, jobject, jboolean, jboolean, jboolean, jboolean);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCompileShader
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCompileShader
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCompressedTexImage2D
+ * Signature: (IIIIIIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCompressedTexImage2D
+ (JNIEnv *, jobject, jint, jint, jint, jint, jint, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCompressedTexSubImage2D
+ * Signature: (IIIIIIIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCompressedTexSubImage2D
+ (JNIEnv *, jobject, jint, jint, jint, jint, jint, jint, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCopyTexImage2D
+ * Signature: (IIIIIIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCopyTexImage2D
+ (JNIEnv *, jobject, jint, jint, jint, jint, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCopyTexSubImage2D
+ * Signature: (IIIIIIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCopyTexSubImage2D
+ (JNIEnv *, jobject, jint, jint, jint, jint, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCreateProgram
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCreateProgram
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCreateShader
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCreateShader
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glCullFace
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glCullFace
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteBuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteBuffers
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteFramebuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteFramebuffers
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteProgram
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteProgram
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteRenderbuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteRenderbuffers
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteShader
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteShader
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDeleteTextures
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDeleteTextures
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDepthFunc
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDepthFunc
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDepthMask
+ * Signature: (Z)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDepthMask
+ (JNIEnv *, jobject, jboolean);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDepthRangef
+ * Signature: (FF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDepthRangef
+ (JNIEnv *, jobject, jfloat, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDetachShader
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDetachShader
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDisable
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDisable
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDisableVertexAttribArray
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDisableVertexAttribArray
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDrawArrays
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDrawArrays
+ (JNIEnv *, jobject, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDrawElements
+ * Signature: (IIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDrawElements__IIILjava_nio_Buffer_2
+ (JNIEnv *, jobject, jint, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glDrawElements
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glDrawElements__IIII
+ (JNIEnv *, jobject, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glEnable
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glEnable
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glEnableVertexAttribArray
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glEnableVertexAttribArray
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glFinish
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glFinish
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glFlush
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glFlush
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glFramebufferRenderbuffer
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glFramebufferRenderbuffer
+ (JNIEnv *, jobject, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glFramebufferTexture2D
+ * Signature: (IIIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glFramebufferTexture2D
+ (JNIEnv *, jobject, jint, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glFrontFace
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glFrontFace
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGenBuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGenBuffers
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGenerateMipmap
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGenerateMipmap
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGenFramebuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGenFramebuffers
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGenRenderbuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGenRenderbuffers
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGenTextures
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGenTextures
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetActiveAttrib
+ * Signature: (IILjava/nio/IntBuffer;Ljava/nio/Buffer;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetActiveAttrib
+ (JNIEnv *, jobject, jint, jint, jobject, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetActiveUniform
+ * Signature: (IILjava/nio/IntBuffer;Ljava/nio/Buffer;)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetActiveUniform
+ (JNIEnv *, jobject, jint, jint, jobject, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetAttachedShaders
+ * Signature: (IILjava/nio/Buffer;Ljava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetAttachedShaders
+ (JNIEnv *, jobject, jint, jint, jobject, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetAttribLocation
+ * Signature: (ILjava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetAttribLocation
+ (JNIEnv *, jobject, jint, jstring);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetBooleanv
+ * Signature: (ILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetBooleanv
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetBufferParameteriv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetBufferParameteriv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetError
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetError
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetFloatv
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetFloatv
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetFramebufferAttachmentParameteriv
+ * Signature: (IIILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetFramebufferAttachmentParameteriv
+ (JNIEnv *, jobject, jint, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetIntegerv
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetIntegerv
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetProgramiv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetProgramiv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetProgramInfoLog
+ * Signature: (I)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetProgramInfoLog
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetRenderbufferParameteriv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetRenderbufferParameteriv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetShaderiv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetShaderiv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetShaderInfoLog
+ * Signature: (I)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetShaderInfoLog
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetShaderPrecisionFormat
+ * Signature: (IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetShaderPrecisionFormat
+ (JNIEnv *, jobject, jint, jint, jobject, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetShaderSource
+ * Signature: (IILjava/nio/Buffer;Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetShaderSource
+ (JNIEnv *, jobject, jint, jint, jobject, jstring);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetString
+ * Signature: (I)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetString
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetTexParameterfv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetTexParameterfv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetTexParameteriv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetTexParameteriv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetUniformfv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetUniformfv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetUniformiv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetUniformiv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetUniformLocation
+ * Signature: (ILjava/lang/String;)I
+ */
+JNIEXPORT jint JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetUniformLocation
+ (JNIEnv *, jobject, jint, jstring);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetVertexAttribfv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetVertexAttribfv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetVertexAttribiv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetVertexAttribiv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glGetVertexAttribPointerv
+ * Signature: (IILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glGetVertexAttribPointerv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glHint
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glHint
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsBuffer
+ * Signature: (I)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsBuffer
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsEnabled
+ * Signature: (I)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsEnabled
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsFramebuffer
+ * Signature: (I)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsFramebuffer
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsProgram
+ * Signature: (I)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsProgram
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsRenderbuffer
+ * Signature: (I)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsRenderbuffer
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsShader
+ * Signature: (I)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsShader
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glIsTexture
+ * Signature: (I)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glIsTexture
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glLineWidth
+ * Signature: (F)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glLineWidth
+ (JNIEnv *, jobject, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glLinkProgram
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glLinkProgram
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glPixelStorei
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glPixelStorei
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glPolygonOffset
+ * Signature: (FF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glPolygonOffset
+ (JNIEnv *, jobject, jfloat, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glReadPixels
+ * Signature: (IIIIIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glReadPixels
+ (JNIEnv *, jobject, jint, jint, jint, jint, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glReleaseShaderCompiler
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glReleaseShaderCompiler
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glRenderbufferStorage
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glRenderbufferStorage
+ (JNIEnv *, jobject, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glSampleCoverage
+ * Signature: (FZ)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glSampleCoverage
+ (JNIEnv *, jobject, jfloat, jboolean);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glScissor
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glScissor
+ (JNIEnv *, jobject, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glShaderBinary
+ * Signature: (ILjava/nio/IntBuffer;ILjava/nio/Buffer;I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glShaderBinary
+ (JNIEnv *, jobject, jint, jobject, jint, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glShaderSource
+ * Signature: (ILjava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glShaderSource
+ (JNIEnv *, jobject, jint, jstring);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilFunc
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilFunc
+ (JNIEnv *, jobject, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilFuncSeparate
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilFuncSeparate
+ (JNIEnv *, jobject, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilMask
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilMask
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilMaskSeparate
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilMaskSeparate
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilOp
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilOp
+ (JNIEnv *, jobject, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glStencilOpSeparate
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glStencilOpSeparate
+ (JNIEnv *, jobject, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexImage2D
+ * Signature: (IIIIIIIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexImage2D
+ (JNIEnv *, jobject, jint, jint, jint, jint, jint, jint, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexParameterf
+ * Signature: (IIF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexParameterf
+ (JNIEnv *, jobject, jint, jint, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexParameterfv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexParameterfv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexParameteri
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexParameteri
+ (JNIEnv *, jobject, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexParameteriv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexParameteriv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glTexSubImage2D
+ * Signature: (IIIIIIIILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glTexSubImage2D
+ (JNIEnv *, jobject, jint, jint, jint, jint, jint, jint, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform1f
+ * Signature: (IF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform1f
+ (JNIEnv *, jobject, jint, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform1fv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform1fv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform1i
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform1i
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform1iv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform1iv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform2f
+ * Signature: (IFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform2f
+ (JNIEnv *, jobject, jint, jfloat, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform2fv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform2fv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform2i
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform2i
+ (JNIEnv *, jobject, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform2iv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform2iv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform3f
+ * Signature: (IFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform3f
+ (JNIEnv *, jobject, jint, jfloat, jfloat, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform3fv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform3fv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform3i
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform3i
+ (JNIEnv *, jobject, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform3iv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform3iv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform4f
+ * Signature: (IFFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform4f
+ (JNIEnv *, jobject, jint, jfloat, jfloat, jfloat, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform4fv
+ * Signature: (IILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform4fv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform4i
+ * Signature: (IIIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform4i
+ (JNIEnv *, jobject, jint, jint, jint, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniform4iv
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniform4iv
+ (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniformMatrix2fv
+ * Signature: (IIZLjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniformMatrix2fv
+ (JNIEnv *, jobject, jint, jint, jboolean, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniformMatrix3fv
+ * Signature: (IIZLjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniformMatrix3fv
+ (JNIEnv *, jobject, jint, jint, jboolean, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUniformMatrix4fv
+ * Signature: (IIZLjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUniformMatrix4fv
+ (JNIEnv *, jobject, jint, jint, jboolean, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glUseProgram
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glUseProgram
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glValidateProgram
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glValidateProgram
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib1f
+ * Signature: (IF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib1f
+ (JNIEnv *, jobject, jint, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib1fv
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib1fv
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib2f
+ * Signature: (IFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib2f
+ (JNIEnv *, jobject, jint, jfloat, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib2fv
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib2fv
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib3f
+ * Signature: (IFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib3f
+ (JNIEnv *, jobject, jint, jfloat, jfloat, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib3fv
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib3fv
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib4f
+ * Signature: (IFFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib4f
+ (JNIEnv *, jobject, jint, jfloat, jfloat, jfloat, jfloat);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttrib4fv
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttrib4fv
+ (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttribPointer
+ * Signature: (IIIZILjava/nio/Buffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttribPointer__IIIZILjava_nio_Buffer_2
+ (JNIEnv *, jobject, jint, jint, jint, jboolean, jint, jobject);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glVertexAttribPointer
+ * Signature: (IIIZII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glVertexAttribPointer__IIIZII
+ (JNIEnv *, jobject, jint, jint, jint, jboolean, jint, jint);
+
+/*
+ * Class: com_badlogic_gdx_backends_iosrobovm_IOSGLES20
+ * Method: glViewport
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_com_badlogic_gdx_backends_iosrobovm_IOSGLES20_glViewport
+ (JNIEnv *, jobject, jint, jint, jint, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif