diff options
author | Tom-Ski <tomaszwojciechowski@hotmail.co.uk> | 2016-05-11 22:26:33 +0100 |
---|---|---|
committer | Tom-Ski <tomaszwojciechowski@hotmail.co.uk> | 2016-05-11 22:26:33 +0100 |
commit | aeee032f4ca0fe3851fa3aa2e5821675239301bc (patch) | |
tree | 00f78efd3561b3fbbe87f67555302d602a56fbfb | |
parent | 7dadefc6694a8380005b8c960aef14109e1f7b24 (diff) | |
parent | d6c17c069b74acfa6f852a6c0c81d4d4e858d613 (diff) | |
download | libgdx-aeee032f4ca0fe3851fa3aa2e5821675239301bc.tar.gz |
Merge branch 'moe'
97 files changed, 8533 insertions, 27 deletions
diff --git a/.gitignore b/.gitignore index 9ac65dd1d..09b8bd4dd 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,10 @@ *~ .*.swp .DS_STORE - +robovm-build/ +project.xcworkspace/ +xcuserdata/ +xcode/native/ .gradle/ build/ bin/ @@ -66,3 +69,9 @@ libgdx-*.zip.MD5 #directories created by fetch.xml /tests/gdx-tests-android/libs /tmp/ + +#gradle wrapper +/gradle/ +/gradlew +/gradlew.bat +/local.properties diff --git a/backends/gdx-backend-moe/.classpath b/backends/gdx-backend-moe/.classpath new file mode 100644 index 000000000..94e1a482d --- /dev/null +++ b/backends/gdx-backend-moe/.classpath @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry combineaccessrules="false" kind="src" path="/gdx"/> + <classpathentry kind="lib" path="libs/intel-moe-core.jar"/> + <classpathentry kind="lib" path="libs/intel-moe-ios.jar"/> + <classpathentry kind="output" path="bin"/> +</classpath>
\ No newline at end of file diff --git a/backends/gdx-backend-moe/.project b/backends/gdx-backend-moe/.project new file mode 100644 index 000000000..60c292a10 --- /dev/null +++ b/backends/gdx-backend-moe/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>gdx-backend-moe</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>
\ No newline at end of file diff --git a/backends/gdx-backend-moe/build-objectal.sh b/backends/gdx-backend-moe/build-objectal.sh new file mode 100755 index 000000000..6e672d717 --- /dev/null +++ b/backends/gdx-backend-moe/build-objectal.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +BASE=$(cd $(dirname $0); pwd -P) + +BUILD_DIR=$BASE/target/objectal +rm -rf $BUILD_DIR +mkdir -p $BUILD_DIR + +curl https://codeload.github.com/libgdx/ObjectAL-for-iPhone/legacy.tar.gz/master -o $BUILD_DIR/objectal.tar.gz + +tar xvfz $BUILD_DIR/objectal.tar.gz -C $BUILD_DIR --strip-components 1 + +XCODEPROJ=$BUILD_DIR/ObjectAL/ObjectAL.xcodeproj + +xcodebuild -project $XCODEPROJ -arch armv7 -sdk iphoneos CONFIGURATION_BUILD_DIR=$BUILD_DIR/armv7 OTHER_CFLAGS="-fembed-bitcode -miphoneos-version-min=6.0" +xcodebuild -project $XCODEPROJ -arch arm64 -sdk iphoneos CONFIGURATION_BUILD_DIR=$BUILD_DIR/arm64 OTHER_CFLAGS="-fembed-bitcode -miphoneos-version-min=6.0" +xcodebuild -project $XCODEPROJ -arch i386 -sdk iphonesimulator CONFIGURATION_BUILD_DIR=$BUILD_DIR/i386 OTHER_CFLAGS="-miphoneos-version-min=6.0" +xcodebuild -project $XCODEPROJ -arch x86_64 -sdk iphonesimulator CONFIGURATION_BUILD_DIR=$BUILD_DIR/x86_64 OTHER_CFLAGS="-miphoneos-version-min=6.0" +xcodebuild -project $XCODEPROJ -arch arm64 -sdk appletvos CONFIGURATION_BUILD_DIR=$BUILD_DIR/tvos-arm64 OTHER_CFLAGS="-fembed-bitcode -mtvos-version-min=9.0" +xcodebuild -project $XCODEPROJ -arch x86_64 -sdk appletvsimulator CONFIGURATION_BUILD_DIR=$BUILD_DIR/tvos-x86_64 OTHER_CFLAGS="-mtvos-version-min=9.0" + +lipo $BUILD_DIR/armv7/libObjectAL.a \ + $BUILD_DIR/arm64/libObjectAL.a \ + $BUILD_DIR/i386/libObjectAL.a \ + $BUILD_DIR/x86_64/libObjectAL.a \ + -create \ + -output $BUILD_DIR/libObjectAL.a + +cp $BUILD_DIR/libObjectAL.a $BASE/../../gdx/libs/ios32/ + +lipo $BUILD_DIR/tvos-arm64/libObjectAL.a \ + $BUILD_DIR/tvos-x86_64/libObjectAL.a \ + -create \ + -output $BUILD_DIR/libObjectAL.a.tvos + +cp $BUILD_DIR/libObjectAL.a.tvos $BASE/../../gdx/libs/ios32/ diff --git a/backends/gdx-backend-moe/libs/intel-moe-core.jar b/backends/gdx-backend-moe/libs/intel-moe-core.jar Binary files differnew file mode 100755 index 000000000..b03907926 --- /dev/null +++ b/backends/gdx-backend-moe/libs/intel-moe-core.jar diff --git a/backends/gdx-backend-moe/libs/intel-moe-ios.jar b/backends/gdx-backend-moe/libs/intel-moe-ios.jar Binary files differnew file mode 100755 index 000000000..93059bed9 --- /dev/null +++ b/backends/gdx-backend-moe/libs/intel-moe-ios.jar diff --git a/backends/gdx-backend-moe/pom.xml b/backends/gdx-backend-moe/pom.xml new file mode 100644 index 000000000..cebc6e6da --- /dev/null +++ b/backends/gdx-backend-moe/pom.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>com.badlogicgames.gdx</groupId> + <artifactId>gdx-parent</artifactId> + <version>1.9.3-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + + <artifactId>gdx-backend-moe</artifactId> + <packaging>jar</packaging> + <name>libGDX iOS Multi-OS Engine Backend</name> + + <dependencies> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>gdx</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>com.intel.moe</groupId> + <artifactId>moe-core</artifactId> + <version>${moe.version}</version> + <scope>system</scope> + <systemPath>${basedir}/libs/intel-moe-core.jar</systemPath> + <optional>true</optional> + </dependency> + + <dependency> + <groupId>com.intel.moe</groupId> + <artifactId>moe-ios</artifactId> + <version>${moe.version}</version> + <scope>system</scope> + <systemPath>${basedir}/libs/intel-moe-ios.jar</systemPath> + <optional>true</optional> + </dependency> + </dependencies> + + <build> + <sourceDirectory>src</sourceDirectory> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <phase>generate-resources</phase> + <goals> + <goal>jar-no-fork</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSApplication.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSApplication.java new file mode 100755 index 000000000..3375d80e2 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSApplication.java @@ -0,0 +1,458 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import android.util.Log;
+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.backends.iosmoe.objectal.OALAudioSession;
+import com.badlogic.gdx.backends.iosmoe.objectal.OALSimpleAudio;
+import com.badlogic.gdx.utils.Array;
+import com.badlogic.gdx.utils.Clipboard;
+import com.intel.moe.natj.general.Pointer;
+import com.intel.moe.natj.objc.ann.Selector;
+import ios.NSObject;
+import ios.coregraphics.struct.CGPoint;
+import ios.coregraphics.struct.CGRect;
+import ios.coregraphics.struct.CGSize;
+import ios.foundation.NSDictionary;
+import ios.foundation.NSMutableDictionary;
+import ios.foundation.NSString;
+import ios.foundation.NSThread;
+import ios.uikit.UIApplication;
+import ios.uikit.UIDevice;
+import ios.uikit.UIPasteboard;
+import ios.uikit.UIScreen;
+import ios.uikit.UIViewController;
+import ios.uikit.UIWindow;
+import ios.uikit.enums.UIInterfaceOrientation;
+import ios.uikit.enums.UIUserInterfaceIdiom;
+import ios.uikit.protocol.UIApplicationDelegate;
+
+import java.io.File;
+
+public class IOSApplication implements Application {
+
+ public static abstract class Delegate extends NSObject implements UIApplicationDelegate {
+
+ private IOSApplication app;
+
+ protected Delegate (Pointer peer) {
+ super(peer);
+ }
+
+ @Selector("alloc")
+ public static native Delegate alloc();
+
+ protected abstract IOSApplication createApplication ();
+
+ @Override
+ public boolean applicationDidFinishLaunchingWithOptions (UIApplication application, NSDictionary<?, ?> launchOptions) {
+ this.app = createApplication();
+ return app.didFinishLaunching(application, launchOptions);
+ }
+
+ @Override
+ public void applicationDidBecomeActive (UIApplication application) {
+ app.didBecomeActive(application);
+ }
+
+
+ @Override
+ public void applicationWillEnterForeground (UIApplication application) {
+ app.willEnterForeground(application);
+ }
+
+ @Override
+ public void applicationWillResignActive (UIApplication application) {
+ app.willResignActive(application);
+ }
+
+ @Override
+ public void applicationWillTerminate (UIApplication application) {
+ app.willTerminate(application);
+ }
+ }
+
+ UIApplication uiApp;
+ UIWindow uiWindow;
+ ApplicationListener listener;
+ IOSViewControllerListener viewControllerListener;
+ 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;
+
+ private CGRect lastScreenBounds = null;
+
+ 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<?, ?> launchOptions) {
+ Gdx.app = this;
+ this.uiApp = uiApp;
+
+ // enable or disable screen dimming
+ UIApplication.sharedApplication().setIdleTimerDisabled(config.preventScreenDimming);
+
+ Gdx.app.debug("IOSApplication", "iOS version: " + UIDevice.currentDevice().systemVersion());
+ // fix the scale factor if we have a retina device (NOTE: iOS screen sizes are in "points" not pixels by default!)
+
+ float scale = (float)(getIosVersion() >= 8 ? UIScreen.mainScreen().nativeScale() : UIScreen.mainScreen()
+ .nativeScale());
+ if (scale >= 2.0f) {
+ Gdx.app.debug("IOSApplication", "scale: " + scale);
+ if (UIDevice.currentDevice().userInterfaceIdiom() == UIUserInterfaceIdiom.Pad) {
+ // it's an iPad!
+ displayScaleFactor = config.displayScaleLargeScreenIfRetina * scale;
+ } else {
+ // it's an iPod or iPhone
+ displayScaleFactor = config.displayScaleSmallScreenIfRetina * scale;
+ }
+ } else {
+ // no retina screen: no scaling!
+ if (UIDevice.currentDevice().userInterfaceIdiom() == UIUserInterfaceIdiom.Pad) {
+ // it's an iPad!
+ displayScaleFactor = config.displayScaleLargeScreenIfNonRetina;
+ } else {
+ // it's an iPod or iPhone
+ displayScaleFactor = config.displayScaleSmallScreenIfNonRetina;
+ }
+ }
+
+ // setup libgdx
+ this.input = new IOSInput(this);
+ this.graphics = IOSGraphics.alloc().init(scale, this, config, input, config.useGL30);
+ Gdx.gl = Gdx.gl20 = graphics.gl20;
+ Gdx.gl30 = graphics.gl30;
+ this.files = new IOSFiles();
+ this.audio = new IOSAudio(config);
+ 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 = UIWindow.alloc().initWithFrame(UIScreen.mainScreen().bounds());
+ this.uiWindow.setRootViewController(this.graphics.viewController);
+ this.uiWindow.makeKeyAndVisible();
+ Gdx.app.debug("IOSApplication", "created");
+ return true;
+ }
+
+ private int getIosVersion () {
+ String systemVersion = UIDevice.currentDevice().systemVersion();
+ int version = Integer.parseInt(systemVersion.split("\\.")[0]);
+ return version;
+ }
+
+ /** Return the UI view controller of IOSApplication
+ * @return the view controller of IOSApplication */
+ public UIViewController getUIViewController () {
+ return graphics.viewController;
+ }
+
+ /** Return the UI Window of IOSApplication
+ * @return the window */
+ public UIWindow getUIWindow () {
+ return uiWindow;
+ }
+
+ /** GL View spans whole screen, that is, even under the status bar. iOS can also rotate the screen, which is not handled
+ * consistently over iOS versions. This method returns, in pixels, rectangle in which libGDX draws.
+ *
+ * @return dimensions of space we draw to, adjusted for device orientation */
+ protected CGRect getBounds () {
+ final CGRect screenBounds = UIScreen.mainScreen().bounds();
+ final CGRect statusBarFrame = uiApp.statusBarFrame();
+ final long statusBarOrientation = uiApp.statusBarOrientation();
+
+ double statusBarHeight = Math.min(statusBarFrame.size().width(), statusBarFrame.size().height());
+
+ double screenWidth = screenBounds.size().width();
+ double screenHeight = screenBounds.size().height();
+
+ // Make sure that the orientation is consistent with ratios. Should be, but may not be on older iOS versions
+ if (statusBarOrientation == UIInterfaceOrientation.LandscapeLeft || statusBarOrientation == UIInterfaceOrientation.LandscapeRight) {
+ if (screenHeight > screenWidth) {
+ debug("IOSApplication", "Switching reported width and height (w=" + screenWidth + " h=" + screenHeight + ")");
+ double tmp = screenHeight;
+ // noinspection SuspiciousNameCombination
+ screenHeight = screenWidth;
+ screenWidth = tmp;
+ }
+ }
+
+ // update width/height depending on display scaling selected
+ screenWidth *= displayScaleFactor;
+ screenHeight *= displayScaleFactor;
+
+ if (statusBarHeight != 0.0) {
+ debug("IOSApplication", "Status bar is visible (height = " + statusBarHeight + ")");
+ statusBarHeight *= displayScaleFactor;
+ screenHeight -= statusBarHeight;
+ } else {
+ debug("IOSApplication", "Status bar is not visible");
+ }
+
+ debug("IOSApplication", "Total computed bounds are w=" + screenWidth + " h=" + screenHeight);
+
+ return lastScreenBounds = new CGRect(new CGPoint(0, statusBarHeight), new CGSize(screenWidth, screenHeight));
+ }
+
+ protected CGRect getCachedBounds () {
+ if (lastScreenBounds == null)
+ return getBounds();
+ else
+ return lastScreenBounds;
+ }
+
+ final void didBecomeActive (UIApplication uiApp) {
+ Gdx.app.debug("IOSApplication", "resumed");
+ // workaround for ObjectAL crash problem
+ // see: https://groups.google.com/forum/?fromgroups=#!topic/objectal-for-iphone/ubRWltp_i1Q
+ OALAudioSession.sharedInstance().forceEndInterruption();
+ if (config.allowIpod) {
+ OALSimpleAudio.sharedInstance().setUseHardwareIfAvailable(false);
+ }
+ graphics.makeCurrent();
+ graphics.resume();
+ }
+
+ final void willEnterForeground (UIApplication uiApp) {
+ // workaround for ObjectAL crash problem
+ // see: https://groups.google.com/forum/?fromgroups=#!topic/objectal-for-iphone/ubRWltp_i1Q
+ OALAudioSession.sharedInstance().forceEndInterruption();
+ }
+
+ 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 debug (String tag, String message) {
+ if (logLevel >= LOG_DEBUG) {
+ Log.d(tag, message);
+ }
+ }
+
+ @Override
+ public void debug (String tag, String message, Throwable exception) {
+ if (logLevel >= LOG_DEBUG) {
+ Log.d(tag, message, exception);
+ }
+ }
+
+ @Override
+ public void log (String tag, String message) {
+ if (logLevel >= LOG_INFO) Log.i(tag, message);
+ }
+
+ @Override
+ public void log (String tag, String message, Throwable exception) {
+ if (logLevel >= LOG_INFO) Log.i(tag, message, exception);
+ }
+
+ @Override
+ public void error (String tag, String message) {
+ if (logLevel >= LOG_ERROR) Log.e(tag, message);
+ }
+
+ @Override
+ public void error (String tag, String message, Throwable exception) {
+ if (logLevel >= LOG_ERROR) Log.e(tag, message, exception);
+ }
+
+ @Override
+ public void setLogLevel (int logLevel) {
+ this.logLevel = logLevel;
+ }
+
+ @Override
+ public int getLogLevel () {
+ return logLevel;
+ }
+
+ @Override
+ public ApplicationType getType () {
+ return ApplicationType.iOS;
+ }
+
+ @Override
+ public int getVersion () {
+ return Integer.parseInt(UIDevice.currentDevice().systemVersion().split("\\.")[0]);
+ }
+
+ @Override
+ public long getJavaHeap () {
+ return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
+ }
+
+ @Override
+ public long getNativeHeap () {
+ return getJavaHeap();
+ }
+
+ @Override
+ public Preferences getPreferences (String name) {
+ File libraryPath = new File(System.getenv("HOME"), "Library");
+ File finalPath = new File(libraryPath, name + ".plist");
+ String path = libraryPath + "/" + name + ".plist";
+
+ NSMutableDictionary<NSString, NSObject> nsDictionary = NSMutableDictionary.dictionaryWithContentsOfFile(path);
+
+ // if it fails to get an existing dictionary, create a new one.
+ if (nsDictionary == null) {
+ nsDictionary = (NSMutableDictionary<NSString, NSObject>)NSMutableDictionary.alloc().init();
+ nsDictionary.writeToFileAtomically(path, false);
+ }
+ return new IOSPreferences(nsDictionary, finalPath.getAbsolutePath());
+ }
+
+ @Override
+ public void postRunnable (Runnable runnable) {
+ synchronized (runnables) {
+ runnables.add(runnable);
+ Gdx.graphics.requestRendering();
+ }
+ }
+
+ 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 () {
+ NSThread.exit();
+ }
+
+ @Override
+ public Clipboard getClipboard () {
+ return new Clipboard() {
+ @Override
+ public void setContents (String content) {
+ UIPasteboard.generalPasteboard().setString(content);
+ }
+
+ @Override
+ public String getContents () {
+ return UIPasteboard.generalPasteboard().string();
+ }
+ };
+ }
+
+ @Override
+ public void addLifecycleListener (LifecycleListener listener) {
+ synchronized (lifecycleListeners) {
+ lifecycleListeners.add(listener);
+ }
+ }
+
+ @Override
+ public void removeLifecycleListener (LifecycleListener listener) {
+ synchronized (lifecycleListeners) {
+ lifecycleListeners.removeValue(listener, true);
+ }
+ }
+
+ /** Add a listener to handle events from the libgdx root view controller
+ * @param listener The {#link IOSViewControllerListener} to add */
+ public void addViewControllerListener (IOSViewControllerListener listener) {
+ viewControllerListener = listener;
+ }
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSApplicationConfiguration.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSApplicationConfiguration.java new file mode 100755 index 000000000..9f4d9cafe --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSApplicationConfiguration.java @@ -0,0 +1,100 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import ios.glkit.enums.GLKViewDrawableColorFormat;
+import ios.glkit.enums.GLKViewDrawableDepthFormat;
+import ios.glkit.enums.GLKViewDrawableMultisample;
+import ios.glkit.enums.GLKViewDrawableStencilFormat;
+
+public class IOSApplicationConfiguration {
+ /** 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;
+
+ /** the color format, RGB565 is the default **/
+ public int colorFormat = GLKViewDrawableColorFormat.RGB565;
+
+ /** the depth buffer format, Format16 is default **/
+ public int depthFormat = GLKViewDrawableDepthFormat.Format16;
+
+ /** the stencil buffer format, None is default **/
+ public int stencilFormat = GLKViewDrawableStencilFormat.FormatNone;
+
+ /** the multisample format, None is default **/
+ public int multisample = GLKViewDrawableMultisample.MultisampleNone;
+
+ /** number of frames per second, 60 is default **/
+ public int preferredFramesPerSecond = 60;
+
+ /** 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, default true **/
+ public boolean useAccelerometer = true;
+ /** the update interval to poll the accelerometer with, in seconds **/
+ public float accelerometerUpdate = 0.05f;
+ /** the update interval to poll the magnetometer with, in seconds **/
+ public float magnetometerUpdate = 0.05f;
+
+ /** whether to use the compass, default true **/
+ public boolean useCompass = true;
+
+ /** whether or not to allow background music from iPod **/
+ public boolean allowIpod = false;
+
+ /** whether or not the onScreenKeyboard should be closed on return key **/
+ public boolean keyboardCloseOnReturn = true;
+
+ /** Experimental, whether to enable OpenGL ES 3 if supported. If not supported it will fall-back to OpenGL ES 2.0.
+ * When GL ES 3 is enabled, {@link com.badlogic.gdx.Gdx#gl30} can be used to access it's functionality.
+ * @deprecated this option is currently experimental and not yet fully supported, expect issues. */
+ @Deprecated public boolean useGL30 = false;
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSAudio.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSAudio.java new file mode 100755 index 000000000..e6f79bf15 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSAudio.java @@ -0,0 +1,70 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+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.backends.iosmoe.objectal.OALAudioTrack;
+import com.badlogic.gdx.backends.iosmoe.objectal.OALSimpleAudio;
+import com.badlogic.gdx.files.FileHandle;
+import com.badlogic.gdx.utils.GdxRuntimeException;
+
+public class IOSAudio implements Audio {
+
+ public IOSAudio (IOSApplicationConfiguration config) {
+ OALSimpleAudio audio = OALSimpleAudio.sharedInstance();
+ if (audio != null) {
+ audio.setAllowIpod(config.allowIpod);
+ audio.setHonorSilentSwitch(true);
+ } else
+ Gdx.app.error("IOSAudio", "No OALSimpleAudio instance available, audio will not be availabe");
+ }
+
+ @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) {
+ return new IOSSound(fileHandle);
+ }
+
+ @Override
+ public Music newMusic (FileHandle fileHandle) {
+ String path = fileHandle.file().getPath().replace('\\', '/');
+ OALAudioTrack track = OALAudioTrack.alloc().init();
+ if (track != null) {
+ if (track.preloadFile(path)) {
+ return new IOSMusic(track);
+ }
+ }
+ throw new GdxRuntimeException("Error opening music file at " + path);
+ }
+
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSDevice.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSDevice.java new file mode 100755 index 000000000..8f2e7be7e --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSDevice.java @@ -0,0 +1,96 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+public enum IOSDevice {
+
+ IPHONE_2G("iPhone1,1", 163),
+ IPHONE_3G("iPhone1,2", 163),
+ IPHONE_3GS("iPhone2,1", 163),
+ IPHONE_4("iPhone3,1", 326),
+ IPHONE_4V("iPhone3,2", 326),
+ IPHONE_4_CDMA("iPhone3,3", 326),
+ IPHONE_4S("iPhone4,1", 326),
+ IPHONE_5("iPhone5,1", 326),
+ IPHONE_5_CDMA_GSM("iPhone5,2", 326),
+ IPHONE_5C("iPhone5,3", 326),
+ IPHONE_5C_CDMA_GSM("iPhone5,4", 326),
+ IPHONE_5S("iPhone6,1", 326),
+ IPHONE_5S_CDMA_GSM("iPhone6,2", 326),
+ IPHONE_6_PLUS("iPhone7,1", 401),
+ IPHONE_6("iPhone7,2", 326),
+ IPHONE_6S("iPhone8,1", 326),
+ IPHONE_6S_PLUS("iPhone8,2", 401),
+
+ IPOD_TOUCH_1G("iPod1,1", 163),
+ IPOD_TOUCH_2G("iPod2,1", 163),
+ IPOD_TOUCH_3G("iPod3,1", 163),
+ IPOD_TOUCH_4G("iPod4,1", 326),
+ IPOD_TOUCH_5G("iPod5,1", 326),
+ IPOD_TOUCH_6G("iPod7,1", 326),
+
+ IPAD("iPad1,1", 132),
+ IPAD_3G("iPad1,2", 132),
+ IPAD_2_WIFI("iPad2,1", 132),
+ IPAD_2("iPad2,2", 132),
+ IPAD_2_CDMA("iPad2,3", 132),
+ IPAD_2V("iPad2,4", 132),
+ IPAD_MINI_WIFI("iPad2,5", 164),
+ IPAD_MINI("iPad2,6", 164),
+ IPAD_MINI_WIFI_CDMA("iPad2,7", 164),
+ IPAD_3_WIFI("iPad3,1", 264),
+ IPAD_3_WIFI_CDMA("iPad3,2", 264),
+ IPAD_3("iPad3,3", 264),
+ IPAD_4_WIFI("iPad3,4", 264),
+ IPAD_4("iPad3,5", 264),
+ IPAD_4_GSM_CDMA("iPad3,6", 264),
+ IPAD_AIR_WIFI("iPad4,1", 264),
+ IPAD_AIR_WIFI_GSM("iPad4,2", 264),
+ IPAD_AIR_WIFI_CDMA("iPad4,3", 264),
+ IPAD_MINI_RETINA_WIFI("iPad4,4", 326),
+ IPAD_MINI_RETINA_WIFI_CDMA("iPad4,5", 326),
+ IPAD_MINI_RETINA_WIFI_CELLULAR_CN("iPad4,6", 326),
+ IPAD_MINI_3_WIFI("iPad4,7", 326),
+ IPAD_MINI_3_WIFI_CELLULAR("iPad4,8", 326),
+ IPAD_MINI_3_WIFI_CELLULAR_CN("iPad4,9", 326),
+ IPAD_MINI_4_WIFI("iPad5,1", 326),
+ IPAD_MINI_4_WIFI_CELLULAR("iPad5,2", 326),
+ IPAD_MINI_AIR_2_WIFI("iPad5,3", 264),
+ IPAD_MINI_AIR_2_WIFI_CELLULAR("iPad5,4", 264),
+ IPAD_PRO_WIFI("iPad6,7", 264),
+ IPAD_PRO("iPad6,8", 264),
+
+ SIMULATOR_32("i386", 264),
+ SIMULATOR_64("x86_64", 264);
+
+ final String machineString;
+ final int ppi;
+
+ IOSDevice(String machineString, int ppi) {
+ this.machineString = machineString;
+ this.ppi = ppi;
+ }
+
+ public static IOSDevice getDevice (String machineString) {
+ for (IOSDevice device : values()) {
+ if (device.machineString.equalsIgnoreCase(machineString)) return device;
+ }
+ return null;
+ }
+
+
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSFileHandle.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSFileHandle.java new file mode 100755 index 000000000..cb84b446a --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSFileHandle.java @@ -0,0 +1,66 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import com.badlogic.gdx.Files.FileType;
+import com.badlogic.gdx.files.FileHandle;
+import com.badlogic.gdx.utils.GdxRuntimeException;
+
+import java.io.File;
+
+public class IOSFileHandle extends FileHandle {
+ protected IOSFileHandle (String fileName, FileType type) {
+ super(fileName, type);
+ }
+
+ protected IOSFileHandle (File file, FileType type) {
+ super(file, type);
+ }
+
+ @Override
+ 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);
+ }
+
+ @Override
+ 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);
+ }
+
+ @Override
+ public FileHandle sibling (String name) {
+ if (file.getPath().length() == 0) throw new GdxRuntimeException("Cannot get the sibling of the root.");
+ return new IOSFileHandle(new File(file.getParent(), name), type);
+ }
+
+ @Override
+ public File file () {
+ if (type == FileType.Internal) return new File(IOSFiles.internalPath, file.getPath());
+ if (type == FileType.External) return new File(IOSFiles.externalPath, file.getPath());
+ if (type == FileType.Local) return new File(IOSFiles.localPath, file.getPath());
+ return file;
+ }
+
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSFiles.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSFiles.java new file mode 100755 index 000000000..6677d60e5 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSFiles.java @@ -0,0 +1,85 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import com.badlogic.gdx.Files;
+import com.badlogic.gdx.files.FileHandle;
+import ios.foundation.NSBundle;
+
+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.mainBundle().bundlePath() + "/assets/";
+
+ 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(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;
+ }
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSGLKView.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSGLKView.java new file mode 100755 index 000000000..93779208c --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSGLKView.java @@ -0,0 +1,79 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import com.intel.moe.natj.general.NatJ;
+import com.intel.moe.natj.general.Pointer;
+import com.intel.moe.natj.general.ann.ByValue;
+import com.intel.moe.natj.objc.ann.Selector;
+import ios.coregraphics.struct.CGRect;
+import ios.foundation.NSSet;
+import ios.glkit.GLKView;
+import ios.opengles.EAGLContext;
+import ios.uikit.UIEvent;
+import ios.uikit.UITouch;
+
+public class IOSGLKView extends GLKView {
+
+ private IOSGraphics graphics;
+
+ static {
+ NatJ.register();
+ }
+
+ @Selector("alloc")
+ public static native IOSGLKView alloc ();
+
+ @Selector("init")
+ public native IOSGLKView init ();
+
+ protected IOSGLKView (Pointer peer) {
+ super(peer);
+ }
+
+ public IOSGLKView init (IOSGraphics graphics, CGRect bounds, EAGLContext context) {
+ initWithFrameContext(bounds, context);
+ this.graphics = graphics;
+ return this;
+ }
+
+ @Override
+ public void touchesBeganWithEvent (NSSet<? extends UITouch> nsSet, UIEvent uiEvent) {
+ graphics.input.onTouch(nsSet);
+ }
+
+ @Override
+ public void touchesCancelledWithEvent (NSSet<? extends UITouch> nsSet, UIEvent uiEvent) {
+ graphics.input.onTouch(nsSet);
+ }
+
+ @Override
+ public void touchesEndedWithEvent (NSSet<? extends UITouch> nsSet, UIEvent uiEvent) {
+ graphics.input.onTouch(nsSet);
+ }
+
+ @Override
+ public void touchesMovedWithEvent (NSSet<? extends UITouch> nsSet, UIEvent uiEvent) {
+ graphics.input.onTouch(nsSet);
+ }
+
+ @Override
+ public void drawRect (@ByValue CGRect cgRect) {
+ graphics.glkViewDrawInRect(this, cgRect);
+ }
+
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSGraphics.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSGraphics.java new file mode 100755 index 000000000..d69b0d8e4 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSGraphics.java @@ -0,0 +1,495 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import com.badlogic.gdx.Application;
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Graphics;
+import com.badlogic.gdx.LifecycleListener;
+import com.badlogic.gdx.backends.iosrobovm.IOSGLES20;
+import com.badlogic.gdx.backends.iosrobovm.IOSGLES30;
+import com.badlogic.gdx.graphics.Cursor;
+import com.badlogic.gdx.graphics.Cursor.SystemCursor;
+import com.badlogic.gdx.graphics.GL20;
+import com.badlogic.gdx.graphics.GL30;
+import com.badlogic.gdx.graphics.Pixmap;
+import com.badlogic.gdx.graphics.glutils.GLVersion;
+import com.badlogic.gdx.utils.Array;
+import com.intel.moe.natj.general.NatJ;
+import com.intel.moe.natj.general.Pointer;
+import com.intel.moe.natj.general.ann.ByValue;
+import com.intel.moe.natj.objc.ann.Selector;
+import ios.NSObject;
+import ios.coregraphics.struct.CGPoint;
+import ios.coregraphics.struct.CGRect;
+import ios.coregraphics.struct.CGSize;
+import ios.glkit.GLKView;
+import ios.glkit.GLKViewController;
+import ios.glkit.enums.GLKViewDrawableColorFormat;
+import ios.glkit.enums.GLKViewDrawableDepthFormat;
+import ios.glkit.enums.GLKViewDrawableMultisample;
+import ios.glkit.enums.GLKViewDrawableStencilFormat;
+import ios.glkit.protocol.GLKViewControllerDelegate;
+import ios.glkit.protocol.GLKViewDelegate;
+import ios.opengles.EAGLContext;
+import ios.opengles.enums.EAGLRenderingAPI;
+
+public class IOSGraphics extends NSObject implements Graphics, GLKViewDelegate, GLKViewControllerDelegate {
+
+ private static final String tag = "IOSGraphics";
+
+ static {
+ NatJ.register();
+ }
+
+ IOSApplication app;
+ IOSInput input;
+ GL20 gl20;
+ GL30 gl30;
+ 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 appPaused;
+ private long frameId = -1;
+ private boolean isContinuous = true;
+ private boolean isFrameRequested = true;
+
+ IOSApplicationConfiguration config;
+ EAGLContext context;
+ GLVersion glVersion;
+ IOSGLKView view;
+ IOSUIViewController viewController;
+
+ @Selector("alloc")
+ public static native IOSGraphics alloc ();
+
+ @Selector("init")
+ public native IOSGraphics init ();
+
+ protected IOSGraphics (Pointer peer) {
+ super(peer);
+ }
+
+ public IOSGraphics init (float scale, IOSApplication app, IOSApplicationConfiguration config, IOSInput input, boolean useGLES30) {
+ init();
+ this.config = config;
+
+ final CGRect bounds = app.getBounds();
+ // setup view and OpenGL
+ width = (int)bounds.size().width();
+ height = (int)bounds.size().height();
+
+ if (useGLES30) {
+ context = EAGLContext.alloc().initWithAPI(EAGLRenderingAPI.GLES3);;
+ if (context != null)
+ gl20 = gl30 = new IOSGLES30();
+ else
+ Gdx.app.log("IOGraphics", "OpenGL ES 3.0 not supported, falling back on 2.0");
+ }
+ if (context == null) {
+ context = EAGLContext.alloc().initWithAPI(EAGLRenderingAPI.GLES2);
+ gl20 = new IOSGLES20();
+ gl30 = null;
+ }
+
+ view = IOSGLKView.alloc().init(this, new CGRect(new CGPoint(0, 0), new CGSize(bounds.size().width(), bounds.size().height())), context);
+
+ view.setDelegate(this);
+ view.setDrawableColorFormat(config.colorFormat);
+ view.setDrawableDepthFormat(config.depthFormat);
+ view.setDrawableStencilFormat(config.stencilFormat);
+ view.setDrawableMultisample(config.multisample);
+ view.setMultipleTouchEnabled(true);
+
+ viewController = IOSUIViewController.alloc().init(app, this);
+ viewController.setView(view);
+ viewController.setDelegate(this);
+ viewController.setPreferredFramesPerSecond(config.preferredFramesPerSecond);
+
+ this.app = app;
+ this.input = input;
+
+ int r = 0, g = 0, b = 0, a = 0, depth = 0, stencil = 0, samples = 0;
+ if (config.colorFormat == GLKViewDrawableColorFormat.RGB565) {
+ r = 5;
+ g = 6;
+ b = 5;
+ a = 0;
+ } else {
+ r = g = b = a = 8;
+ }
+ if (config.depthFormat == GLKViewDrawableDepthFormat.Format16) {
+ depth = 16;
+ } else if (config.depthFormat == GLKViewDrawableDepthFormat.Format24) {
+ depth = 24;
+ } else {
+ depth = 0;
+ }
+ if (config.stencilFormat == GLKViewDrawableStencilFormat.Format8) {
+ stencil = 8;
+ }
+ if (config.multisample == GLKViewDrawableMultisample.Multisample4X) {
+ samples = 4;
+ }
+ bufferFormat = new BufferFormat(r, g, b, a, depth, stencil, samples, false);
+
+ // String machineString = HWMachine.getMachineString();
+ IOSDevice device = null; // IOSDevice.getDevice(machineString);
+ // if (device == null)
+ // app.error(tag, "Machine ID: " + machineString + " not found, please report to LibGDX");
+ int ppi = device != null ? device.ppi : 163;
+ density = device != null ? device.ppi / 160f : scale;
+ ppiX = ppi;
+ ppiY = ppi;
+ ppcX = ppiX / 2.54f;
+ ppcY = ppiY / 2.54f;
+ app.debug(tag, "Display: ppi=" + ppi + ", density=" + density);
+
+ // time + FPS
+ lastFrameTime = System.nanoTime();
+ framesStart = lastFrameTime;
+
+ appPaused = false;
+ return this;
+ }
+
+ public void resume () {
+ if (!appPaused)
+ return;
+ appPaused = false;
+
+ Array<LifecycleListener> listeners = app.lifecycleListeners;
+ synchronized (listeners) {
+ for (LifecycleListener listener : listeners) {
+ listener.resume();
+ }
+ }
+ app.listener.resume();
+ }
+
+ public void pause () {
+ if (appPaused)
+ return;
+ appPaused = true;
+
+ Array<LifecycleListener> listeners = app.lifecycleListeners;
+ synchronized (listeners) {
+ for (LifecycleListener listener : listeners) {
+ listener.pause();
+ }
+ }
+ app.listener.pause();
+ }
+
+ boolean created = false;
+
+ @Override
+ public void glkViewDrawInRect (GLKView view, @ByValue CGRect rect) {
+ makeCurrent();
+ // massive hack, GLKView resets the viewport on each draw call, so IOSGLES20
+ // stores the last known viewport and we reset it here...
+ gl20.glViewport(IOSGLES20.x, IOSGLES20.y, IOSGLES20.width, IOSGLES20.height);
+
+ if (!created) {
+ gl20.glViewport(0, 0, width, height);
+
+ String versionString = gl20.glGetString(GL20.GL_VERSION);
+ String vendorString = gl20.glGetString(GL20.GL_VENDOR);
+ String rendererString = gl20.glGetString(GL20.GL_RENDERER);
+ glVersion = new GLVersion(Application.ApplicationType.iOS, versionString, vendorString, rendererString);
+
+ app.listener.create();
+ app.listener.resize(width, height);
+ created = true;
+ }
+ if (appPaused) {
+ return;
+ }
+
+ long time = System.nanoTime();
+ deltaTime = (time - lastFrameTime) / 1000000000.0f;
+ lastFrameTime = time;
+
+ frames++;
+ if (time - framesStart >= 1000000000l) {
+ framesStart = time;
+ fps = frames;
+ frames = 0;
+ }
+
+ input.processEvents();
+ frameId++;
+ app.listener.render();
+ }
+
+ void makeCurrent () {
+ EAGLContext.setCurrentContext(context);
+ }
+
+ @Override
+ public void glkViewControllerUpdate (GLKViewController glkViewController) {
+ makeCurrent();
+ app.processRunnables();
+ // pause the GLKViewController render loop if we are no longer continuous
+ // and if we haven't requested a frame in the last loop iteration
+ if (!isContinuous && !isFrameRequested) {
+ viewController.setPaused(true);
+ }
+ isFrameRequested = false;
+ }
+
+ @Override
+ public void glkViewControllerWillPause (GLKViewController controller, boolean pause) {
+
+ }
+
+ @Override
+ public GL20 getGL20 () {
+ return gl20;
+ }
+
+ @Override
+ public int getWidth () {
+ return width;
+ }
+
+ @Override
+ public int getHeight () {
+ return height;
+ }
+
+ @Override
+ public int getBackBufferWidth () {
+ return width;
+ }
+
+ @Override
+ public int getBackBufferHeight () {
+ 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 GLVersion getGLVersion () {
+ return glVersion;
+ }
+
+ @Override
+ public float getPpiX () {
+ return ppiX;
+ }
+
+ @Override
+ public float getPpiY () {
+ return ppiY;
+ }
+
+ @Override
+ public float getPpcX () {
+ return ppcX;
+ }
+
+ @Override
+ public float getPpcY () {
+ return ppcY;
+ }
+
+ @Override
+ public float getDensity () {
+ return density;
+ }
+
+ @Override
+ public boolean supportsDisplayModeChange () {
+ return false;
+ }
+
+ @Override
+ public DisplayMode[] getDisplayModes () {
+ return new DisplayMode[] {getDisplayMode()};
+ }
+
+ @Override
+ public DisplayMode getDisplayMode () {
+ return new IOSDisplayMode(getWidth(), getHeight(), config.preferredFramesPerSecond,
+ bufferFormat.r + bufferFormat.g + bufferFormat.b + bufferFormat.a);
+ }
+
+ @Override
+ public Monitor getPrimaryMonitor () {
+ return new IOSMonitor(0, 0, "Primary Monitor");
+ }
+
+ @Override
+ public Monitor getMonitor () {
+ return getPrimaryMonitor();
+ }
+
+ @Override
+ public Monitor[] getMonitors () {
+ return new Monitor[] {getPrimaryMonitor()};
+ }
+
+ @Override
+ public DisplayMode[] getDisplayModes (Monitor monitor) {
+ return getDisplayModes();
+ }
+
+ @Override
+ public DisplayMode getDisplayMode (Monitor monitor) {
+ return getDisplayMode();
+ }
+
+ @Override
+ public boolean setFullscreenMode (DisplayMode displayMode) {
+ return false;
+ }
+
+ @Override
+ public boolean setWindowedMode (int width, int height) {
+ 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(GL20.GL_EXTENSIONS);
+ return extensions.contains(extension);
+ }
+
+ @Override
+ public void setContinuousRendering (boolean isContinuous) {
+ if (isContinuous != this.isContinuous) {
+ this.isContinuous = isContinuous;
+ // start the GLKViewController if we go from non-continuous -> continuous
+ if (isContinuous)
+ viewController.setPaused(false);
+ }
+ }
+
+ @Override
+ public boolean isContinuousRendering () {
+ return isContinuous;
+ }
+
+ @Override
+ public void requestRendering () {
+ isFrameRequested = true;
+ // start the GLKViewController if we are in non-continuous mode
+ // (we should already be started in continuous mode)
+ if (!isContinuous)
+ viewController.setPaused(false);
+ }
+
+ @Override
+ public boolean isFullscreen () {
+ return true;
+ }
+
+ @Override
+ public boolean isGL30Available () {
+ return false;
+ }
+
+ @Override
+ public GL30 getGL30 () {
+ return null;
+ }
+
+ @Override
+ public long getFrameId () {
+ return frameId;
+ }
+
+ @Override
+ public Cursor newCursor (Pixmap pixmap, int xHotspot, int yHotspot) {
+ return null;
+ }
+
+ @Override
+ public void setCursor (Cursor cursor) {
+ }
+
+ @Override
+ public void setSystemCursor (SystemCursor systemCursor) {
+ }
+
+ @Override
+ public void setResizable(boolean resizable) {
+ }
+
+ @Override
+ public void setUndecorated(boolean undecorated) {
+ }
+
+ private class IOSDisplayMode extends DisplayMode {
+ protected IOSDisplayMode (int width, int height, int refreshRate, int bitsPerPixel) {
+ super(width, height, refreshRate, bitsPerPixel);
+ }
+ }
+
+ private class IOSMonitor extends Monitor {
+ protected IOSMonitor (int virtualX, int virtualY, String name) {
+ super(virtualX, virtualY, name);
+ }
+ }
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSInput.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSInput.java new file mode 100755 index 000000000..e100b5f15 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSInput.java @@ -0,0 +1,656 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Input;
+import com.badlogic.gdx.InputProcessor;
+import com.badlogic.gdx.math.MathUtils;
+import com.badlogic.gdx.utils.Array;
+import com.badlogic.gdx.utils.GdxRuntimeException;
+import com.badlogic.gdx.utils.Pool;
+import com.intel.moe.natj.general.ann.NInt;
+import ios.audiotoolbox.c.AudioToolbox;
+import ios.coregraphics.struct.CGPoint;
+import ios.coregraphics.struct.CGRect;
+import ios.coregraphics.struct.CGSize;
+import ios.coremotion.CMAccelerometerData;
+import ios.coremotion.CMMagnetometerData;
+import ios.coremotion.CMMotionManager;
+import ios.foundation.NSError;
+import ios.foundation.NSOperationQueue;
+import ios.foundation.NSSet;
+import ios.foundation.struct.NSRange;
+import ios.uikit.UIAlertView;
+import ios.uikit.UIDevice;
+import ios.uikit.UITextField;
+import ios.uikit.UITouch;
+import ios.uikit.enums.UIAlertViewStyle;
+import ios.uikit.enums.UIDeviceOrientation;
+import ios.uikit.enums.UIKeyboardType;
+import ios.uikit.enums.UIReturnKeyType;
+import ios.uikit.enums.UITextAutocapitalizationType;
+import ios.uikit.enums.UITextAutocorrectionType;
+import ios.uikit.enums.UITextSpellCheckingType;
+import ios.uikit.enums.UITouchPhase;
+import ios.uikit.protocol.UIAlertViewDelegate;
+import ios.uikit.protocol.UITextFieldDelegate;
+
+public class IOSInput implements Input {
+ static final int MAX_TOUCHES = 20;
+
+ 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
+ UITouch[] touchDown = new UITouch[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];
+ float[] rotation = new float[3];
+ float[] R = new float[9];
+ InputProcessor inputProcessor = null;
+
+ boolean hasVibrator;
+ CMMotionManager motionManager;
+ boolean compassSupported;
+ boolean keyboardCloseOnReturn;
+
+ public IOSInput (IOSApplication app) {
+ this.app = app;
+ this.config = app.config;
+ this.keyboardCloseOnReturn = app.config.keyboardCloseOnReturn;
+ }
+
+ void setupPeripherals () {
+ motionManager = CMMotionManager.alloc().init();
+ setupAccelerometer();
+ setupCompass();
+ UIDevice device = UIDevice.currentDevice();
+ if (device.model().equalsIgnoreCase("iphone")) hasVibrator = true;
+ }
+
+ private void setupCompass () {
+ if (config.useCompass) {
+ setupMagnetometer();
+ }
+ }
+ private void setupAccelerometer () {
+ if (config.useAccelerometer) {
+ motionManager.setAccelerometerUpdateInterval(config.accelerometerUpdate);
+ CMMotionManager.Block_startAccelerometerUpdatesToQueueWithHandler handler = new CMMotionManager.Block_startAccelerometerUpdatesToQueueWithHandler() {
+ @Override
+ public void call_startAccelerometerUpdatesToQueueWithHandler (CMAccelerometerData cmAccelerometerData, NSError nsError) {
+ updateAccelerometer(cmAccelerometerData);
+ }
+ };
+ motionManager.startAccelerometerUpdatesToQueueWithHandler(NSOperationQueue.alloc().init(), handler);
+ }
+ }
+
+
+ private void setupMagnetometer () {
+ if (motionManager.isMagnetometerAvailable() && config.useCompass) compassSupported = true;
+ else return;
+ motionManager.setMagnetometerUpdateInterval(config.magnetometerUpdate);
+
+ CMMotionManager.Block_startMagnetometerUpdatesToQueueWithHandler handler = new CMMotionManager.Block_startMagnetometerUpdatesToQueueWithHandler() {
+ @Override
+ public void call_startMagnetometerUpdatesToQueueWithHandler (CMMagnetometerData cmMagnetometerData, NSError nsError) {
+ updateRotation(cmMagnetometerData);
+ }
+ };
+
+ motionManager.startMagnetometerUpdatesToQueueWithHandler(NSOperationQueue.alloc().init(), handler);
+ }
+
+ private void updateAccelerometer (CMAccelerometerData data) {
+ float x = (float) data.acceleration().x() * 10f;
+ float y = (float) data.acceleration().y() * 10f;
+ float z = (float) data.acceleration().z() * 10f;
+ acceleration[0] = -x;
+ acceleration[1] = -y;
+ acceleration[2] = -z;
+ }
+
+ private void updateRotation (CMMagnetometerData data) {
+ final float eX = (float) data.magneticField().x();
+ final float eY = (float) data.magneticField().y();
+ final float eZ = (float) data.magneticField().z();
+
+ float gX = acceleration[0];
+ float gY = acceleration[1];
+ float gZ = acceleration[2];
+
+ float cX = eY * gZ - eZ * gY;
+ float cY = eZ * gX - eX * gZ;
+ float cZ = eX * gY - eY * gX;
+
+ final float normal = (float) Math.sqrt(cX * cX + cY * cY + cZ * cZ);
+ final float invertC = 1.0f / normal;
+ cX *= invertC;
+ cY *= invertC;
+ cZ *= invertC;
+ final float invertG = 1.0f / (float) Math.sqrt(gX * gX + gY * gY + gZ * gZ);
+ gX *= invertG;
+ gY *= invertG;
+ gZ *= invertG;
+ final float mX = gY * cZ - gZ * cY;
+ final float mY = gZ * cX - gX * cZ;
+ final float mZ = gX * cY - gY * cX;
+
+ R[0] = cX; R[1] = cY; R[2] = cZ;
+ R[3] = mX; R[4] = mY; R[5] = mZ;
+ R[6] = gX; R[7] = gY; R[8] = gZ;
+
+ rotation[0] = (float) Math.atan2(R[1], R[4]) * MathUtils.radDeg;
+ rotation[1] = (float) Math.asin(-R[7]) * MathUtils.radDeg;
+ rotation[2] = (float) Math.atan2(-R[6], R[8]) * MathUtils.radDeg;
+ }
+
+ @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 () {
+ if (!compassSupported) return 0;
+ return rotation[0];
+ }
+
+ @Override
+ public float getPitch () {
+ if (!compassSupported) return 0;
+ return rotation[1];
+ }
+
+ @Override
+ public float getRoll () {
+ if (!compassSupported) return 0;
+ return rotation[2];
+ }
+
+ @Override
+ public void getRotationMatrix (float[] matrix) {
+ if (matrix.length != 9) return;
+ //TODO implement when azimuth is fixed
+ }
+
+ @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 () {
+ for (int pointer = 0; pointer < MAX_TOUCHES; pointer++) {
+ if (touchDown[pointer] != null) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public boolean justTouched () {
+ return justTouched;
+ }
+
+ @Override
+ public boolean isTouched (int pointer) {
+ return touchDown[pointer] != null;
+ }
+
+ @Override
+ public boolean isButtonPressed (int button) {
+ return button == Buttons.LEFT && numTouched > 0;
+ }
+
+ @Override
+ public boolean isKeyPressed (int key) {
+ return false;
+ }
+
+ @Override
+ public boolean isKeyJustPressed (int key) {
+ return false;
+ }
+
+ @Override
+ public void getTextInput(TextInputListener listener, String title, String text, String hint) {
+ buildUIAlertView(listener, title, text, hint).show();
+ }
+
+ // hack for software keyboard support
+ // uses a hidden textfield to capture input
+ // see: http://www.badlogicgames.com/forum/viewtopic.php?f=17&t=11788
+
+ private class HiddenTextField extends UITextField {
+ public HiddenTextField (CGRect frame) {
+ super(frame.getPeer());
+
+ setKeyboardType(UIKeyboardType.Default);
+ setReturnKeyType(UIReturnKeyType.Done);
+ setAutocapitalizationType(UITextAutocapitalizationType.None);
+ setAutocorrectionType(UITextAutocorrectionType.No);
+ setSpellCheckingType(UITextSpellCheckingType.No);
+ setHidden(true);
+ }
+
+ @Override
+ public void deleteBackward () {
+ app.input.inputProcessor.keyTyped((char)8);
+ super.deleteBackward();
+ Gdx.graphics.requestRendering();
+ }
+ }
+
+ private UITextField textfield = null;
+ private final UITextFieldDelegate textDelegate = new UITextFieldDelegate() {
+ @Override
+ public boolean textFieldShouldChangeCharactersInRangeReplacementString (UITextField textField, NSRange range, String string) {
+ for (int i = 0; i < range.length(); i++) {
+ app.input.inputProcessor.keyTyped((char)8);
+ }
+
+ if (string.isEmpty()) {
+ if (range.length() > 0) Gdx.graphics.requestRendering();
+ return false;
+ }
+
+ char[] chars = new char[string.length()];
+ string.getChars(0, string.length(), chars, 0);
+
+ for (int i = 0; i < chars.length; i++) {
+ app.input.inputProcessor.keyTyped(chars[i]);
+ }
+ Gdx.graphics.requestRendering();
+
+ return true;
+ }
+
+ @Override
+ public boolean textFieldShouldEndEditing (UITextField textField) {
+ // Text field needs to have at least one symbol - so we can use backspace
+ textField.setText("x");
+ Gdx.graphics.requestRendering();
+
+ return true;
+ }
+
+ @Override
+ public boolean textFieldShouldReturn (UITextField textField) {
+ if (keyboardCloseOnReturn) setOnscreenKeyboardVisible(false);
+ app.input.inputProcessor.keyDown(Keys.ENTER);
+ app.input.inputProcessor.keyTyped((char)13);
+ Gdx.graphics.requestRendering();
+ return false;
+ }
+ };
+
+ @Override
+ public void setOnscreenKeyboardVisible (boolean visible) {
+ if (textfield == null) createDefaultTextField();
+ if (visible) {
+ textfield.becomeFirstResponder();
+ textfield.setDelegate(textDelegate);
+ } else {
+ textfield.resignFirstResponder();
+ }
+ }
+
+ /**
+ * Set the keyboard to close when the UITextField return key is pressed
+ * @param shouldClose Whether or not the keyboard should clsoe on return key press
+ */
+ public void setKeyboardCloseOnReturnKey (boolean shouldClose) {
+ keyboardCloseOnReturn = shouldClose;
+ }
+
+ public UITextField getKeyboardTextField () {
+ if (textfield == null) createDefaultTextField();
+ return textfield;
+ }
+
+ private void createDefaultTextField () {
+ textfield = UITextField.alloc();
+ textfield.initWithFrame(new CGRect(new CGPoint(10, 10), new CGSize(100, 50)));
+ //Parameters
+ // Setting parameters
+ textfield.setKeyboardType(UIKeyboardType.Default);
+ textfield.setReturnKeyType(UIReturnKeyType.Done);
+ textfield.setAutocapitalizationType(UITextAutocapitalizationType.None);
+ textfield.setAutocorrectionType(UITextAutocorrectionType.No);
+ textfield.setSpellCheckingType(UITextSpellCheckingType.No);
+ textfield.setHidden(true);
+ // Text field needs to have at least one symbol - so we can use backspace
+ textfield.setText("x");
+ app.getUIViewController().view().addSubview(textfield);
+ }
+
+ // Issue 773 indicates this may solve a premature GC issue
+
+ /** 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, String placeholder) {
+ UIAlertViewDelegate delegate = new UIAlertViewDelegate() {
+ @Override
+ public void alertViewClickedButtonAtIndex (UIAlertView alertView, @NInt long buttonIndex) {
+ if (buttonIndex == 0) {
+ // user clicked "Cancel" button
+ listener.canceled();
+ } else if (buttonIndex == 1) {
+ // user clicked "Ok" button
+ UITextField textField = alertView.textFieldAtIndex(0);
+ listener.input(textField.text());
+ }
+ }
+
+ @Override
+ public void alertViewCancel (UIAlertView alertView) {
+ listener.canceled();
+ }
+ };
+
+ // build the view
+ final UIAlertView uiAlertView = UIAlertView.alloc().init();
+ uiAlertView.setTitle(title);
+ uiAlertView.addButtonWithTitle("Cancel");
+ uiAlertView.addButtonWithTitle("Ok");
+ uiAlertView.setAlertViewStyle(UIAlertViewStyle.PlainTextInput);
+ uiAlertView.setDelegate(delegate);
+
+ UITextField textField = uiAlertView.textFieldAtIndex(0);
+ textField.setPlaceholder(placeholder);
+ textField.setText(text);
+
+ return uiAlertView;
+ }
+
+ @Override
+ public void vibrate (int milliseconds) {
+ AudioToolbox.AudioServicesPlaySystemSound(4095);
+ }
+
+ @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 boolean isCatchBackKey () {
+ return false;
+ }
+
+ @Override
+ public void setCatchMenuKey (boolean catchMenu) {
+ }
+
+ @Override
+ public boolean isCatchMenuKey() {
+ return false;
+ }
+
+ @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;
+ if (peripheral == Peripheral.Vibrator) return hasVibrator;
+ if (peripheral == Peripheral.Compass) return compassSupported;
+ // if(peripheral == Peripheral.OnscreenKeyboard) return true;
+ return false;
+ }
+
+ @Override
+ public int getRotation () {
+ // we measure orientation counter clockwise, just like on Android
+ if (app.uiApp.statusBarOrientation() == UIDeviceOrientation.LandscapeLeft) return 270;
+ if (app.uiApp.statusBarOrientation() == UIDeviceOrientation.PortraitUpsideDown) return 180;
+ if (app.uiApp.statusBarOrientation() == UIDeviceOrientation.LandscapeRight) return 90;
+ return 0;
+ }
+
+ @Override
+ public Orientation getNativeOrientation () {
+ if (app.uiApp.statusBarOrientation() == UIDeviceOrientation.LandscapeLeft || app.uiApp.statusBarOrientation() == UIDeviceOrientation.LandscapeRight) {
+ return Orientation.Landscape;
+ } else {
+ return Orientation.Portrait;
+ }
+ }
+
+ @Override
+ public void setCursorCatched (boolean catched) {
+ }
+
+ @Override
+ public boolean isCursorCatched () {
+ return false;
+ }
+
+ @Override
+ public void setCursorPosition (int x, int y) {
+ }
+
+ protected void onTouch (NSSet<? extends UITouch> touches) {
+ toTouchEvents(touches);
+ Gdx.graphics.requestRendering();
+ }
+
+ void processEvents () {
+ synchronized (touchEvents) {
+ justTouched = false;
+ for (TouchEvent event : touchEvents) {
+ currentEvent = event;
+ if (event.phase == UITouchPhase.Began) {
+ if (inputProcessor != null) inputProcessor.touchDown(event.x, event.y, event.pointer, Buttons.LEFT);
+ if (numTouched == 1) justTouched = true;
+ break;
+ }
+ if (event.phase == UITouchPhase.Cancelled || event.phase == UITouchPhase.Ended) {
+ if (inputProcessor != null) inputProcessor.touchUp(event.x, event.y, event.pointer, Buttons.LEFT);
+ break;
+ }
+ if (event.phase == UITouchPhase.Moved || event.phase == UITouchPhase.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] == null) return i;
+ }
+ throw new GdxRuntimeException("Couldn't find free pointer id!");
+ }
+
+ private int findPointer (UITouch touch) {
+ long ptr = 0;
+ for (int i = 0; i < touchDown.length; i++) {
+ if (touchDown[i] == touch) return i;
+ }
+ throw new GdxRuntimeException("Couldn't find pointer id for touch event!");
+ }
+
+ private void toTouchEvents (NSSet<? extends UITouch> touches) {
+ for (UITouch touch : touches.allObjects()) {
+ final int locX, locY;
+ // Get and map the location to our drawing space
+ {
+ CGPoint loc = touch.locationInView(touch.window());
+ final CGRect bounds = app.getCachedBounds();
+ locX = (int)(loc.x() * app.displayScaleFactor - bounds.origin().x());
+ locY = (int)(loc.y() * app.displayScaleFactor - bounds.origin().y());
+ // app.debug("IOSInput","pos= "+loc+" bounds= "+bounds+" x= "+locX+" locY= "+locY);
+ }
+
+ synchronized (touchEvents) {
+ long phase = touch.phase();
+ TouchEvent event = touchEventPool.obtain();
+ event.x = locX;
+ event.y = locY;
+ event.phase = phase;
+ event.timestamp = (long)(touch.timestamp() * 1000000000);
+ touchEvents.add(event);
+
+ if (phase == UITouchPhase.Began) {
+ event.pointer = getFreePointer();
+ touchDown[event.pointer] = touch;
+ touchX[event.pointer] = event.x;
+ touchY[event.pointer] = event.y;
+ deltaX[event.pointer] = 0;
+ deltaY[event.pointer] = 0;
+ numTouched++;
+ }
+
+ if (phase == UITouchPhase.Moved || phase == 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 (phase == UITouchPhase.Cancelled || phase == UITouchPhase.Ended) {
+ event.pointer = findPointer(touch);
+ touchDown[event.pointer] = null;
+ touchX[event.pointer] = event.x;
+ touchY[event.pointer] = event.y;
+ deltaX[event.pointer] = 0;
+ deltaY[event.pointer] = 0;
+ numTouched--;
+ }
+ }
+ }
+ }
+
+ static class TouchEvent {
+ long phase;
+ long timestamp;
+ int x, y;
+ int pointer;
+ }
+
+ @Override
+ public float getGyroscopeX() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getGyroscopeY() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public float getGyroscopeZ() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSMusic.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSMusic.java new file mode 100755 index 000000000..ac2c0e963 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSMusic.java @@ -0,0 +1,122 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.audio.Music;
+import com.badlogic.gdx.backends.iosmoe.objectal.OALAudioTrack;
+import ios.avfoundation.AVAudioPlayer;
+import ios.avfoundation.protocol.AVAudioPlayerDelegate;
+
+public class IOSMusic implements Music {
+
+ private final OALAudioTrack track;
+ OnCompletionListener onCompletionListener;
+
+ public IOSMusic (OALAudioTrack track) {
+ this.track = track;
+ AVAudioPlayerDelegate delegate = new AVAudioPlayerDelegate() {
+ @Override
+ public void audioPlayerDidFinishPlayingSuccessfully (AVAudioPlayer player, boolean flag) {
+ final OnCompletionListener listener = onCompletionListener;
+ if (onCompletionListener != null) {
+ Gdx.app.postRunnable(new Runnable() {
+ @Override
+ public void run () {
+ listener.onCompletion(IOSMusic.this);
+ }
+ });
+ }
+ }
+ };
+ this.track.setDelegate(delegate);
+ }
+
+ @Override
+ public void play () {
+ if (track.paused()) {
+ track.setPaused(false);
+ } else if (!track.playing()) {
+ track.play();
+ }
+ }
+
+ @Override
+ public void pause () {
+ if (track.playing()) {
+ track.setPaused(true);
+ }
+ }
+
+ @Override
+ public void stop () {
+ track.stop();
+ }
+
+ @Override
+ public boolean isPlaying () {
+ return track.playing() && !track.paused();
+ }
+
+ @Override
+ public void setLooping (boolean isLooping) {
+ track.setNumberOfLoops(isLooping ? -1 : 0);
+ }
+
+ @Override
+ public boolean isLooping () {
+ return track.numberOfLoops() == -1;
+ }
+
+ @Override
+ public void setVolume (float volume) {
+ track.setVolume(volume);
+ }
+
+ @Override
+ public void setPosition (float position) {
+ track.setCurrentTime(position);
+ }
+
+ @Override
+ public float getPosition () {
+ return (float)(track.currentTime());
+ }
+
+ @Override
+ public void dispose () {
+ track.clear();
+ track.dealloc();
+ }
+
+ @Override
+ public float getVolume () {
+ return track.volume();
+ }
+
+ @Override
+ public void setPan (float pan, float volume) {
+ track.setPan(pan);
+ track.setVolume(volume);
+ }
+
+ @Override
+ public void setOnCompletionListener (OnCompletionListener listener) {
+ this.onCompletionListener = listener;
+ }
+
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSNet.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSNet.java new file mode 100755 index 000000000..8e5bfe7f4 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSNet.java @@ -0,0 +1,68 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import com.badlogic.gdx.Net;
+import com.badlogic.gdx.net.NetJavaImpl;
+import com.badlogic.gdx.net.NetJavaServerSocketImpl;
+import com.badlogic.gdx.net.NetJavaSocketImpl;
+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 ios.foundation.NSURL;
+import ios.uikit.UIApplication;
+
+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 void cancelHttpRequest (HttpRequest httpRequest) {
+ netJavaImpl.cancelHttpRequest(httpRequest);
+ }
+
+ @Override
+ public ServerSocket newServerSocket (Protocol protocol, String hostname, int port, ServerSocketHints hints) {
+ return new NetJavaServerSocketImpl(protocol, hostname, port, hints);
+ }
+
+ @Override
+ public ServerSocket newServerSocket (Protocol protocol, int port, ServerSocketHints hints) {
+ return new NetJavaServerSocketImpl(protocol, port, hints);
+ }
+
+ @Override
+ public Socket newClientSocket (Protocol protocol, String host, int port, SocketHints hints) {
+ return new NetJavaSocketImpl(protocol, host, port, hints);
+ }
+
+ @Override
+ public boolean openURI (String URI) {
+ return uiApp.openURL(NSURL.fileURLWithPath(URI));
+ }
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSPreferences.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSPreferences.java new file mode 100755 index 000000000..e06531334 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSPreferences.java @@ -0,0 +1,194 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Preferences;
+import ios.NSObject;
+import ios.foundation.NSAutoreleasePool;
+import ios.foundation.NSMutableDictionary;
+import ios.foundation.NSNumber;
+import ios.foundation.NSString;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+public class IOSPreferences implements Preferences {
+ NSMutableDictionary<NSString, NSObject> nsDictionary;
+ File file;
+
+ public IOSPreferences (NSMutableDictionary<NSString, NSObject> nsDictionary, String filePath) {
+ this.nsDictionary = nsDictionary;
+ this.file = new File(filePath);
+ }
+
+ @Override
+ public Preferences putBoolean (String key, boolean val) {
+ nsDictionary.put(convertKey(key), NSNumber.numberWithBool(val));
+ return this;
+ }
+
+ @Override
+ public Preferences putInteger (String key, int val) {
+ nsDictionary.put(convertKey(key), NSNumber.numberWithInt(val));
+ return this;
+ }
+
+ @Override
+ public Preferences putLong (String key, long val) {
+ nsDictionary.put(convertKey(key), NSNumber.numberWithLongLong(val));
+ return this;
+ }
+
+ @Override
+ public Preferences putFloat (String key, float val) {
+ nsDictionary.put(convertKey(key), NSNumber.numberWithFloat(val));
+ return this;
+ }
+
+ @Override
+ public Preferences putString (String key, String val) {
+ nsDictionary.put(convertKey(key), NSString.stringWithString(val));
+ return this;
+ }
+
+ @Override
+ public Preferences 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);
+ }
+ }
+ return this;
+ }
+
+ @Override
+ public boolean getBoolean (String key) {
+ NSNumber value = (NSNumber)nsDictionary.get(convertKey(key));
+ if (value == null) return false;
+ return value.boolValue();
+ }
+
+ @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.longLongValue();
+ }
+
+ @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) {
+ //Implicit mapping from NSString to String apparently?
+ Object value = 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 NSString.alloc().initWithString(key);
+ }
+
+ @Override
+ public void flush () {
+ NSAutoreleasePool pool = NSAutoreleasePool.alloc().init();
+ if (!nsDictionary.writeToFileAtomically(file.getAbsolutePath(), false)) {
+ Gdx.app.debug("IOSPreferences", "Failed to write NSDictionary to file " + file);
+ }
+ pool.drain();
+ }
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSSound.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSSound.java new file mode 100755 index 000000000..736a8e4ce --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSSound.java @@ -0,0 +1,164 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+package com.badlogic.gdx.backends.iosmoe;
+
+import com.badlogic.gdx.audio.Sound;
+import com.badlogic.gdx.backends.iosmoe.objectal.ALBuffer;
+import com.badlogic.gdx.backends.iosmoe.objectal.ALChannelSource;
+import com.badlogic.gdx.backends.iosmoe.objectal.ALSource;
+import com.badlogic.gdx.backends.iosmoe.objectal.OALSimpleAudio;
+import com.badlogic.gdx.files.FileHandle;
+import com.badlogic.gdx.utils.IntArray;
+import ios.foundation.NSArray;
+
+
+public class IOSSound implements Sound {
+
+ private ALBuffer soundBuffer;
+ private String soundPath;
+
+ private ALChannelSource channel;
+ private NSArray<ALSource> sourcePool;
+ private IntArray streamIds = new IntArray(8);
+
+ public IOSSound (FileHandle filePath) {
+ soundPath = filePath.file().getPath().replace('\\', '/');
+ soundBuffer = OALSimpleAudio.sharedInstance().preloadEffect(soundPath);
+ channel = OALSimpleAudio.sharedInstance().channel();
+ sourcePool = (NSArray<ALSource>)channel.sourcePool().sources();
+ }
+
+ @Override
+ public long play () {
+ return play(1, 1, 0, false);
+ }
+
+ @Override
+ public long play (float volume) {
+ return play(volume, 1, 0, false);
+ }
+
+ @Override
+ public long play (float volume, float pitch, float pan) {
+ return play(volume, pitch, pan, false);
+ }
+
+ public long play (float volume, float pitch, float pan, boolean loop) {
+ if (streamIds.size == 8) streamIds.pop();
+ ALSource soundSource = OALSimpleAudio.sharedInstance().playBufferVolumePitchPanLoop(soundBuffer, volume, pitch, pan, loop);
+ if (soundSource == null) return -1;
+ if (soundSource.sourceId() == -1) return -1;
+ streamIds.insert(0, soundSource.sourceId());
+ return soundSource.sourceId();
+ }
+
+ @Override
+ public long loop () {
+ return play(1, 1, 0, true);
+ }
+
+ @Override
+ public long loop (float volume) {
+ return play(volume, 1, 0, true);
+ }
+
+ @Override
+ public long loop (float volume, float pitch, float pan) {
+ return play(volume, pitch, pan, true);
+ }
+
+ @Override
+ public void stop () {
+ ALSource source;
+ for (int i = 0; i < streamIds.size; i++) {
+ if ((source = getSoundSource(streamIds.get(i))) != null) source.stop();
+ }
+ }
+
+ @Override
+ public void dispose () {
+ stop();
+ soundBuffer.dealloc();
+ }
+
+ @Override
+ public void stop (long soundId) {
+ ALSource source;
+ if ((source = getSoundSource(soundId)) != null) source.stop();
+ }
+
+ @Override
+ public void setLooping (long soundId, boolean looping) {
+ ALSource source;
+ if ((source = getSoundSource(soundId)) != null) source.setLooping(looping);
+ }
+
+ @Override
+ public void setPitch (long soundId, float pitch) {
+ ALSource source;
+ if ((source = getSoundSource(soundId)) != null) source.setPitch(pitch);
+ }
+
+ @Override
+ public void setVolume (long soundId, float volume) {
+ ALSource source;
+ if ((source = getSoundSource(soundId)) != null) source.setVolume(volume);
+ }
+
+ @Override
+ public void setPan (long soundId, float pan, float volume) {
+ ALSource source;
+ if ((source = getSoundSource(soundId)) != null) {
+ source.setPan(pan);
+ source.setVolume(volume);
+ }
+ }
+
+ @Override
+ public void pause () {
+ ALSource source;
+ for (int i = 0; i < streamIds.size; i++) {
+ if ((source = getSoundSource(streamIds.get(i))) != null) source.setPaused(true);
+ }
+ }
+
+ @Override
+ public void resume () {
+ ALSource source;
+ for (int i = 0; i < streamIds.size; i++) {
+ if ((source = getSoundSource(streamIds.get(i))) != null) source.setPaused(false);
+ }
+ }
+
+ @Override
+ public void pause (long soundId) {
+ ALSource source;
+ if ((source = getSoundSource(soundId)) != null) source.setPaused(true);
+ }
+
+ @Override
+ public void resume (long soundId) {
+ ALSource source;
+ if ((source = getSoundSource(soundId)) != null) source.setPaused(false);
+ }
+
+ private ALSource getSoundSource (long soundId) {
+ for (ALSource source : sourcePool) {
+ if (source.sourceId() == soundId) return source;
+ }
+ return null;
+ }
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSUIViewController.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSUIViewController.java new file mode 100755 index 000000000..3cf2a6cac --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSUIViewController.java @@ -0,0 +1,104 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+import com.intel.moe.natj.general.NatJ;
+import com.intel.moe.natj.general.Pointer;
+import com.intel.moe.natj.objc.ann.Selector;
+import ios.coregraphics.struct.CGRect;
+import ios.glkit.GLKViewController;
+import ios.uikit.enums.UIInterfaceOrientation;
+
+
+class IOSUIViewController extends GLKViewController {
+
+ private IOSApplication app;
+ private IOSGraphics graphics;
+
+ static {
+ NatJ.register();
+ }
+
+ @Selector("alloc")
+ public static native IOSUIViewController alloc ();
+
+ @Selector("init")
+ public native IOSUIViewController init ();
+
+ protected IOSUIViewController (Pointer peer) {
+ super(peer);
+ }
+ public IOSUIViewController init (IOSApplication app, IOSGraphics graphics) {
+ init();
+ this.app = app;
+ this.graphics = graphics;
+ return this;
+ }
+
+ @Override
+ public void viewWillAppear (boolean arg0) {
+ super.viewWillAppear(arg0);
+ // start GLKViewController even though we may only draw a single frame
+ // (we may be in non-continuous mode)
+ setPaused(false);
+ }
+
+ @Override
+ public void viewDidAppear (boolean animated) {
+ if (app.viewControllerListener != null)
+ app.viewControllerListener.viewDidAppear(animated);
+ }
+
+ @Override
+ public long supportedInterfaceOrientations () {
+ long mask = 0;
+ if (app.config.orientationLandscape) {
+ mask |= ((1 << UIInterfaceOrientation.LandscapeLeft) | (1 << UIInterfaceOrientation.LandscapeRight));
+ }
+ if (app.config.orientationPortrait) {
+ mask |= ((1 << UIInterfaceOrientation.Portrait) | (1 << UIInterfaceOrientation.PortraitUpsideDown));
+ }
+ return mask;
+ }
+
+ @Override
+ public boolean shouldAutorotate () {
+ return true;
+ }
+
+ public boolean shouldAutorotateToInterfaceOrientation (long orientation) {
+ // we return "true" if we support the orientation
+ if (orientation == UIInterfaceOrientation.LandscapeLeft || orientation == UIInterfaceOrientation.LandscapeRight)
+ return app.config.orientationLandscape;
+ else
+ // assume portrait
+ return app.config.orientationPortrait;
+ }
+
+ @Override
+ public void viewDidLayoutSubviews () {
+ super.viewDidLayoutSubviews();
+ // get the view size and update graphics
+ CGRect bounds = app.getBounds();
+ graphics.width = (int)bounds.size().width();
+ graphics.height = (int)bounds.size().height();
+ graphics.makeCurrent();
+ if (app.graphics.created) {
+ app.listener.resize(graphics.width, graphics.height);
+ }
+ }
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSViewControllerListener.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSViewControllerListener.java new file mode 100755 index 000000000..be41de075 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/IOSViewControllerListener.java @@ -0,0 +1,30 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe;
+
+/** An IOSViewControllerListener can be added to an {@link IOSApplication} via
+ * {@link IOSApplication#addViewControllerListener(IOSViewControllerListener)}. It will receive notification of view events.</p>
+ *
+ * The methods will be invoked on the UI thread.
+ *
+ * @author mzechner */
+public interface IOSViewControllerListener {
+
+ /** Called when the {@link IOSApplication} root ViewController has appeared */
+ public void viewDidAppear (boolean animated);
+
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/custom/HWMachine.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/custom/HWMachine.java new file mode 100755 index 000000000..cb14738e9 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/custom/HWMachine.java @@ -0,0 +1,48 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosmoe.custom;
+
+import com.badlogic.gdx.utils.BufferUtils;
+import com.intel.moe.natj.c.CRuntime;
+import com.intel.moe.natj.c.ann.CFunction;
+import com.intel.moe.natj.general.NatJ;
+import com.intel.moe.natj.general.ann.Runtime;
+import com.intel.moe.natj.general.ann.UncertainArgument;
+import com.intel.moe.natj.general.ptr.BytePtr;
+import com.intel.moe.natj.general.ptr.IntPtr;
+import com.intel.moe.natj.general.ptr.impl.PtrFactory;
+import com.intel.moe.natj.general.ptr.VoidPtr;
+
+@Runtime(CRuntime.class)
+public class HWMachine {
+ static {
+ NatJ.register();
+ }
+
+ @CFunction
+ public static native int sysctlbyname(@UncertainArgument("Options: java.string, c.const-byte-ptr Fallback: java.string") String name,
+ VoidPtr oldp, IntPtr oldlenp, VoidPtr newp, int newlen);
+
+ public static String getMachineString () {
+ String name = "hw.machine";
+ IntPtr sizePtr = PtrFactory.newIntPtr(BufferUtils.newIntBuffer(1));
+ sysctlbyname(name, null, sizePtr, null, 0);
+ BytePtr machine = PtrFactory.newBytePtr(sizePtr.get(), true, true);
+ sysctlbyname(name, machine, sizePtr, null, 0);
+ return machine.toUTF8String();
+ }
+}
diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALBuffer.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALBuffer.java new file mode 100755 index 000000000..a22e182bc --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALBuffer.java @@ -0,0 +1,121 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Owned; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.general.ptr.VoidPtr; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.ann.ObjCClassBinding; +import com.intel.moe.natj.objc.ann.Selector; +import ios.NSObject; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCClassBinding +public class ALBuffer extends NSObject { + static { + NatJ.register(); + } + + @Generated + protected ALBuffer(Pointer peer) { + super(peer); + } + + @Generated + @Owned + @Selector("alloc") + public static native ALBuffer alloc(); + + @Generated + @Selector("bits") + public native int bits(); + + @Generated + @Selector("bufferId") + public native int bufferId(); + + @Generated + @Selector("bufferWithName:data:size:format:frequency:") + public static native ALBuffer bufferWithNameDataSizeFormatFrequency( + String name, VoidPtr data, int size, int format, int frequency); + + @Generated + @Selector("channels") + public native int channels(); + + @Generated + @Selector("device") + public native ALDevice device(); + + @Generated + @Selector("duration") + public native float duration(); + + @Generated + @Selector("format") + public native int format(); + + @Generated + @Selector("freeDataOnDestroy") + public native boolean freeDataOnDestroy(); + + @Generated + @Selector("frequency") + public native int frequency(); + + @Generated + @Selector("init") + public native ALBuffer init(); + + @Generated + @Selector("initWithName:data:size:format:frequency:") + public native ALBuffer initWithNameDataSizeFormatFrequency(String name, + VoidPtr data, int size, int format, int frequency); + + @Generated + @Selector("name") + public native String name(); + + @Generated + @Selector("parentBuffer") + public native ALBuffer parentBuffer(); + + @Generated + @Selector("setFreeDataOnDestroy:") + public native void setFreeDataOnDestroy(boolean value); + + @Generated + @Selector("setName:") + public native void setName(String value); + + @Generated + @Selector("setParentBuffer:") + public native void setParentBuffer(ALBuffer value); + + @Generated + @Selector("size") + public native int size(); + + @Generated + @Selector("sliceWithName:offset:size:") + public native ALBuffer sliceWithNameOffsetSize(String sliceName, + int offset, int size); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALChannelSource.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALChannelSource.java new file mode 100755 index 000000000..8c3bcbe22 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALChannelSource.java @@ -0,0 +1,372 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.ByValue; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Mapped; +import com.intel.moe.natj.general.ann.MappedReturn; +import com.intel.moe.natj.general.ann.Owned; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.SEL; +import com.intel.moe.natj.objc.ann.ObjCClassBinding; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; +import ios.NSObject; +import ios.foundation.NSArray; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCClassBinding +public class ALChannelSource extends NSObject implements ALSoundSource { + static { + NatJ.register(); + } + + @Generated + protected ALChannelSource(Pointer peer) { + super(peer); + } + + @Generated + @Selector("addChannel:") + public native void addChannel(ALChannelSource channel); + + @Generated + @Selector("addSource:") + public native void addSource( + @Mapped(ObjCObjectMapper.class) ALSoundSource source); + + @Generated + @Owned + @Selector("alloc") + public static native ALChannelSource alloc(); + + @Generated + @Selector("channelWithSources:") + @MappedReturn(ObjCObjectMapper.class) + public static native Object channelWithSources(int reservedSources); + + @Generated + @Selector("clear") + public native void clear(); + + @Generated + @Selector("clearUnusedBuffers") + public native NSArray<?> clearUnusedBuffers(); + + @Generated + @Selector("coneInnerAngle") + public native float coneInnerAngle(); + + @Generated + @Selector("coneOuterAngle") + public native float coneOuterAngle(); + + @Generated + @Selector("coneOuterGain") + public native float coneOuterGain(); + + @Generated + @Selector("context") + public native ALContext context(); + + @Generated + @Selector("direction") + @ByValue + public native ALVector direction(); + + @Generated + @Selector("fadeTo:duration:target:selector:") + public native void fadeToDurationTargetSelector(float gain, float duration, + @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("gain") + public native float gain(); + + @Generated + @Selector("init") + public native ALChannelSource init(); + + @Generated + @Selector("initWithSources:") + public native ALChannelSource initWithSources(int reservedSources); + + @Generated + @Selector("interruptible") + public native boolean interruptible(); + + @Generated + @Selector("looping") + public native boolean looping(); + + @Generated + @Selector("maxDistance") + public native float maxDistance(); + + @Generated + @Selector("maxGain") + public native float maxGain(); + + @Generated + @Selector("minGain") + public native float minGain(); + + @Generated + @Selector("muted") + public native boolean muted(); + + @Generated + @Selector("pan") + public native float pan(); + + @Generated + @Selector("panTo:duration:target:selector:") + public native void panToDurationTargetSelector(float pan, float duration, + @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("paused") + public native boolean paused(); + + @Generated + @Selector("pitch") + public native float pitch(); + + @Generated + @Selector("pitchTo:duration:target:selector:") + public native void pitchToDurationTargetSelector(float pitch, + float duration, @Mapped(ObjCObjectMapper.class) Object target, + SEL selector); + + @Generated + @Selector("play:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSoundSource play(ALBuffer buffer); + + @Generated + @Selector("play:gain:pitch:pan:loop:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSoundSource playGainPitchPanLoop(ALBuffer buffer, float gain, + float pitch, float pan, boolean loop); + + @Generated + @Selector("play:loop:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSoundSource playLoop(ALBuffer buffer, boolean loop); + + @Generated + @Selector("playing") + public native boolean playing(); + + @Generated + @Selector("position") + @ByValue + public native ALPoint position(); + + @Generated + @Selector("referenceDistance") + public native float referenceDistance(); + + @Generated + @Selector("removeBuffersNamed:") + public native boolean removeBuffersNamed(String name); + + @Generated + @Selector("removeSource:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSoundSource removeSource( + @Mapped(ObjCObjectMapper.class) ALSoundSource source); + + @Generated + @Selector("reservedSources") + public native int reservedSources(); + + @Generated + @Selector("resetToDefault") + public native void resetToDefault(); + + @Generated + @Selector("reverbObstruction") + public native float reverbObstruction(); + + @Generated + @Selector("reverbOcclusion") + public native float reverbOcclusion(); + + @Generated + @Selector("reverbSendLevel") + public native float reverbSendLevel(); + + @Generated + @Selector("rewind") + public native void rewind(); + + @Generated + @Selector("rolloffFactor") + public native float rolloffFactor(); + + @Generated + @Selector("setConeInnerAngle:") + public native void setConeInnerAngle(float value); + + @Generated + @Selector("setConeOuterAngle:") + public native void setConeOuterAngle(float value); + + @Generated + @Selector("setConeOuterGain:") + public native void setConeOuterGain(float value); + + @Generated + @Selector("setDefaultsFromSource:") + public native void setDefaultsFromSource( + @Mapped(ObjCObjectMapper.class) ALSoundSource source); + + @Generated + @Selector("setDirection:") + public native void setDirection(@ByValue ALVector value); + + @Generated + @Selector("setGain:") + public native void setGain(float value); + + @Generated + @Selector("setInterruptible:") + public native void setInterruptible(boolean value); + + @Generated + @Selector("setLooping:") + public native void setLooping(boolean value); + + @Generated + @Selector("setMaxDistance:") + public native void setMaxDistance(float value); + + @Generated + @Selector("setMaxGain:") + public native void setMaxGain(float value); + + @Generated + @Selector("setMinGain:") + public native void setMinGain(float value); + + @Generated + @Selector("setMuted:") + public native void setMuted(boolean value); + + @Generated + @Selector("setPan:") + public native void setPan(float value); + + @Generated + @Selector("setPaused:") + public native void setPaused(boolean value); + + @Generated + @Selector("setPitch:") + public native void setPitch(float value); + + @Generated + @Selector("setPosition:") + public native void setPosition(@ByValue ALPoint value); + + @Generated + @Selector("setReferenceDistance:") + public native void setReferenceDistance(float value); + + @Generated + @Selector("setReservedSources:") + public native void setReservedSources(int value); + + @Generated + @Selector("setReverbObstruction:") + public native void setReverbObstruction(float value); + + @Generated + @Selector("setReverbOcclusion:") + public native void setReverbOcclusion(float value); + + @Generated + @Selector("setReverbSendLevel:") + public native void setReverbSendLevel(float value); + + @Generated + @Selector("setRolloffFactor:") + public native void setRolloffFactor(float value); + + @Generated + @Selector("setSourceRelative:") + public native void setSourceRelative(int value); + + @Generated + @Selector("setVelocity:") + public native void setVelocity(@ByValue ALVector value); + + @Generated + @Selector("setVolume:") + public native void setVolume(float value); + + @Generated + @Selector("sourcePool") + public native ALSoundSourcePool sourcePool(); + + @Generated + @Selector("sourceRelative") + public native int sourceRelative(); + + @Generated + @Selector("sourceType") + public native int sourceType(); + + @Generated + @Selector("splitChannelWithSources:") + public native ALChannelSource splitChannelWithSources(int numSources); + + @Generated + @Selector("stop") + public native void stop(); + + @Generated + @Selector("stopActions") + public native void stopActions(); + + @Generated + @Selector("stopFade") + public native void stopFade(); + + @Generated + @Selector("stopPan") + public native void stopPan(); + + @Generated + @Selector("stopPitch") + public native void stopPitch(); + + @Generated + @Selector("velocity") + @ByValue + public native ALVector velocity(); + + @Generated + @Selector("volume") + public native float volume(); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALContext.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALContext.java new file mode 100755 index 000000000..1b9152ca7 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALContext.java @@ -0,0 +1,198 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Mapped; +import com.intel.moe.natj.general.ann.Owned; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.general.ptr.VoidPtr; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.ann.ObjCClassBinding; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; +import ios.NSObject; +import ios.foundation.NSArray; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCClassBinding +public class ALContext extends NSObject implements OALSuspendManager { + static { + NatJ.register(); + } + + @Generated + protected ALContext(Pointer peer) { + super(peer); + } + + @Generated + @Selector("addSuspendListener:") + public native void addSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Selector("alVersion") + public native String alVersion(); + + @Generated + @Owned + @Selector("alloc") + public static native ALContext alloc(); + + @Generated + @Selector("attributes") + public native NSArray<?> attributes(); + + @Generated + @Selector("clearBuffers") + public native void clearBuffers(); + + @Generated + @Selector("context") + public native VoidPtr context(); + + @Generated + @Selector("contextOnDevice:attributes:") + public static native ALContext contextOnDeviceAttributes(ALDevice device, + NSArray<?> attributes); + + @Generated + @Selector("contextOnDevice:outputFrequency:refreshIntervals:synchronousContext:monoSources:stereoSources:") + public static native ALContext contextOnDeviceOutputFrequencyRefreshIntervalsSynchronousContextMonoSourcesStereoSources( + ALDevice device, int outputFrequency, int refreshIntervals, + boolean synchronousContext, int monoSources, int stereoSources); + + @Generated + @Selector("device") + public native ALDevice device(); + + @Generated + @Selector("distanceModel") + public native int distanceModel(); + + @Generated + @Selector("dopplerFactor") + public native float dopplerFactor(); + + @Generated + @Selector("ensureContextIsCurrent") + public native void ensureContextIsCurrent(); + + @Generated + @Selector("extensions") + public native NSArray<?> extensions(); + + @Generated + @Selector("getProcAddress:") + public native VoidPtr getProcAddress(String functionName); + + @Generated + @Selector("init") + public native ALContext init(); + + @Generated + @Selector("initOnDevice:attributes:") + public native ALContext initOnDeviceAttributes(ALDevice device, + NSArray<?> attributes); + + @Generated + @Selector("initOnDevice:outputFrequency:refreshIntervals:synchronousContext:monoSources:stereoSources:") + public native ALContext initOnDeviceOutputFrequencyRefreshIntervalsSynchronousContextMonoSourcesStereoSources( + ALDevice device, int outputFrequency, int refreshIntervals, + boolean synchronousContext, int monoSources, int stereoSources); + + @Generated + @Selector("interrupted") + public native boolean interrupted(); + + @Generated + @Selector("isExtensionPresent:") + public native boolean isExtensionPresent(String name); + + @Generated + @Selector("listener") + public native ALListener listener(); + + @Generated + @Selector("manuallySuspended") + public native boolean manuallySuspended(); + + @Generated + @Selector("notifySourceDeallocating:") + public native void notifySourceDeallocating(ALSource source); + + @Generated + @Selector("notifySourceInitializing:") + public native void notifySourceInitializing(ALSource source); + + @Generated + @Selector("process") + public native void process(); + + @Generated + @Selector("removeSuspendListener:") + public native void removeSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Selector("renderer") + public native String renderer(); + + @Generated + @Selector("setDistanceModel:") + public native void setDistanceModel(int value); + + @Generated + @Selector("setDopplerFactor:") + public native void setDopplerFactor(float value); + + @Generated + @Selector("setInterrupted:") + public native void setInterrupted(boolean value); + + @Generated + @Selector("setManuallySuspended:") + public native void setManuallySuspended(boolean value); + + @Generated + @Selector("setSpeedOfSound:") + public native void setSpeedOfSound(float value); + + @Generated + @Selector("sources") + public native NSArray<?> sources(); + + @Generated + @Selector("speedOfSound") + public native float speedOfSound(); + + @Generated + @Selector("stopAllSounds") + public native void stopAllSounds(); + + @Generated + @Selector("suspended") + public native boolean suspended(); + + @Generated + @Selector("vendor") + public native String vendor(); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALDevice.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALDevice.java new file mode 100755 index 000000000..193c95144 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALDevice.java @@ -0,0 +1,133 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Mapped; +import com.intel.moe.natj.general.ann.Owned; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.general.ptr.VoidPtr; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.ann.ObjCClassBinding; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; +import ios.NSObject; +import ios.foundation.NSArray; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCClassBinding +public class ALDevice extends NSObject implements OALSuspendManager { + static { + NatJ.register(); + } + + @Generated + protected ALDevice(Pointer peer) { + super(peer); + } + + @Generated + @Selector("addSuspendListener:") + public native void addSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Owned + @Selector("alloc") + public static native ALDevice alloc(); + + @Generated + @Selector("clearBuffers") + public native void clearBuffers(); + + @Generated + @Selector("contexts") + public native NSArray<?> contexts(); + + @Generated + @Selector("device") + public native VoidPtr device(); + + @Generated + @Selector("deviceWithDeviceSpecifier:") + public static native ALDevice deviceWithDeviceSpecifier( + String deviceSpecifier); + + @Generated + @Selector("extensions") + public native NSArray<?> extensions(); + + @Generated + @Selector("getProcAddress:") + public native VoidPtr getProcAddress(String functionName); + + @Generated + @Selector("init") + public native ALDevice init(); + + @Generated + @Selector("initWithDeviceSpecifier:") + public native ALDevice initWithDeviceSpecifier(String deviceSpecifier); + + @Generated + @Selector("interrupted") + public native boolean interrupted(); + + @Generated + @Selector("isExtensionPresent:") + public native boolean isExtensionPresent(String name); + + @Generated + @Selector("majorVersion") + public native int majorVersion(); + + @Generated + @Selector("manuallySuspended") + public native boolean manuallySuspended(); + + @Generated + @Selector("minorVersion") + public native int minorVersion(); + + @Generated + @Selector("notifyContextDeallocating:") + public native void notifyContextDeallocating(ALContext context); + + @Generated + @Selector("notifyContextInitializing:") + public native void notifyContextInitializing(ALContext context); + + @Generated + @Selector("removeSuspendListener:") + public native void removeSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Selector("setInterrupted:") + public native void setInterrupted(boolean value); + + @Generated + @Selector("setManuallySuspended:") + public native void setManuallySuspended(boolean value); + + @Generated + @Selector("suspended") + public native boolean suspended(); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALListener.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALListener.java new file mode 100755 index 000000000..2b5994a87 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALListener.java @@ -0,0 +1,186 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.ByValue; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Mapped; +import com.intel.moe.natj.general.ann.Owned; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.ann.ObjCClassBinding; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; +import ios.NSObject; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCClassBinding +public class ALListener extends NSObject implements OALSuspendManager { + static { + NatJ.register(); + } + + @Generated + protected ALListener(Pointer peer) { + super(peer); + } + + @Generated + @Selector("addSuspendListener:") + public native void addSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Owned + @Selector("alloc") + public static native ALListener alloc(); + + @Generated + @Selector("context") + public native ALContext context(); + + @Generated + @Selector("gain") + public native float gain(); + + @Generated + @Selector("globalReverbLevel") + public native float globalReverbLevel(); + + @Generated + @Selector("init") + public native ALListener init(); + + @Generated + @Selector("initWithContext:") + public native ALListener initWithContext(ALContext context); + + @Generated + @Selector("interrupted") + public native boolean interrupted(); + + @Generated + @Selector("listenerForContext:") + public static native ALListener listenerForContext(ALContext context); + + @Generated + @Selector("manuallySuspended") + public native boolean manuallySuspended(); + + @Generated + @Selector("muted") + public native boolean muted(); + + @Generated + @Selector("orientation") + @ByValue + public native ALOrientation orientation(); + + @Generated + @Selector("position") + @ByValue + public native ALPoint position(); + + @Generated + @Selector("removeSuspendListener:") + public native void removeSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Selector("reverbEQBandwidth") + public native float reverbEQBandwidth(); + + @Generated + @Selector("reverbEQFrequency") + public native float reverbEQFrequency(); + + @Generated + @Selector("reverbEQGain") + public native float reverbEQGain(); + + @Generated + @Selector("reverbOn") + public native boolean reverbOn(); + + @Generated + @Selector("reverbRoomType") + public native int reverbRoomType(); + + @Generated + @Selector("setGain:") + public native void setGain(float value); + + @Generated + @Selector("setGlobalReverbLevel:") + public native void setGlobalReverbLevel(float value); + + @Generated + @Selector("setInterrupted:") + public native void setInterrupted(boolean value); + + @Generated + @Selector("setManuallySuspended:") + public native void setManuallySuspended(boolean value); + + @Generated + @Selector("setMuted:") + public native void setMuted(boolean value); + + @Generated + @Selector("setOrientation:") + public native void setOrientation(@ByValue ALOrientation value); + + @Generated + @Selector("setPosition:") + public native void setPosition(@ByValue ALPoint value); + + @Generated + @Selector("setReverbEQBandwidth:") + public native void setReverbEQBandwidth(float value); + + @Generated + @Selector("setReverbEQFrequency:") + public native void setReverbEQFrequency(float value); + + @Generated + @Selector("setReverbEQGain:") + public native void setReverbEQGain(float value); + + @Generated + @Selector("setReverbOn:") + public native void setReverbOn(boolean value); + + @Generated + @Selector("setReverbRoomType:") + public native void setReverbRoomType(int value); + + @Generated + @Selector("setVelocity:") + public native void setVelocity(@ByValue ALVector value); + + @Generated + @Selector("suspended") + public native boolean suspended(); + + @Generated + @Selector("velocity") + @ByValue + public native ALVector velocity(); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALOrientation.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALOrientation.java new file mode 100755 index 000000000..78d4be2d1 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALOrientation.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.c.StructObject; +import com.intel.moe.natj.c.ann.Structure; +import com.intel.moe.natj.c.ann.StructureField; +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.ByValue; +import com.intel.moe.natj.general.ann.Generated; + +@Generated +@Structure() +public final class ALOrientation extends StructObject { + static { + NatJ.register(); + } + private static long __natjCache; + + @Generated + public ALOrientation() { + super(ALOrientation.class); + } + + @Generated + protected ALOrientation(Pointer peer) { + super(peer); + } + + @Generated + public ALOrientation(@ByValue ALVector at, @ByValue ALVector up) { + super(ALOrientation.class); + setAt(at); + setUp(up); + } + + @Generated + @StructureField(order = 0, isGetter = true) + @ByValue + public native ALVector at(); + + @Generated + @StructureField(order = 0, isGetter = false) + public native void setAt(@ByValue ALVector value); + + @Generated + @StructureField(order = 1, isGetter = true) + @ByValue + public native ALVector up(); + + @Generated + @StructureField(order = 1, isGetter = false) + public native void setUp(@ByValue ALVector value); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALPoint.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALPoint.java new file mode 100755 index 000000000..8b8c0acf1 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALPoint.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.c.StructObject; +import com.intel.moe.natj.c.ann.Structure; +import com.intel.moe.natj.c.ann.StructureField; +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.Generated; + +@Generated +@Structure() +public final class ALPoint extends StructObject { + static { + NatJ.register(); + } + private static long __natjCache; + + @Generated + public ALPoint() { + super(ALPoint.class); + } + + @Generated + protected ALPoint(Pointer peer) { + super(peer); + } + + @Generated + public ALPoint(float x, float y, float z) { + super(ALPoint.class); + setX(x); + setY(y); + setZ(z); + } + + @Generated + @StructureField(order = 0, isGetter = true) + public native float x(); + + @Generated + @StructureField(order = 0, isGetter = false) + public native void setX(float value); + + @Generated + @StructureField(order = 1, isGetter = true) + public native float y(); + + @Generated + @StructureField(order = 1, isGetter = false) + public native void setY(float value); + + @Generated + @StructureField(order = 2, isGetter = true) + public native float z(); + + @Generated + @StructureField(order = 2, isGetter = false) + public native void setZ(float value); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALSoundSource.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALSoundSource.java new file mode 100755 index 000000000..58b47178a --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALSoundSource.java @@ -0,0 +1,284 @@ + +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.ann.ByValue; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Mapped; +import com.intel.moe.natj.general.ann.MappedReturn; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.SEL; +import com.intel.moe.natj.objc.ann.ObjCProtocolName; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCProtocolName("ALSoundSource") +public interface ALSoundSource { + @Generated + @Selector("clear") + void clear (); + + @Generated + @Selector("coneInnerAngle") + float coneInnerAngle (); + + @Generated + @Selector("coneOuterAngle") + float coneOuterAngle (); + + @Generated + @Selector("coneOuterGain") + float coneOuterGain (); + + @Generated + @Selector("direction") + @ByValue + ALVector direction (); + + @Generated + @Selector("fadeTo:duration:target:selector:") + void fadeToDurationTargetSelector (float gain, float duration, @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("gain") + float gain (); + + @Generated + @Selector("interruptible") + boolean interruptible (); + + @Generated + @Selector("looping") + boolean looping (); + + @Generated + @Selector("maxDistance") + float maxDistance (); + + @Generated + @Selector("maxGain") + float maxGain (); + + @Generated + @Selector("minGain") + float minGain (); + + @Generated + @Selector("muted") + boolean muted (); + + @Generated + @Selector("pan") + float pan (); + + @Generated + @Selector("panTo:duration:target:selector:") + void panToDurationTargetSelector (float pan, float duration, @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("paused") + boolean paused (); + + @Generated + @Selector("pitch") + float pitch (); + + @Generated + @Selector("pitchTo:duration:target:selector:") + void pitchToDurationTargetSelector (float pitch, float duration, @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("play:") + @MappedReturn(ObjCObjectMapper.class) + ALSoundSource play (ALBuffer buffer); + + @Generated + @Selector("play:gain:pitch:pan:loop:") + @MappedReturn(ObjCObjectMapper.class) + ALSoundSource playGainPitchPanLoop (ALBuffer buffer, float gain, float pitch, float pan, boolean loop); + + @Generated + @Selector("play:loop:") + @MappedReturn(ObjCObjectMapper.class) + ALSoundSource playLoop (ALBuffer buffer, boolean loop); + + @Generated + @Selector("playing") + boolean playing (); + + @Generated + @Selector("position") + @ByValue + ALPoint position (); + + @Generated + @Selector("referenceDistance") + float referenceDistance (); + + @Generated + @Selector("reverbObstruction") + float reverbObstruction (); + + @Generated + @Selector("reverbOcclusion") + float reverbOcclusion (); + + @Generated + @Selector("reverbSendLevel") + float reverbSendLevel (); + + @Generated + @Selector("rewind") + void rewind (); + + @Generated + @Selector("rolloffFactor") + float rolloffFactor (); + + @Generated + @Selector("setConeInnerAngle:") + void setConeInnerAngle (float value); + + @Generated + @Selector("setConeOuterAngle:") + void setConeOuterAngle (float value); + + @Generated + @Selector("setConeOuterGain:") + void setConeOuterGain (float value); + + @Generated + @Selector("setDirection:") + void setDirection (@ByValue ALVector value); + + @Generated + @Selector("setGain:") + void setGain (float value); + + @Generated + @Selector("setInterruptible:") + void setInterruptible (boolean value); + + @Generated + @Selector("setLooping:") + void setLooping (boolean value); + + @Generated + @Selector("setMaxDistance:") + void setMaxDistance (float value); + + @Generated + @Selector("setMaxGain:") + void setMaxGain (float value); + + @Generated + @Selector("setMinGain:") + void setMinGain (float value); + + @Generated + @Selector("setMuted:") + void setMuted (boolean value); + + @Generated + @Selector("setPan:") + void setPan (float value); + + @Generated + @Selector("setPaused:") + void setPaused (boolean value); + + @Generated + @Selector("setPitch:") + void setPitch (float value); + + @Generated + @Selector("setPosition:") + void setPosition (@ByValue ALPoint value); + + @Generated + @Selector("setReferenceDistance:") + void setReferenceDistance (float value); + + @Generated + @Selector("setReverbObstruction:") + void setReverbObstruction (float value); + + @Generated + @Selector("setReverbOcclusion:") + void setReverbOcclusion (float value); + + @Generated + @Selector("setReverbSendLevel:") + void setReverbSendLevel (float value); + + @Generated + @Selector("setRolloffFactor:") + void setRolloffFactor (float value); + + @Generated + @Selector("setSourceRelative:") + void setSourceRelative (int value); + + @Generated + @Selector("setVelocity:") + void setVelocity (@ByValue ALVector value); + + @Generated + @Selector("setVolume:") + void setVolume (float value); + + @Generated + @Selector("sourceRelative") + int sourceRelative (); + + @Generated + @Selector("sourceType") + int sourceType (); + + @Generated + @Selector("stop") + void stop (); + + @Generated + @Selector("stopActions") + void stopActions (); + + @Generated + @Selector("stopFade") + void stopFade (); + + @Generated + @Selector("stopPan") + void stopPan (); + + @Generated + @Selector("stopPitch") + void stopPitch (); + + @Generated + @Selector("velocity") + @ByValue + ALVector velocity (); + + @Generated + @Selector("volume") + float volume (); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALSoundSourcePool.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALSoundSourcePool.java new file mode 100755 index 000000000..6f58a950d --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALSoundSourcePool.java @@ -0,0 +1,77 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Mapped; +import com.intel.moe.natj.general.ann.MappedReturn; +import com.intel.moe.natj.general.ann.Owned; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.ann.ObjCClassBinding; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; +import ios.NSObject; +import ios.foundation.NSArray; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCClassBinding +public class ALSoundSourcePool extends NSObject { + static { + NatJ.register(); + } + + @Generated + protected ALSoundSourcePool(Pointer peer) { + super(peer); + } + + @Generated + @Selector("addSource:") + public native void addSource( + @Mapped(ObjCObjectMapper.class) ALSoundSource source); + + @Generated + @Owned + @Selector("alloc") + public static native ALSoundSourcePool alloc(); + + @Generated + @Selector("getFreeSource:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSoundSource getFreeSource(boolean attemptToInterrupt); + + @Generated + @Selector("init") + public native ALSoundSourcePool init(); + + @Generated + @Selector("pool") + public static native ALSoundSourcePool pool(); + + @Generated + @Selector("removeSource:") + public native void removeSource( + @Mapped(ObjCObjectMapper.class) ALSoundSource source); + + @Generated + @Selector("sources") + public native NSArray<?> sources(); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALSource.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALSource.java new file mode 100755 index 000000000..c51129c71 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALSource.java @@ -0,0 +1,466 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.ByValue; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Mapped; +import com.intel.moe.natj.general.ann.MappedReturn; +import com.intel.moe.natj.general.ann.NUInt; +import com.intel.moe.natj.general.ann.Owned; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.general.ptr.VoidPtr; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.SEL; +import com.intel.moe.natj.objc.ann.ObjCBlock; +import com.intel.moe.natj.objc.ann.ObjCClassBinding; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; +import ios.NSObject; +import ios.foundation.NSArray; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCClassBinding +public class ALSource extends NSObject implements ALSoundSource, + OALSuspendManager { + static { + NatJ.register(); + } + + @Generated + protected ALSource(Pointer peer) { + super(peer); + } + + @Generated + @Selector("addSuspendListener:") + public native void addSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Owned + @Selector("alloc") + public static native ALSource alloc(); + + @Generated + @Selector("buffer") + public native ALBuffer buffer(); + + @Generated + @Selector("buffersProcessed") + public native int buffersProcessed(); + + @Generated + @Selector("buffersQueued") + public native int buffersQueued(); + + @Generated + @Selector("clear") + public native void clear(); + + @Generated + @Selector("coneInnerAngle") + public native float coneInnerAngle(); + + @Generated + @Selector("coneOuterAngle") + public native float coneOuterAngle(); + + @Generated + @Selector("coneOuterGain") + public native float coneOuterGain(); + + @Generated + @Selector("context") + public native ALContext context(); + + @Generated + @Selector("direction") + @ByValue + public native ALVector direction(); + + @Generated + @Selector("fadeTo:duration:target:selector:") + public native void fadeToDurationTargetSelector(float gain, float duration, + @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("gain") + public native float gain(); + + @Generated + @Selector("init") + public native ALSource init(); + + @Generated + @Selector("initOnContext:") + public native ALSource initOnContext(ALContext context); + + @Generated + @Selector("interrupted") + public native boolean interrupted(); + + @Generated + @Selector("interruptible") + public native boolean interruptible(); + + @Generated + @Selector("looping") + public native boolean looping(); + + @Generated + @Selector("manuallySuspended") + public native boolean manuallySuspended(); + + @Generated + @Selector("maxDistance") + public native float maxDistance(); + + @Generated + @Selector("maxGain") + public native float maxGain(); + + @Generated + @Selector("minGain") + public native float minGain(); + + @Generated + @Selector("muted") + public native boolean muted(); + + @Generated + @Selector("offsetInBytes") + public native float offsetInBytes(); + + @Generated + @Selector("offsetInSamples") + public native float offsetInSamples(); + + @Generated + @Selector("offsetInSeconds") + public native float offsetInSeconds(); + + @Generated + @Selector("pan") + public native float pan(); + + @Generated + @Selector("panTo:duration:target:selector:") + public native void panToDurationTargetSelector(float pan, float duration, + @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("paused") + public native boolean paused(); + + @Generated + @Selector("pitch") + public native float pitch(); + + @Generated + @Selector("pitchTo:duration:target:selector:") + public native void pitchToDurationTargetSelector(float pitch, + float duration, @Mapped(ObjCObjectMapper.class) Object target, + SEL selector); + + @Generated + @Selector("play") + @MappedReturn(ObjCObjectMapper.class) + public native ALSoundSource play(); + + @Generated + @Selector("play:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSoundSource play(ALBuffer buffer); + + @Generated + @Selector("play:gain:pitch:pan:loop:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSoundSource playGainPitchPanLoop(ALBuffer buffer, float gain, + float pitch, float pan, boolean loop); + + @Generated + @Selector("play:loop:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSoundSource playLoop(ALBuffer buffer, boolean loop); + + @Generated + @Selector("playing") + public native boolean playing(); + + @Generated + @Selector("position") + @ByValue + public native ALPoint position(); + + @Generated + @Selector("queueBuffer:") + public native boolean queueBuffer(ALBuffer buffer); + + @Generated + @Selector("queueBuffer:repeats:") + public native boolean queueBufferRepeats(ALBuffer buffer, + @NUInt long repeats); + + @Generated + @Selector("queueBuffers:") + public native boolean queueBuffers(NSArray<?> buffers); + + @Generated + @Selector("queueBuffers:repeats:") + public native boolean queueBuffersRepeats(NSArray<?> buffers, + @NUInt long repeats); + + @Generated + @Selector("referenceDistance") + public native float referenceDistance(); + + @Generated + @Selector("registerNotification:callback:userData:") + public native void registerNotificationCallbackUserData( + int notificationID, + @ObjCBlock(name = "call_registerNotificationCallbackUserData") Block_registerNotificationCallbackUserData callback, + VoidPtr userData); + + @Runtime(ObjCRuntime.class) + @Generated + public interface Block_registerNotificationCallbackUserData { + @Generated + void call_registerNotificationCallbackUserData (ALSource arg0, int arg1, VoidPtr arg2); + } + + @Generated + @Selector("removeSuspendListener:") + public native void removeSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Selector("reverbObstruction") + public native float reverbObstruction(); + + @Generated + @Selector("reverbOcclusion") + public native float reverbOcclusion(); + + @Generated + @Selector("reverbSendLevel") + public native float reverbSendLevel(); + + @Generated + @Selector("rewind") + public native void rewind(); + + @Generated + @Selector("rolloffFactor") + public native float rolloffFactor(); + + @Generated + @Selector("setBuffer:") + public native void setBuffer(ALBuffer value); + + @Generated + @Selector("setConeInnerAngle:") + public native void setConeInnerAngle(float value); + + @Generated + @Selector("setConeOuterAngle:") + public native void setConeOuterAngle(float value); + + @Generated + @Selector("setConeOuterGain:") + public native void setConeOuterGain(float value); + + @Generated + @Selector("setDirection:") + public native void setDirection(@ByValue ALVector value); + + @Generated + @Selector("setGain:") + public native void setGain(float value); + + @Generated + @Selector("setInterrupted:") + public native void setInterrupted(boolean value); + + @Generated + @Selector("setInterruptible:") + public native void setInterruptible(boolean value); + + @Generated + @Selector("setLooping:") + public native void setLooping(boolean value); + + @Generated + @Selector("setManuallySuspended:") + public native void setManuallySuspended(boolean value); + + @Generated + @Selector("setMaxDistance:") + public native void setMaxDistance(float value); + + @Generated + @Selector("setMaxGain:") + public native void setMaxGain(float value); + + @Generated + @Selector("setMinGain:") + public native void setMinGain(float value); + + @Generated + @Selector("setMuted:") + public native void setMuted(boolean value); + + @Generated + @Selector("setOffsetInBytes:") + public native void setOffsetInBytes(float value); + + @Generated + @Selector("setOffsetInSamples:") + public native void setOffsetInSamples(float value); + + @Generated + @Selector("setOffsetInSeconds:") + public native void setOffsetInSeconds(float value); + + @Generated + @Selector("setPan:") + public native void setPan(float value); + + @Generated + @Selector("setPaused:") + public native void setPaused(boolean value); + + @Generated + @Selector("setPitch:") + public native void setPitch(float value); + + @Generated + @Selector("setPosition:") + public native void setPosition(@ByValue ALPoint value); + + @Generated + @Selector("setReferenceDistance:") + public native void setReferenceDistance(float value); + + @Generated + @Selector("setReverbObstruction:") + public native void setReverbObstruction(float value); + + @Generated + @Selector("setReverbOcclusion:") + public native void setReverbOcclusion(float value); + + @Generated + @Selector("setReverbSendLevel:") + public native void setReverbSendLevel(float value); + + @Generated + @Selector("setRolloffFactor:") + public native void setRolloffFactor(float value); + + @Generated + @Selector("setSourceRelative:") + public native void setSourceRelative(int value); + + @Generated + @Selector("setState:") + public native void setState(int value); + + @Generated + @Selector("setVelocity:") + public native void setVelocity(@ByValue ALVector value); + + @Generated + @Selector("setVolume:") + public native void setVolume(float value); + + @Generated + @Selector("source") + public static native ALSource source(); + + @Generated + @Selector("sourceId") + public native int sourceId(); + + @Generated + @Selector("sourceOnContext:") + public static native ALSource sourceOnContext(ALContext context); + + @Generated + @Selector("sourceRelative") + public native int sourceRelative(); + + @Generated + @Selector("sourceType") + public native int sourceType(); + + @Generated + @Selector("state") + public native int state(); + + @Generated + @Selector("stop") + public native void stop(); + + @Generated + @Selector("stopActions") + public native void stopActions(); + + @Generated + @Selector("stopFade") + public native void stopFade(); + + @Generated + @Selector("stopPan") + public native void stopPan(); + + @Generated + @Selector("stopPitch") + public native void stopPitch(); + + @Generated + @Selector("suspended") + public native boolean suspended(); + + @Generated + @Selector("unqueueBuffer:") + public native boolean unqueueBuffer(ALBuffer buffer); + + @Generated + @Selector("unqueueBuffers:") + public native boolean unqueueBuffers(NSArray<?> buffers); + + @Generated + @Selector("unregisterAllNotifications") + public native void unregisterAllNotifications(); + + @Generated + @Selector("unregisterNotification:") + public native void unregisterNotification(int notificationID); + + @Generated + @Selector("velocity") + @ByValue + public native ALVector velocity(); + + @Generated + @Selector("volume") + public native float volume(); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALVector.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALVector.java new file mode 100755 index 000000000..e95c1517b --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/ALVector.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.c.StructObject; +import com.intel.moe.natj.c.ann.Structure; +import com.intel.moe.natj.c.ann.StructureField; +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.Generated; + +@Generated +@Structure() +public final class ALVector extends StructObject { + static { + NatJ.register(); + } + private static long __natjCache; + + @Generated + public ALVector() { + super(ALVector.class); + } + + @Generated + protected ALVector(Pointer peer) { + super(peer); + } + + @Generated + public ALVector(float x, float y, float z) { + super(ALVector.class); + setX(x); + setY(y); + setZ(z); + } + + @Generated + @StructureField(order = 0, isGetter = true) + public native float x(); + + @Generated + @StructureField(order = 0, isGetter = false) + public native void setX(float value); + + @Generated + @StructureField(order = 1, isGetter = true) + public native float y(); + + @Generated + @StructureField(order = 1, isGetter = false) + public native void setY(float value); + + @Generated + @StructureField(order = 2, isGetter = true) + public native float z(); + + @Generated + @StructureField(order = 2, isGetter = false) + public native void setZ(float value); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALAudioSession.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALAudioSession.java new file mode 100755 index 000000000..dc86c060e --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALAudioSession.java @@ -0,0 +1,230 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Mapped; +import com.intel.moe.natj.general.ann.MappedReturn; +import com.intel.moe.natj.general.ann.NUInt; +import com.intel.moe.natj.general.ann.Owned; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.ann.IsOptional; +import com.intel.moe.natj.objc.ann.ObjCClassBinding; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; +import ios.NSObject; +import ios.avfoundation.protocol.AVAudioSessionDelegate; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCClassBinding +public class OALAudioSession extends NSObject implements + AVAudioSessionDelegate, OALSuspendManager { + static { + NatJ.register(); + } + + @Generated + protected OALAudioSession(Pointer peer) { + super(peer); + } + + @Generated + @Selector("addSuspendListener:") + public native void addSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Owned + @Selector("alloc") + public static native OALAudioSession alloc(); + + @Generated + @Selector("allowIpod") + public native boolean allowIpod(); + + @Generated + @Deprecated + @Selector("audioRoute") + public native String audioRoute(); + + @Generated + @Selector("audioSessionActive") + public native boolean audioSessionActive(); + + @Generated + @Selector("audioSessionCategory") + public native String audioSessionCategory(); + + @Generated + @Selector("audioSessionDelegate") + @MappedReturn(ObjCObjectMapper.class) + public native AVAudioSessionDelegate audioSessionDelegate(); + + @Generated + @IsOptional + @Selector("beginInterruption") + public native void beginInterruption(); + + @Generated + @IsOptional + @Selector("endInterruption") + public native void endInterruption(); + + @Generated + @IsOptional + @Selector("endInterruptionWithFlags:") + public native void endInterruptionWithFlags(@NUInt long flags); + + @Generated + @Selector("forceEndInterruption") + public native void forceEndInterruption(); + + @Generated + @Selector("handleInterruptions") + public native boolean handleInterruptions(); + + @Generated + @Deprecated + @Selector("hardwareMuted") + public native boolean hardwareMuted(); + + @Generated + @Deprecated + @Selector("hardwareVolume") + public native float hardwareVolume(); + + @Generated + @Selector("honorSilentSwitch") + public native boolean honorSilentSwitch(); + + @Generated + @Selector("init") + public native OALAudioSession init(); + + @Generated + @IsOptional + @Selector("inputIsAvailableChanged:") + public native void inputIsAvailableChanged(boolean isInputAvailable); + + @Generated + @Selector("interrupted") + public native boolean interrupted(); + + @Generated + @Selector("ipodDucking") + public native boolean ipodDucking(); + + @Generated + @Deprecated + @Selector("ipodPlaying") + public native boolean ipodPlaying(); + + @Generated + @Selector("manuallySuspended") + public native boolean manuallySuspended(); + + @Generated + @Deprecated + @Selector("preferredIOBufferDuration") + public native float preferredIOBufferDuration(); + + @Generated + @Selector("purgeSharedInstance") + public static native void purgeSharedInstance(); + + @Generated + @Selector("removeSuspendListener:") + public native void removeSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Selector("setAllowIpod:") + public native void setAllowIpod(boolean value); + + @Generated + @Selector("setAudioSessionActive:") + public native void setAudioSessionActive(boolean value); + + @Generated + @Selector("setAudioSessionCategory:") + public native void setAudioSessionCategory(String value); + + @Generated + @Selector("setAudioSessionDelegate:") + public native void setAudioSessionDelegate_unsafe( + @Mapped(ObjCObjectMapper.class) AVAudioSessionDelegate value); + + @Generated + public void setAudioSessionDelegate( + @Mapped(ObjCObjectMapper.class) AVAudioSessionDelegate value) { + Object __old = audioSessionDelegate(); + if (value != null) { + ObjCRuntime.associateObjCObject(this, + value); + } + setAudioSessionDelegate_unsafe(value); + if (__old != null) { + ObjCRuntime.dissociateObjCObject(this, + __old); + } + } + + @Generated + @Selector("setHandleInterruptions:") + public native void setHandleInterruptions(boolean value); + + @Generated + @Selector("setHonorSilentSwitch:") + public native void setHonorSilentSwitch(boolean value); + + @Generated + @Selector("setInterrupted:") + public native void setInterrupted(boolean value); + + @Generated + @Selector("setIpodDucking:") + public native void setIpodDucking(boolean value); + + @Generated + @Selector("setManuallySuspended:") + public native void setManuallySuspended(boolean value); + + @Generated + @Deprecated + @Selector("setPreferredIOBufferDuration:") + public native void setPreferredIOBufferDuration(float value); + + @Generated + @Selector("setUseHardwareIfAvailable:") + public native void setUseHardwareIfAvailable(boolean value); + + @Generated + @Selector("sharedInstance") + public static native OALAudioSession sharedInstance(); + + @Generated + @Selector("suspended") + public native boolean suspended(); + + @Generated + @Selector("useHardwareIfAvailable") + public native boolean useHardwareIfAvailable(); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALAudioTrack.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALAudioTrack.java new file mode 100755 index 000000000..a79c5aa3b --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALAudioTrack.java @@ -0,0 +1,396 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Mapped; +import com.intel.moe.natj.general.ann.MappedReturn; +import com.intel.moe.natj.general.ann.NInt; +import com.intel.moe.natj.general.ann.NUInt; +import com.intel.moe.natj.general.ann.Owned; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.SEL; +import com.intel.moe.natj.objc.ann.IsOptional; +import com.intel.moe.natj.objc.ann.ObjCClassBinding; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; +import ios.NSObject; +import ios.avfoundation.AVAudioPlayer; +import ios.avfoundation.protocol.AVAudioPlayerDelegate; +import ios.foundation.NSError; +import ios.foundation.NSURL; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCClassBinding +public class OALAudioTrack extends NSObject implements AVAudioPlayerDelegate, + OALSuspendManager { + static { + NatJ.register(); + } + + @Generated + protected OALAudioTrack(Pointer peer) { + super(peer); + } + + @Generated + @Selector("addSuspendListener:") + public native void addSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Owned + @Selector("alloc") + public static native OALAudioTrack alloc(); + + @Generated + @IsOptional + @Deprecated + @Selector("audioPlayerBeginInterruption:") + public native void audioPlayerBeginInterruption(AVAudioPlayer player); + + @Generated + @IsOptional + @Selector("audioPlayerDecodeErrorDidOccur:error:") + public native void audioPlayerDecodeErrorDidOccurError( + AVAudioPlayer player, NSError error); + + @Generated + @IsOptional + @Selector("audioPlayerDidFinishPlaying:successfully:") + public native void audioPlayerDidFinishPlayingSuccessfully( + AVAudioPlayer player, boolean flag); + + @Generated + @IsOptional + @Deprecated + @Selector("audioPlayerEndInterruption:") + public native void audioPlayerEndInterruption(AVAudioPlayer player); + + @Generated + @IsOptional + @Deprecated + @Selector("audioPlayerEndInterruption:withFlags:") + public native void audioPlayerEndInterruptionWithFlags( + AVAudioPlayer player, @NUInt long flags); + + @Generated + @IsOptional + @Deprecated + @Selector("audioPlayerEndInterruption:withOptions:") + public native void audioPlayerEndInterruptionWithOptions( + AVAudioPlayer player, @NUInt long flags); + + @Generated + @Selector("autoPreload") + public native boolean autoPreload(); + + @Generated + @Selector("averagePowerForChannel:") + public native float averagePowerForChannel(@NUInt long channelNumber); + + @Generated + @Selector("clear") + public native void clear(); + + @Generated + @Selector("currentTime") + public native double currentTime(); + + @Generated + @Selector("currentlyLoadedUrl") + public native NSURL currentlyLoadedUrl(); + + @Generated + @Selector("delegate") + @MappedReturn(ObjCObjectMapper.class) + public native AVAudioPlayerDelegate delegate(); + + @Generated + @Selector("deviceCurrentTime") + public native double deviceCurrentTime(); + + @Generated + @Selector("duration") + public native double duration(); + + @Generated + @Selector("fadeTo:duration:target:selector:") + public native void fadeToDurationTargetSelector(float gain, float duration, + @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("gain") + public native float gain(); + + @Generated + @Selector("init") + public native OALAudioTrack init(); + + @Generated + @Selector("interrupted") + public native boolean interrupted(); + + @Generated + @Selector("manuallySuspended") + public native boolean manuallySuspended(); + + @Generated + @Selector("meteringEnabled") + public native boolean meteringEnabled(); + + @Generated + @Selector("muted") + public native boolean muted(); + + @Generated + @Selector("numberOfChannels") + @NUInt + public native long numberOfChannels(); + + @Generated + @Selector("numberOfLoops") + @NInt + public native long numberOfLoops(); + + @Generated + @Selector("pan") + public native float pan(); + + @Generated + @Selector("panTo:duration:target:selector:") + public native void panToDurationTargetSelector(float pan, float duration, + @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("paused") + public native boolean paused(); + + @Generated + @Selector("peakPowerForChannel:") + public native float peakPowerForChannel(@NUInt long channelNumber); + + @Generated + @Selector("play") + public native boolean play(); + + @Generated + @Selector("playAfterTrack:") + public native boolean playAfterTrack(OALAudioTrack track); + + @Generated + @Selector("playAfterTrack:timeAdjust:") + public native boolean playAfterTrackTimeAdjust(OALAudioTrack track, + double timeAdjust); + + @Generated + @Selector("playAtTime:") + public native boolean playAtTime(double time); + + @Generated + @Selector("playFile:") + public native boolean playFile(String path); + + @Generated + @Selector("playFile:loops:") + public native boolean playFileLoops(String path, @NInt long loops); + + @Generated + @Selector("playFileAsync:loops:target:selector:") + public native void playFileAsyncLoopsTargetSelector(String path, + @NInt long loops, @Mapped(ObjCObjectMapper.class) Object target, + SEL selector); + + @Generated + @Selector("playFileAsync:target:selector:") + public native void playFileAsyncTargetSelector(String path, + @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("playUrl:") + public native boolean playUrl(NSURL url); + + @Generated + @Selector("playUrl:loops:") + public native boolean playUrlLoops(NSURL url, @NInt long loops); + + @Generated + @Selector("playUrlAsync:loops:target:selector:") + public native void playUrlAsyncLoopsTargetSelector(NSURL url, + @NInt long loops, @Mapped(ObjCObjectMapper.class) Object target, + SEL selector); + + @Generated + @Selector("playUrlAsync:target:selector:") + public native void playUrlAsyncTargetSelector(NSURL url, + @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("player") + public native AVAudioPlayer player(); + + @Generated + @Selector("playing") + public native boolean playing(); + + @Generated + @Selector("preloadFile:") + public native boolean preloadFile(String path); + + @Generated + @Selector("preloadFile:seekTime:") + public native boolean preloadFileSeekTime(String path, double seekTime); + + @Generated + @Selector("preloadFileAsync:seekTime:target:selector:") + public native boolean preloadFileAsyncSeekTimeTargetSelector(String path, + double seekTime, @Mapped(ObjCObjectMapper.class) Object target, + SEL selector); + + @Generated + @Selector("preloadFileAsync:target:selector:") + public native boolean preloadFileAsyncTargetSelector(String path, + @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("preloadUrl:") + public native boolean preloadUrl(NSURL url); + + @Generated + @Selector("preloadUrl:seekTime:") + public native boolean preloadUrlSeekTime(NSURL url, double seekTime); + + @Generated + @Selector("preloadUrlAsync:seekTime:target:selector:") + public native boolean preloadUrlAsyncSeekTimeTargetSelector(NSURL url, + double seekTime, @Mapped(ObjCObjectMapper.class) Object target, + SEL selector); + + @Generated + @Selector("preloadUrlAsync:target:selector:") + public native boolean preloadUrlAsyncTargetSelector(NSURL url, + @Mapped(ObjCObjectMapper.class) Object target, SEL selector); + + @Generated + @Selector("preloaded") + public native boolean preloaded(); + + @Generated + @Selector("removeSuspendListener:") + public native void removeSuspendListener( + @Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Selector("setAutoPreload:") + public native void setAutoPreload(boolean value); + + @Generated + @Selector("setCurrentTime:") + public native void setCurrentTime(double value); + + @Generated + @Selector("setDelegate:") + public native void setDelegate_unsafe( + @Mapped(ObjCObjectMapper.class) AVAudioPlayerDelegate value); + + @Generated + public void setDelegate( + @Mapped(ObjCObjectMapper.class) AVAudioPlayerDelegate value) { + Object __old = delegate(); + if (value != null) { + ObjCRuntime.associateObjCObject(this, + value); + } + setDelegate_unsafe(value); + if (__old != null) { + ObjCRuntime.dissociateObjCObject(this, + __old); + } + } + + @Generated + @Selector("setGain:") + public native void setGain(float value); + + @Generated + @Selector("setInterrupted:") + public native void setInterrupted(boolean value); + + @Generated + @Selector("setManuallySuspended:") + public native void setManuallySuspended(boolean value); + + @Generated + @Selector("setMeteringEnabled:") + public native void setMeteringEnabled(boolean value); + + @Generated + @Selector("setMuted:") + public native void setMuted(boolean value); + + @Generated + @Selector("setNumberOfLoops:") + public native void setNumberOfLoops(@NInt long value); + + @Generated + @Selector("setPan:") + public native void setPan(float value); + + @Generated + @Selector("setPaused:") + public native void setPaused(boolean value); + + @Generated + @Selector("setVolume:") + public native void setVolume(float value); + + @Generated + @Selector("stop") + public native void stop(); + + @Generated + @Selector("stopActions") + public native void stopActions(); + + @Generated + @Selector("stopFade") + public native void stopFade(); + + @Generated + @Selector("stopPan") + public native void stopPan(); + + @Generated + @Selector("suspended") + public native boolean suspended(); + + @Generated + @Selector("track") + public static native OALAudioTrack track(); + + @Generated + @Selector("updateMeters") + public native void updateMeters(); + + @Generated + @Selector("volume") + public native float volume(); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALSimpleAudio.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALSimpleAudio.java new file mode 100755 index 000000000..92dc33e02 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALSimpleAudio.java @@ -0,0 +1,343 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.NatJ; +import com.intel.moe.natj.general.Pointer; +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.MappedReturn; +import com.intel.moe.natj.general.ann.NUInt; +import com.intel.moe.natj.general.ann.Owned; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.ann.ObjCBlock; +import com.intel.moe.natj.objc.ann.ObjCClassBinding; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; +import ios.NSObject; +import ios.foundation.NSArray; +import ios.foundation.NSURL; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCClassBinding +public class OALSimpleAudio extends NSObject { + static { + NatJ.register(); + } + + @Generated + protected OALSimpleAudio(Pointer peer) { + super(peer); + } + + @Generated + @Owned + @Selector("alloc") + public static native OALSimpleAudio alloc(); + + @Generated + @Selector("allowIpod") + public native boolean allowIpod(); + + @Generated + @Selector("backgroundTrack") + public native OALAudioTrack backgroundTrack(); + + @Generated + @Selector("backgroundTrackURL") + public native NSURL backgroundTrackURL(); + + @Generated + @Selector("bgMuted") + public native boolean bgMuted(); + + @Generated + @Selector("bgPaused") + public native boolean bgPaused(); + + @Generated + @Selector("bgPlaying") + public native boolean bgPlaying(); + + @Generated + @Selector("bgVolume") + public native float bgVolume(); + + @Generated + @Selector("channel") + public native ALChannelSource channel(); + + @Generated + @Selector("context") + public native ALContext context(); + + @Generated + @Selector("device") + public native ALDevice device(); + + @Generated + @Selector("effectsMuted") + public native boolean effectsMuted(); + + @Generated + @Selector("effectsPaused") + public native boolean effectsPaused(); + + @Generated + @Selector("effectsVolume") + public native float effectsVolume(); + + @Generated + @Selector("honorSilentSwitch") + public native boolean honorSilentSwitch(); + + @Generated + @Selector("init") + public native OALSimpleAudio init(); + + @Generated + @Selector("initWithReservedSources:monoSources:stereoSources:") + public native OALSimpleAudio initWithReservedSourcesMonoSourcesStereoSources( + int reservedSources, int monoSources, int stereoSources); + + @Generated + @Selector("initWithSources:") + public native OALSimpleAudio initWithSources(int reservedSources); + + @Generated + @Selector("interrupted") + public native boolean interrupted(); + + @Generated + @Selector("manuallySuspended") + public native boolean manuallySuspended(); + + @Generated + @Selector("muted") + public native boolean muted(); + + @Generated + @Selector("paused") + public native boolean paused(); + + @Generated + @Selector("playBg") + public native boolean playBg(); + + @Generated + @Selector("playBg:") + public native boolean playBg(String path); + + @Generated + @Selector("playBg:loop:") + public native boolean playBgLoop(String path, boolean loop); + + @Generated + @Selector("playBg:volume:pan:loop:") + public native boolean playBgVolumePanLoop(String filePath, float volume, + float pan, boolean loop); + + @Generated + @Selector("playBgWithLoop:") + public native boolean playBgWithLoop(boolean loop); + + @Generated + @Selector("playBuffer:volume:pitch:pan:loop:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSource playBufferVolumePitchPanLoop(ALBuffer buffer, + float volume, float pitch, float pan, boolean loop); + + @Generated + @Selector("playEffect:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSource playEffect(String filePath); + + @Generated + @Selector("playEffect:loop:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSource playEffectLoop(String filePath, boolean loop); + + @Generated + @Selector("playEffect:volume:pitch:pan:loop:") + @MappedReturn(ObjCObjectMapper.class) + public native ALSource playEffectVolumePitchPanLoop(String filePath, + float volume, float pitch, float pan, boolean loop); + + @Generated + @Selector("preloadBg:") + public native boolean preloadBg(String path); + + @Generated + @Selector("preloadBg:seekTime:") + public native boolean preloadBgSeekTime(String path, double seekTime); + + @Generated + @Selector("preloadCacheCount") + @NUInt + public native long preloadCacheCount(); + + @Generated + @Selector("preloadCacheEnabled") + public native boolean preloadCacheEnabled(); + + @Generated + @Selector("preloadEffect:") + public native ALBuffer preloadEffect(String filePath); + + @Generated + @Selector("preloadEffect:reduceToMono:") + public native ALBuffer preloadEffectReduceToMono(String filePath, + boolean reduceToMono); + + @Generated + @Selector("preloadEffect:reduceToMono:completionBlock:") + public native boolean preloadEffectReduceToMonoCompletionBlock( + String filePath, + boolean reduceToMono, + @ObjCBlock(name = "call_preloadEffectReduceToMonoCompletionBlock") Block_preloadEffectReduceToMonoCompletionBlock completionBlock); + + @Runtime(ObjCRuntime.class) + @Generated + public interface Block_preloadEffectReduceToMonoCompletionBlock { + @Generated + void call_preloadEffectReduceToMonoCompletionBlock (ALBuffer arg0); + } + + @Generated + @Selector("preloadEffects:reduceToMono:progressBlock:") + public native void preloadEffectsReduceToMonoProgressBlock( + NSArray<?> filePaths, + boolean reduceToMono, + @ObjCBlock(name = "call_preloadEffectsReduceToMonoProgressBlock") Block_preloadEffectsReduceToMonoProgressBlock progressBlock); + + @Runtime(ObjCRuntime.class) + @Generated + public interface Block_preloadEffectsReduceToMonoProgressBlock { + @Generated + void call_preloadEffectsReduceToMonoProgressBlock (@NUInt long arg0, @NUInt long arg1, @NUInt long arg2); + } + + @Generated + @Selector("purgeSharedInstance") + public static native void purgeSharedInstance(); + + @Generated + @Selector("reservedSources") + public native int reservedSources(); + + @Generated + @Selector("resetToDefault") + public native void resetToDefault(); + + @Generated + @Selector("setAllowIpod:") + public native void setAllowIpod(boolean value); + + @Generated + @Selector("setBgMuted:") + public native void setBgMuted(boolean value); + + @Generated + @Selector("setBgPaused:") + public native void setBgPaused(boolean value); + + @Generated + @Selector("setBgVolume:") + public native void setBgVolume(float value); + + @Generated + @Selector("setEffectsMuted:") + public native void setEffectsMuted(boolean value); + + @Generated + @Selector("setEffectsPaused:") + public native void setEffectsPaused(boolean value); + + @Generated + @Selector("setEffectsVolume:") + public native void setEffectsVolume(float value); + + @Generated + @Selector("setHonorSilentSwitch:") + public native void setHonorSilentSwitch(boolean value); + + @Generated + @Selector("setManuallySuspended:") + public native void setManuallySuspended(boolean value); + + @Generated + @Selector("setMuted:") + public native void setMuted(boolean value); + + @Generated + @Selector("setPaused:") + public native void setPaused(boolean value); + + @Generated + @Selector("setPreloadCacheEnabled:") + public native void setPreloadCacheEnabled(boolean value); + + @Generated + @Selector("setReservedSources:") + public native void setReservedSources(int value); + + @Generated + @Selector("setUseHardwareIfAvailable:") + public native void setUseHardwareIfAvailable(boolean value); + + @Generated + @Selector("sharedInstance") + public static native OALSimpleAudio sharedInstance(); + + @Generated + @Selector("sharedInstanceWithReservedSources:monoSources:stereoSources:") + public static native OALSimpleAudio sharedInstanceWithReservedSourcesMonoSourcesStereoSources( + int reservedSources, int monoSources, int stereoSources); + + @Generated + @Selector("sharedInstanceWithSources:") + public static native OALSimpleAudio sharedInstanceWithSources(int sources); + + @Generated + @Selector("stopAllEffects") + public native void stopAllEffects(); + + @Generated + @Selector("stopBg") + public native void stopBg(); + + @Generated + @Selector("stopEverything") + public native void stopEverything(); + + @Generated + @Selector("suspended") + public native boolean suspended(); + + @Generated + @Selector("unloadAllEffects") + public native void unloadAllEffects(); + + @Generated + @Selector("unloadEffect:") + public native boolean unloadEffect(String filePath); + + @Generated + @Selector("useHardwareIfAvailable") + public native boolean useHardwareIfAvailable(); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALSuspendListener.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALSuspendListener.java new file mode 100755 index 000000000..2293c4d27 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALSuspendListener.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.ann.ObjCProtocolName; +import com.intel.moe.natj.objc.ann.Selector; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCProtocolName("OALSuspendListener") +public interface OALSuspendListener { + @Generated + @Selector("interrupted") + boolean interrupted (); + + @Generated + @Selector("manuallySuspended") + boolean manuallySuspended (); + + @Generated + @Selector("setInterrupted:") + void setInterrupted (boolean value); + + @Generated + @Selector("setManuallySuspended:") + void setManuallySuspended (boolean value); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALSuspendManager.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALSuspendManager.java new file mode 100755 index 000000000..907588275 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosmoe/objectal/OALSuspendManager.java @@ -0,0 +1,42 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosmoe.objectal; + +import com.intel.moe.natj.general.ann.Generated; +import com.intel.moe.natj.general.ann.Mapped; +import com.intel.moe.natj.general.ann.Runtime; +import com.intel.moe.natj.objc.ObjCRuntime; +import com.intel.moe.natj.objc.ann.ObjCProtocolName; +import com.intel.moe.natj.objc.ann.Selector; +import com.intel.moe.natj.objc.map.ObjCObjectMapper; + +@Generated +@Runtime(ObjCRuntime.class) +@ObjCProtocolName("OALSuspendManager") +public interface OALSuspendManager extends OALSuspendListener { + @Generated + @Selector("addSuspendListener:") + void addSuspendListener (@Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Selector("removeSuspendListener:") + void removeSuspendListener (@Mapped(ObjCObjectMapper.class) Object listener); + + @Generated + @Selector("suspended") + boolean suspended (); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosrobovm/IOSGLES20.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosrobovm/IOSGLES20.java new file mode 100755 index 000000000..509e0a90b --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosrobovm/IOSGLES20.java @@ -0,0 +1,369 @@ +/******************************************************************************* + * Copyright 2011 See AUTHORS file. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +package com.badlogic.gdx.backends.iosrobovm; + +import com.badlogic.gdx.graphics.GL20; + +import java.nio.Buffer; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; + +public class IOSGLES20 implements GL20 +{ + public IOSGLES20() { + init(); + } + + /** last viewport set, needed because GLKView resets the viewport on each call to render... amazing **/ + public static int x, y, width, height; + + 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 glDeleteBuffer(int buffer); + + public native void glDeleteFramebuffers ( int n, IntBuffer framebuffers ); + + public native void glDeleteFramebuffer(int framebuffer); + + public native void glDeleteProgram ( int program ); + + public native void glDeleteRenderbuffers ( int n, IntBuffer renderbuffers ); + + public native void glDeleteRenderbuffer(int renderbuffer); + + public native void glDeleteShader ( int shader ); + + public native void glDeleteTextures ( int n, IntBuffer textures ); + + public native void glDeleteTexture(int texture); + + 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 int glGenBuffer(); + + public native void glGenerateMipmap ( int target ); + + public native void glGenFramebuffers ( int n, IntBuffer framebuffers ); + + public native int glGenFramebuffer(); + + public native void glGenRenderbuffers ( int n, IntBuffer renderbuffers ); + + public native int glGenRenderbuffer(); + + public native void glGenTextures ( int n, IntBuffer textures ); + + public native int glGenTexture(); + + 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 glUniform1fv(int location, int count, float[] v, int offset); + + public native void glUniform1i ( int location, int x ); + + public native void glUniform1iv ( int location, int count, IntBuffer v ); + + public native void glUniform1iv(int location, int count, int[] v, int offset); + + public native void glUniform2f ( int location, float x, float y ); + + public native void glUniform2fv ( int location, int count, FloatBuffer v ); + + public native void glUniform2fv(int location, int count, float[] v, int offset); + + public native void glUniform2i ( int location, int x, int y ); + + public native void glUniform2iv ( int location, int count, IntBuffer v ); + + public native void glUniform2iv(int location, int count, int[] v, int offset); + + 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 glUniform3fv(int location, int count, float[] v, int offset); + + 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 glUniform3iv(int location, int count, int[] v, int offset); + + 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 glUniform4fv(int location, int count, float[] v, int offset); + + 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 glUniform4iv(int location, int count, int[] v, int offset); + + public native void glUniformMatrix2fv ( int location, int count, boolean transpose, FloatBuffer value ); + + public native void glUniformMatrix2fv(int location, int count, boolean transpose, float[] value, int offset); + + public native void glUniformMatrix3fv ( int location, int count, boolean transpose, FloatBuffer value ); + + public native void glUniformMatrix3fv(int location, int count, boolean transpose, float[] value, int offset); + + public native void glUniformMatrix4fv ( int location, int count, boolean transpose, FloatBuffer value ); + + public native void glUniformMatrix4fv(int location, int count, boolean transpose, float[] value, int offset); + + 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 void glViewport(int x, int y, int width, int height) { + IOSGLES20.x = x; + IOSGLES20.y = y; + IOSGLES20.width = width; + IOSGLES20.height = height; + glViewportJni(x, y, width, height); + } + + public native void glViewportJni ( int x, int y, int width, int height ); +} diff --git a/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosrobovm/IOSGLES30.java b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosrobovm/IOSGLES30.java new file mode 100755 index 000000000..0b7395ae5 --- /dev/null +++ b/backends/gdx-backend-moe/src/com/badlogic/gdx/backends/iosrobovm/IOSGLES30.java @@ -0,0 +1,217 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogic.gdx.backends.iosrobovm;
+
+import com.badlogic.gdx.graphics.GL30;
+
+import java.nio.Buffer;
+import java.nio.FloatBuffer;
+import java.nio.IntBuffer;
+import java.nio.LongBuffer;
+
+public class IOSGLES30 extends IOSGLES20 implements GL30 {
+
+ public IOSGLES30() {
+ init();
+ }
+
+ private static native void init( );
+
+ public native void glReadBuffer(int mode);
+
+ public native void glDrawRangeElements(int mode, int start, int end, int count, int type, Buffer indices);
+
+ public native void glDrawRangeElements(int mode, int start, int end, int count, int type, int offset);
+
+ public native void glTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int format, int type, Buffer pixels);
+
+ public native void glTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int format, int type, int offset);
+
+ public native void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, Buffer pixels);
+
+ public native void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, int offset);
+
+ public native void glCopyTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height);
+
+ public native void glGenQueries(int n, int[] ids, int offset);
+
+ public native void glGenQueries(int n, IntBuffer ids);
+
+ public native void glDeleteQueries(int n, int[] ids, int offset);
+
+ public native void glDeleteQueries(int n, IntBuffer ids);
+
+ public native boolean glIsQuery(int id);
+
+ public native void glBeginQuery(int target, int id);
+
+ public native void glEndQuery(int target);
+
+ public native void glGetQueryiv(int target, int pname, IntBuffer params);
+
+ public native void glGetQueryObjectuiv(int id, int pname, IntBuffer params);
+
+ public native boolean glUnmapBuffer(int target);
+
+ public native Buffer glGetBufferPointerv(int target, int pname);
+
+ public native void glDrawBuffers(int n, IntBuffer bufs);
+
+ public native void glUniformMatrix2x3fv(int location, int count, boolean transpose, FloatBuffer value);
+
+ public native void glUniformMatrix3x2fv(int location, int count, boolean transpose, FloatBuffer value);
+
+ public native void glUniformMatrix2x4fv(int location, int count, boolean transpose, FloatBuffer value);
+
+ public native void glUniformMatrix4x2fv(int location, int count, boolean transpose, FloatBuffer value);
+
+ public native void glUniformMatrix3x4fv(int location, int count, boolean transpose, FloatBuffer value);
+
+ public native void glUniformMatrix4x3fv(int location, int count, boolean transpose, FloatBuffer value);
+
+ public native void glBlitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, int mask, int filter);
+
+ public native void glRenderbufferStorageMultisample(int target, int samples, int internalformat, int width, int height);
+
+ public native void glFramebufferTextureLayer(int target, int attachment, int texture, int level, int layer);
+
+ public native void glFlushMappedBufferRange(int target, int offset, int length);
+
+ public native void glBindVertexArray(int array);
+
+ public native void glDeleteVertexArrays(int n, int[] arrays, int offset);
+
+ public native void glDeleteVertexArrays(int n, IntBuffer arrays);
+
+ public native void glGenVertexArrays(int n, int[] arrays, int offset);
+
+ public native void glGenVertexArrays(int n, IntBuffer arrays);
+
+ public native boolean glIsVertexArray(int array);
+
+ public native void glBeginTransformFeedback(int primitiveMode);
+
+ public native void glEndTransformFeedback();
+
+ public native void glBindBufferRange(int target, int index, int buffer, int offset, int size);
+
+ public native void glBindBufferBase(int target, int index, int buffer);
+
+ public native void glTransformFeedbackVaryings(int program, String[] varyings, int bufferMode);
+
+ public native void glVertexAttribIPointer(int index, int size, int type, int stride, int offset);
+
+ public native void glGetVertexAttribIiv(int index, int pname, IntBuffer params);
+
+ public native void glGetVertexAttribIuiv(int index, int pname, IntBuffer params);
+
+ public native void glVertexAttribI4i(int index, int x, int y, int z, int w);
+
+ public native void glVertexAttribI4ui(int index, int x, int y, int z, int w);
+
+ public native void glGetUniformuiv(int program, int location, IntBuffer params);
+
+ public native int glGetFragDataLocation(int program, String name);
+
+ public native void glUniform1uiv(int location, int count, IntBuffer value);
+
+ public native void glUniform3uiv(int location, int count, IntBuffer value);
+
+ public native void glUniform4uiv(int location, int count, IntBuffer value);
+
+ public native void glClearBufferiv(int buffer, int drawbuffer, IntBuffer value);
+
+ public native void glClearBufferuiv(int buffer, int drawbuffer, IntBuffer value);
+
+ public native void glClearBufferfv(int buffer, int drawbuffer, FloatBuffer value);
+
+ public native void glClearBufferfi(int buffer, int drawbuffer, float depth, int stencil);
+
+ public native String glGetStringi(int name, int index);
+
+ public native void glCopyBufferSubData(int readTarget, int writeTarget, int readOffset, int writeOffset, int size);
+
+ public native void glGetUniformIndices(int program, String[] uniformNames, IntBuffer uniformIndices);
+
+ public native void glGetActiveUniformsiv(int program, int uniformCount, IntBuffer uniformIndices, int pname, IntBuffer params);
+
+ public native int glGetUniformBlockIndex(int program, String uniformBlockName);
+
+ public native void glGetActiveUniformBlockiv(int program, int uniformBlockIndex, int pname, IntBuffer params);
+
+ public native void glGetActiveUniformBlockName(int program, int uniformBlockIndex, Buffer length, Buffer uniformBlockName);
+
+ public native String glGetActiveUniformBlockName(int program, int uniformBlockIndex);
+
+ public native void glUniformBlockBinding(int program, int uniformBlockIndex, int uniformBlockBinding);
+
+ public native void glDrawArraysInstanced(int mode, int first, int count, int instanceCount);
+
+ public native void glDrawElementsInstanced(int mode, int count, int type, int indicesOffset, int instanceCount);
+
+ public native void glGetInteger64v(int pname, LongBuffer params);
+
+ public native void glGetBufferParameteri64v(int target, int pname, LongBuffer params);
+
+ public native void glGenSamplers(int count, int[] samplers, int offset);
+
+ public native void glGenSamplers(int count, IntBuffer samplers);
+
+ public native void glDeleteSamplers(int count, int[] samplers, int offset);
+
+ public native void glDeleteSamplers(int count, IntBuffer samplers);
+
+ public native boolean glIsSampler(int sampler);
+
+ public native void glBindSampler(int unit, int sampler);
+
+ public native void glSamplerParameteri(int sampler, int pname, int param);
+
+ public native void glSamplerParameteriv(int sampler, int pname, IntBuffer param);
+
+ public native void glSamplerParameterf(int sampler, int pname, float param);
+
+ public native void glSamplerParameterfv(int sampler, int pname, FloatBuffer param);
+
+ public native void glGetSamplerParameteriv(int sampler, int pname, IntBuffer params);
+
+ public native void glGetSamplerParameterfv(int sampler, int pname, FloatBuffer params);
+
+ public native void glVertexAttribDivisor(int index, int divisor);
+
+ public native void glBindTransformFeedback(int target, int id);
+
+ public native void glDeleteTransformFeedbacks(int n, int[] ids, int offset);
+
+ public native void glDeleteTransformFeedbacks(int n, IntBuffer ids);
+
+ public native void glGenTransformFeedbacks(int n, int[] ids, int offset);
+
+ public native void glGenTransformFeedbacks(int n, IntBuffer ids);
+
+ public native boolean glIsTransformFeedback(int id);
+
+ public native void glPauseTransformFeedback();
+
+ public native void glResumeTransformFeedback();
+
+ public native void glProgramParameteri(int program, int pname, int value);
+
+ public native void glInvalidateFramebuffer(int target, int numAttachments, IntBuffer attachments);
+
+ public native void glInvalidateSubFramebuffer(int target, int numAttachments, IntBuffer attachments, int x, int y, int width, int height);
+}
diff --git a/build.gradle b/build.gradle index c1631a855..7166a93b6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,9 @@ ext { GROUPID = "com.badlogicgames.gdx" - VERSION = "1.7.2-SNAPSHOT" + VERSION = "1.9.3-SNAPSHOT" + gdxVersion = VERSION robovmVersion = "1.9.0" + moeVersion = "1.0.0" androidVersion = "4.4" gwtVersion = "2.6.0" jglfwVersion = "1.1" @@ -37,6 +39,7 @@ configure(allprojects - project(':tests:gdx-tests-android')) { compileJava.options.encoding = 'UTF-8'; repositories { + mavenLocal() mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } } @@ -118,6 +121,13 @@ project(":backends:gdx-backend-robovm") { } } +project(":backends:gdx-backend-moe") { + dependencies { + compile project(":gdx") + optional fileTree(dir: 'libs', include: ['*.jar']) + } +} + project(":backends:gdx-backends-gwt") { sourceSets.main.java.exclude "**/System.java" @@ -286,6 +296,19 @@ project(":tests:gdx-tests-iosrobovm") { } } +project("tests:gdx-tests-ios-intel") { + dependencies { + compile project(":tests:gdx-tests") + //compile project(":backends:gdx-backend-moe") + compile "com.badlogicgames.gdx:gdx-backend-moe:$gdxVersion" + //natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" + } + + eclipse.project { + natures 'org.robovm.eclipse.RoboVMNature' + } +} + project(":tests:gdx-tests-jglfw") { dependencies { compile project(":tests:gdx-tests") diff --git a/extensions/gdx-bullet/jni/maven/pom.xml b/extensions/gdx-bullet/jni/maven/pom.xml index d8374f4bf..c08c7c95c 100644 --- a/extensions/gdx-bullet/jni/maven/pom.xml +++ b/extensions/gdx-bullet/jni/maven/pom.xml @@ -16,14 +16,6 @@ <base.url>http://libgdx.badlogicgames.com/nightlies/dist/extensions/gdx-bullet/</base.url> </properties> - <dependencies> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>gdx-bullet</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - <build> <sourceDirectory>src</sourceDirectory> diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/BuildScriptHelper.java b/extensions/gdx-setup/src/com/badlogic/gdx/setup/BuildScriptHelper.java index 94126146e..e7407f651 100644 --- a/extensions/gdx-setup/src/com/badlogic/gdx/setup/BuildScriptHelper.java +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/BuildScriptHelper.java @@ -31,11 +31,15 @@ public class BuildScriptHelper { write(wr, "buildscript {"); //repos write(wr, "repositories {"); + write(wr, DependencyBank.mavenLocal); write(wr, DependencyBank.mavenCentral); write(wr, "maven { url \"" + DependencyBank.libGDXSnapshotsUrl + "\" }"); if (projects.contains(ProjectType.HTML)) { write(wr, DependencyBank.jCenter); } + if (projects.contains(ProjectType.IOSMOE)) { + write(wr, "maven { url " + DependencyBank.moeLocalUrl + " }"); + } write(wr, "}"); //dependencies write(wr, "dependencies {"); @@ -48,6 +52,9 @@ public class BuildScriptHelper { if (projects.contains(ProjectType.IOS)) { write(wr, "classpath '" + DependencyBank.roboVMPluginImport + "'"); } + if (projects.contains(ProjectType.IOSMOE)) { + write(wr, "classpath '" + DependencyBank.moePluginImport + "'"); + } write(wr, "}"); write(wr, "}"); space(wr); @@ -69,6 +76,7 @@ public class BuildScriptHelper { write(wr, "}"); space(wr); write(wr, "repositories {"); + write(wr, DependencyBank.mavenLocal); write(wr, DependencyBank.mavenCentral); write(wr, "maven { url \"" + DependencyBank.libGDXSnapshotsUrl + "\" }"); write(wr, "maven { url \"" + DependencyBank.libGDXReleaseUrl + "\" }"); @@ -98,7 +106,7 @@ public class BuildScriptHelper { if (dep.getDependencies(project) == null) continue; for (String moduleDependency : dep.getDependencies(project)) { if (moduleDependency == null) continue; - if (project.equals(ProjectType.ANDROID) && moduleDependency.contains("native")) { + if ((project.equals(ProjectType.ANDROID) || project.equals(ProjectType.IOSMOE)) && moduleDependency.contains("native")) { write(wr, "natives \"" + moduleDependency + "\""); } else { write(wr, "compile \"" + moduleDependency + "\""); @@ -109,7 +117,7 @@ public class BuildScriptHelper { } private static void addConfigurations(ProjectType project, BufferedWriter wr) throws IOException { - if (project.equals(ProjectType.ANDROID)) { + if (project.equals(ProjectType.ANDROID) || project.equals(ProjectType.IOSMOE)) { write(wr, "configurations { natives }"); } } diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/DependencyBank.java b/extensions/gdx-setup/src/com/badlogic/gdx/setup/DependencyBank.java index 768645e9e..7de9d8000 100644 --- a/extensions/gdx-setup/src/com/badlogic/gdx/setup/DependencyBank.java +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/DependencyBank.java @@ -26,25 +26,29 @@ public class DependencyBank { //Temporary snapshot version, we need a more dynamic solution for pointing to the latest nightly static String libgdxNightlyVersion = "1.9.3-SNAPSHOT"; static String roboVMVersion = "1.12.0"; + static String moeVersion = "1.1.0.final-1"; static String buildToolsVersion = "23.0.1"; static String androidAPILevel = "20"; static String gwtVersion = "2.6.0"; //Repositories + static String mavenLocal = "mavenLocal()"; static String mavenCentral = "mavenCentral()"; static String jCenter = "jcenter()"; static String libGDXSnapshotsUrl = "https://oss.sonatype.org/content/repositories/snapshots/"; static String libGDXReleaseUrl = "https://oss.sonatype.org/content/repositories/releases/"; + static String moeLocalUrl = "uri(System.getenv(\"INTEL_MULTI_OS_ENGINE_HOME\") + \"/gradle\")"; //Project plugins static String gwtPluginImport = "de.richsource.gradle.plugins:gwt-gradle-plugin:0.6"; static String androidPluginImport = "com.android.tools.build:gradle:1.5.0"; static String roboVMPluginImport = "org.robovm:robovm-gradle-plugin:" + roboVMVersion; + static String moePluginImport = "com.intel.gradle:moeGradlePlugin:" + moeVersion; //Extension versions static String box2DLightsVersion = "1.4"; static String ashleyVersion = "1.7.0"; - static String aiVersion = "1.8.0"; + static String aiVersion = "1.8.0"; HashMap<ProjectDependency, Dependency> gdxDependencies = new HashMap<ProjectDependency, Dependency>(); @@ -56,6 +60,7 @@ public class DependencyBank { projectDep.getDependencies(ProjectType.DESKTOP), projectDep.getDependencies(ProjectType.ANDROID), projectDep.getDependencies(ProjectType.IOS), + projectDep.getDependencies(ProjectType.IOSMOE), projectDep.getDependencies(ProjectType.HTML)); gdxDependencies.put(projectDep, dependency); } @@ -81,6 +86,7 @@ public class DependencyBank { new String[]{"com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"}, new String[]{"com.badlogicgames.gdx:gdx-backend-android:$gdxVersion", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"}, new String[]{"org.robovm:robovm-rt:$roboVMVersion", "org.robovm:robovm-cocoatouch:$roboVMVersion", "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"}, + new String[]{"com.badlogicgames.gdx:gdx-backend-moe:$gdxVersion", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"}, new String[]{"com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion", "com.badlogicgames.gdx:gdx:$gdxVersion:sources", "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources"}, new String[]{"com.badlogic.gdx.backends.gdx_backends_gwt"}, @@ -91,6 +97,7 @@ public class DependencyBank { new String[]{"com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-desktop"}, new String[]{"com.badlogicgames.gdx:gdx-bullet:$gdxVersion", "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-armeabi", "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-armeabi-v7a", "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-arm64-v8a", "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-x86", "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-x86_64"}, new String[]{"com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-ios"}, + new String[]{"com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-ios"}, null, null, @@ -101,6 +108,7 @@ public class DependencyBank { new String[]{"com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"}, new String[]{"com.badlogicgames.gdx:gdx-freetype:$gdxVersion", "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi", "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a", "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a", "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86", "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"}, new String[]{"com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"}, + new String[]{"com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"}, null, null, @@ -113,6 +121,7 @@ public class DependencyBank { new String[]{}, new String[]{}, new String[]{}, + new String[]{}, "Collection of tools, including 2D/3D particle editors, texture packers, and file processors" ), @@ -121,6 +130,7 @@ public class DependencyBank { new String[]{"com.badlogicgames.gdx:gdx-controllers-desktop:$gdxVersion", "com.badlogicgames.gdx:gdx-controllers-platform:$gdxVersion:natives-desktop"}, new String[]{"com.badlogicgames.gdx:gdx-controllers:$gdxVersion", "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion"}, new String[]{}, // works on iOS but never reports any controllers :) + new String[]{}, // works on iOS but never reports any controllers :) new String[]{"com.badlogicgames.gdx:gdx-controllers:$gdxVersion:sources", "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion", "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion:sources"}, new String[]{"com.badlogic.gdx.controllers.controllers-gwt"}, @@ -131,6 +141,7 @@ public class DependencyBank { new String[]{"com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"}, new String[]{"com.badlogicgames.gdx:gdx-box2d:$gdxVersion", "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi", "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a", "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a", "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86", "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64"}, new String[]{"com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-ios"}, + new String[]{"com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-ios"}, new String[]{"com.badlogicgames.gdx:gdx-box2d:$gdxVersion:sources", "com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion:sources"}, new String[]{"com.badlogic.gdx.physics.box2d.box2d-gwt"}, @@ -141,6 +152,7 @@ public class DependencyBank { new String[]{}, new String[]{"com.badlogicgames.box2dlights:box2dlights:$box2DLightsVersion"}, new String[]{}, + new String[]{}, new String[]{"com.badlogicgames.box2dlights:box2dlights:$box2DLightsVersion:sources"}, new String[]{"Box2DLights"}, @@ -151,6 +163,7 @@ public class DependencyBank { new String[]{}, new String[]{"com.badlogicgames.ashley:ashley:$ashleyVersion"}, new String[]{}, + new String[]{}, new String[]{"com.badlogicgames.ashley:ashley:$ashleyVersion:sources"}, new String[]{"com.badlogic.ashley_gwt"}, @@ -161,6 +174,7 @@ public class DependencyBank { new String[]{}, new String[]{"com.badlogicgames.gdx:gdx-ai:$aiVersion"}, new String[]{}, + new String[]{}, new String[]{"com.badlogicgames.gdx:gdx-ai:$aiVersion:sources"}, new String[]{"com.badlogic.gdx.ai"}, @@ -171,15 +185,17 @@ public class DependencyBank { private String[] desktopDependencies; private String[] androidDependencies; private String[] iosDependencies; + private String[] iosMoeDependencies; private String[] gwtDependencies; private String[] gwtInherits; private String description; - ProjectDependency(String[] coreDeps, String[] desktopDeps, String[] androidDeps, String[] iosDeps, String[] gwtDeps, String[] gwtInhertis, String description) { + ProjectDependency(String[] coreDeps, String[] desktopDeps, String[] androidDeps, String[] iosDeps, String[] iosMoeDeps, String[] gwtDeps, String[] gwtInhertis, String description) { this.coreDependencies = coreDeps; this.desktopDependencies = desktopDeps; this.androidDependencies = androidDeps; this.iosDependencies = iosDeps; + this.iosMoeDependencies = iosMoeDeps; this.gwtDependencies = gwtDeps; this.gwtInherits = gwtInhertis; this.description = description; @@ -195,6 +211,8 @@ public class DependencyBank { return androidDependencies; case IOS: return iosDependencies; + case IOSMOE: + return iosMoeDependencies; case HTML: return gwtDependencies; } @@ -216,6 +234,7 @@ public class DependencyBank { DESKTOP("desktop", new String[]{"java"}), ANDROID("android", new String[]{"android"}), IOS("ios", new String[]{"java", "robovm"}), + IOSMOE("ios-moe", new String[] {"moe"}), HTML("html", new String[]{"gwt", "war"}); private final String name; diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/GdxSetup.java b/extensions/gdx-setup/src/com/badlogic/gdx/setup/GdxSetup.java index cfe5a7a25..a6183f731 100644 --- a/extensions/gdx-setup/src/com/badlogic/gdx/setup/GdxSetup.java +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/GdxSetup.java @@ -321,6 +321,29 @@ public class GdxSetup { project.files.add(new ProjectFile("ios/robovm.xml", true));
}
+ if(builder.modules.contains(ProjectType.IOSMOE)) {
+ project.files.add(new ProjectFile("ios-moe/resources/Default.png", false));
+ project.files.add(new ProjectFile("ios-moe/resources/Default@2x.png", false));
+ project.files.add(new ProjectFile("ios-moe/resources/Default@2x~ipad.png", false));
+ project.files.add(new ProjectFile("ios-moe/resources/Default-568h@2x.png", false));
+ project.files.add(new ProjectFile("ios-moe/resources/Default~ipad.png", false));
+ project.files.add(new ProjectFile("ios-moe/resources/Default-375w-667h@2x.png", false));
+ project.files.add(new ProjectFile("ios-moe/resources/Default-414w-736h@3x.png", false));
+ project.files.add(new ProjectFile("ios-moe/resources/Icon.png", false));
+ project.files.add(new ProjectFile("ios-moe/resources/Icon@2x.png", false));
+ project.files.add(new ProjectFile("ios-moe/resources/Icon-72.png", false));
+ project.files.add(new ProjectFile("ios-moe/resources/Icon-72@2x.png", false));
+ project.files.add(new ProjectFile("ios-moe/src/IOSMoeLauncher", "ios-moe/src/" + packageDir + "/IOSMoeLauncher.java", true));
+ project.files.add(new ProjectFile("ios-moe/xcode/ios-moe/build.xcconfig", false));
+ project.files.add(new ProjectFile("ios-moe/xcode/ios-moe/custom.xcconfig", false));
+ project.files.add(new ProjectFile("ios-moe/xcode/ios-moe-Test/build.xcconfig", false));
+ project.files.add(new ProjectFile("ios-moe/xcode/ios-moe-Test/Info-Test.plist", false));
+ project.files.add(new ProjectFile("ios-moe/xcode/ios-moe/Info.plist", true));
+ project.files.add(new ProjectFile("ios-moe/xcode/ios-moe/main.cpp", false));
+ project.files.add(new ProjectFile("ios-moe/xcode/ios-moe.xcodeproj/project.pbxproj", true));
+ project.files.add(new ProjectFile("ios-moe/build.gradle", true));
+ }
+
Map<String, String> values = new HashMap<String, String>();
values.put("%APP_NAME%", appName);
values.put("%APP_NAME_ESCAPED%", appName.replace("'", "\\'"));
@@ -606,6 +629,7 @@ public class GdxSetup { projects.add(ProjectType.DESKTOP);
projects.add(ProjectType.ANDROID);
projects.add(ProjectType.IOS);
+ projects.add(ProjectType.IOSMOE);
projects.add(ProjectType.HTML);
} else {
if (!excludedModules.contains("desktop"))
@@ -614,6 +638,8 @@ public class GdxSetup { projects.add(ProjectType.ANDROID);
if (!excludedModules.contains("ios"))
projects.add(ProjectType.IOS);
+ if (!excludedModules.contains("iosmoe"))
+ projects.add(ProjectType.IOSMOE);
if (!excludedModules.contains("html"))
projects.add(ProjectType.HTML);
}
diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/GdxSetupUI.java b/extensions/gdx-setup/src/com/badlogic/gdx/setup/GdxSetupUI.java index afc84549c..fa01e93d0 100644 --- a/extensions/gdx-setup/src/com/badlogic/gdx/setup/GdxSetupUI.java +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/GdxSetupUI.java @@ -186,6 +186,13 @@ public class GdxSetupUI extends JFrame { } } + if (modules.contains(ProjectType.IOSMOE)) { + if (System.getenv("INTEL_MULTI_OS_ENGINE_HOME") == null) { + JOptionPane.showMessageDialog(this, "Please install Intel Multi OS engine to use the ios-moe backend."); + return; + } + } + if (!GdxSetup.isEmptyDirectory(destination)) { int value = JOptionPane.showConfirmDialog(this, "The destination is not empty, do you want to overwrite?", "Warning!", JOptionPane.YES_NO_OPTION); if (value != 0) { diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/gradle.properties b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/gradle.properties index fa55fd1e1..f3ac04b3c 100644 --- a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/gradle.properties +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/gradle.properties @@ -1,3 +1,3 @@ -org.gradle.daemon=true +org.gradle.daemon=false org.gradle.jvmargs=-Xms128m -Xmx512m -org.gradle.configureondemand=true
\ No newline at end of file +org.gradle.configureondemand=true diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/build.gradle b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/build.gradle new file mode 100644 index 000000000..e49ce129a --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/build.gradle @@ -0,0 +1,56 @@ +task copyNatives << { + file("xcode/native/ios/").mkdirs(); + def LD_FLAGS = "LIBGDX_NATIVES = " + configurations.natives.files.each { jar-> + def outputDir = null + if (jar.name.endsWith("natives-ios.jar")) outputDir = file("xcode/native/ios") + if (outputDir != null) { + FileCollection fileCollection = zipTree(jar) + for (File libFile : fileCollection) { + if (libFile.getAbsolutePath().endsWith(".a") && !libFile.getAbsolutePath().contains("/tvos/")) { + copy { + from libFile.getAbsolutePath() + into outputDir + } + LD_FLAGS += " -force_load \${SRCROOT}/native/ios/" + libFile.getName() + } + } + } + } + def outFlags = file("xcode/ios-moe/custom.xcconfig"); + outFlags.write LD_FLAGS + + def proguard = file("/Applications/Intel/multi_os_engine/tools/proguard.cfg") + if (proguard.exists()) { + if (!proguard.text.contains("-keep class com.badlogic.**")) { + proguard << "\n-keep class com.badlogic.** { *; }\n" + proguard << "-keep enum com.badlogic.** { *; }\n" + } + } +} + +task createBuildDir { + def file = new File('build/xcode/ios-moe.xcodeproj') + if (!file.exists()) { + file.mkdirs(); + } +} + +sourceSets.main.java.srcDirs = [ "src/" ] + + +moe { + mainClassName 'IOSMoeLauncher' + xcode { + mainTarget 'ios-moe' + packageName '%PACKAGE%' + deploymentTarget = '9.0' + xcodeProjectDirPath 'xcode' + generateProject false + } +} + +moeMainReleaseIphoneosXcodeBuild.dependsOn copyNatives +moeMainDebugIphoneosXcodeBuild.dependsOn copyNatives +moeMainReleaseIphonesimulatorXcodeBuild.dependsOn copyNatives +moeMainDebugIphonesimulatorXcodeBuild.dependsOn copyNatives
\ No newline at end of file diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default-375w-667h@2x.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default-375w-667h@2x.png Binary files differnew file mode 100644 index 000000000..f213ce60d --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default-375w-667h@2x.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default-414w-736h@3x.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default-414w-736h@3x.png Binary files differnew file mode 100644 index 000000000..685ba51fc --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default-414w-736h@3x.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default-568h@2x.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default-568h@2x.png Binary files differnew file mode 100644 index 000000000..101752fe7 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default-568h@2x.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default.png Binary files differnew file mode 100644 index 000000000..f1a5582a0 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default@2x.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default@2x.png Binary files differnew file mode 100644 index 000000000..ca32f62fc --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default@2x.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default@2x~ipad.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default@2x~ipad.png Binary files differnew file mode 100644 index 000000000..bb77ef073 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default@2x~ipad.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default~ipad.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default~ipad.png Binary files differnew file mode 100644 index 000000000..855e4f2ad --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Default~ipad.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon-72.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon-72.png Binary files differnew file mode 100644 index 000000000..8cc575912 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon-72.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon-72@2x.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon-72@2x.png Binary files differnew file mode 100644 index 000000000..ec5e3803f --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon-72@2x.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon.png Binary files differnew file mode 100644 index 000000000..7f4bf3635 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon@2x.png b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon@2x.png Binary files differnew file mode 100644 index 000000000..eddc17c57 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/resources/Icon@2x.png diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/src/IOSMoeLauncher b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/src/IOSMoeLauncher new file mode 100644 index 000000000..a48e574eb --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/src/IOSMoeLauncher @@ -0,0 +1,29 @@ +package %PACKAGE%; + +import com.badlogic.gdx.backends.iosmoe.IOSApplication; +import com.badlogic.gdx.backends.iosmoe.IOSApplicationConfiguration; +import com.intel.moe.natj.general.Pointer; +import %PACKAGE%.%MAIN_CLASS%; + +import ios.foundation.NSAutoreleasePool; +import ios.uikit.c.UIKit; + +public class IOSMoeLauncher extends IOSApplication.Delegate { + + protected IOSMoeLauncher(Pointer peer) { + super(peer); + } + + @Override + protected IOSApplication createApplication() { + IOSApplicationConfiguration config = new IOSApplicationConfiguration(); + config.useAccelerometer = false; + return new IOSApplication(new %MAIN_CLASS%(), config); + } + + public static void main(String[] argv) { + NSAutoreleasePool pool = NSAutoreleasePool.alloc(); + UIKit.UIApplicationMain(0, null, null, IOSMoeLauncher.class.getName()); + pool.dealloc(); + } +}
\ No newline at end of file diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe-Test/Info-Test.plist b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe-Test/Info-Test.plist new file mode 100644 index 000000000..5eab11c75 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe-Test/Info-Test.plist @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>$(EXECUTABLE_NAME)</string> + <key>CFBundleIdentifier</key> + <string>ios-moe</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>$(PRODUCT_NAME)</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string></string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string></string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>UIRequiresFullScreen</key> + <true/> + <key>Intel.MOE.Main.Class</key> + <string>com.intel.moe.mdt.junit.MoeRemoteTestRunner</string> + <key>UIApplicationExitsOnSuspend</key> + <false/> + <key>UIRequiredDeviceCapabilities</key> + <array> + <string>armv7</string> + </array> +</dict> +</plist> diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe-Test/build.xcconfig b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe-Test/build.xcconfig new file mode 100644 index 000000000..b80ae8282 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe-Test/build.xcconfig @@ -0,0 +1,30 @@ +// Create sections from the art and oat files. +MOE_SECT_OAT = -sectcreate __OATDATA __oatdata "${SRCROOT}/../build/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat" +MOE_SECT_ART = -sectcreate __ARTDATA __artdata "${SRCROOT}/../build/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art" + +// Set the maximum and initial virtual memory protection for the segments. + +MOE_SEGPROT[sdk=iphoneos*] = -segprot __OATDATA rx rx -segprot __ARTDATA rw rw +MOE_SEGPROT[sdk=iphonesimulator*] = -segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw +MOE_SEGPROT[sdk=appletvos*] = -segprot __OATDATA rx rx -segprot __ARTDATA rw rw +MOE_SEGPROT[sdk=appletvsimulator*] = -segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw + +// Set the __PAGEZERO segment size. +MOE_PAGEZERO[sdk=iphoneos*] = +MOE_PAGEZERO[sdk=iphonesimulator*] = -pagezero_size 4096 +MOE_PAGEZERO[sdk=appletvos*] = +MOE_PAGEZERO[sdk=appletvsimulator*] = -pagezero_size 4096 + +// Set frameworks paths. +MOE_FRAMEWORK_PATH = ${INTEL_MULTI_OS_ENGINE_HOME}/sdk/${PLATFORM_NAME} + +MOE_CUSTOM_STATIC_FRAMEWORK_PATH = ../build/libs/static/${PLATFORM_NAME} +MOE_CUSTOM_DYNAMIC_FRAMEWORK_PATH = ../build/libs/dynamic/${PLATFORM_NAME} + +// Collect all MOE linker flags. +MOE_CUSTOM_OTHER_LDFLAGS = -framework Foundation -framework UIKit -L../build/libs/static -L../build/libs/static/${PLATFORM_NAME} -F../build/libs/static -F../build/libs/static/${PLATFORM_NAME} -F../build/libs/dynamic -F../build/libs/dynamic/${PLATFORM_NAME} + +MOE_OTHER_LDFLAGS = ${MOE_SECT_OAT} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lstdc++ + +// Disable BitCode. +ENABLE_BITCODE = NO diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe.xcodeproj/project.pbxproj b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe.xcodeproj/project.pbxproj new file mode 100644 index 000000000..2edba54f7 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe.xcodeproj/project.pbxproj @@ -0,0 +1,550 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 03ACC9CF1CDFA73500656F5D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03ACC9CE1CDFA73500656F5D /* UIKit.framework */; }; + 03ACC9D61CDFA75800656F5D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03ACC9D01CDFA75700656F5D /* AudioToolbox.framework */; }; + 03ACC9D71CDFA75800656F5D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03ACC9D11CDFA75800656F5D /* AVFoundation.framework */; }; + 03ACC9D81CDFA75800656F5D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03ACC9D21CDFA75800656F5D /* CoreGraphics.framework */; }; + 03ACC9D91CDFA75800656F5D /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03ACC9D31CDFA75800656F5D /* CoreMotion.framework */; }; + 03ACC9DA1CDFA75800656F5D /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03ACC9D41CDFA75800656F5D /* OpenAL.framework */; }; + 03ACC9DB1CDFA75800656F5D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03ACC9D51CDFA75800656F5D /* OpenGLES.framework */; }; + 03ACC9DD1CDFA76400656F5D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03ACC9DC1CDFA76400656F5D /* QuartzCore.framework */; }; + 03E2841C1CDFA83B005BA4F0 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 03E2841B1CDFA83B005BA4F0 /* assets */; }; + 03E2842A1CDFAB6C005BA4F0 /* Default-375w-667h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E2841F1CDFAB6C005BA4F0 /* Default-375w-667h@2x.png */; }; + 03E2842B1CDFAB6C005BA4F0 /* Default-414w-736h@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E284201CDFAB6C005BA4F0 /* Default-414w-736h@3x.png */; }; + 03E2842C1CDFAB6C005BA4F0 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E284211CDFAB6C005BA4F0 /* Default-568h@2x.png */; }; + 03E2842D1CDFAB6C005BA4F0 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E284221CDFAB6C005BA4F0 /* Default.png */; }; + 03E2842E1CDFAB6C005BA4F0 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E284231CDFAB6C005BA4F0 /* Default@2x.png */; }; + 03E2842F1CDFAB6C005BA4F0 /* Default@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E284241CDFAB6C005BA4F0 /* Default@2x~ipad.png */; }; + 03E284301CDFAB6C005BA4F0 /* Default~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E284251CDFAB6C005BA4F0 /* Default~ipad.png */; }; + 03E284311CDFAB6C005BA4F0 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E284261CDFAB6C005BA4F0 /* Icon-72.png */; }; + 03E284321CDFAB6C005BA4F0 /* Icon-72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E284271CDFAB6C005BA4F0 /* Icon-72@2x.png */; }; + 03E284331CDFAB6C005BA4F0 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E284281CDFAB6C005BA4F0 /* Icon.png */; }; + 03E284341CDFAB6C005BA4F0 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 03E284291CDFAB6C005BA4F0 /* Icon@2x.png */; }; + 0C1BAA8C7E83493FC22B03BF /* MOE.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B69A4873AD453213FB9FC82C /* MOE.framework */; }; + 3CE6F44CC68F58F172F95F17 /* MOE.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B69A4873AD453213FB9FC82C /* MOE.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 56E36A8BE759DE64A317E3BB /* preregister.txt in Resources */ = {isa = PBXBuildFile; fileRef = F06A5645587B524FEAAB4FF4 /* preregister.txt */; }; + 58CC9A2221B6D58243831227 /* MOE.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B69A4873AD453213FB9FC82C /* MOE.framework */; }; + 7BDED603662F8D6E54531A9A /* application.jar in Resources */ = {isa = PBXBuildFile; fileRef = EA29F3AB9D4D3E916902DF5B /* application.jar */; }; + 90295D2AF919CC851D72E450 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3FF7C331588944C9129B593B /* main.cpp */; }; + 95309959414FD1D25655CF4F /* preregister.txt in Resources */ = {isa = PBXBuildFile; fileRef = 6D75C11E2EB7C8366CBE7DD4 /* preregister.txt */; }; + 960FC30B876E2B7F65EBD965 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3FF7C331588944C9129B593B /* main.cpp */; }; + C1440F3EB845787ADEB6104E /* application.jar in Resources */ = {isa = PBXBuildFile; fileRef = 536B49D6B8966BB83CB06F44 /* application.jar */; }; + D54D78ADDFD09C6CB7AFE5CF /* MOE.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B69A4873AD453213FB9FC82C /* MOE.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + F7E807EAC4115DB507780A52 /* classlist.txt in Resources */ = {isa = PBXBuildFile; fileRef = 79117275A2411FC95F9197E6 /* classlist.txt */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 2DE5B6108342B5C22A1BA87A /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + D54D78ADDFD09C6CB7AFE5CF /* MOE.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9F369CA2C2AA875B2749F0 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 3CE6F44CC68F58F172F95F17 /* MOE.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 00DD63AEFEB3A727B7EE0C4C /* Info-Test.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-Test.plist"; path = "ios-moe-Test/Info-Test.plist"; sourceTree = "<group>"; }; + 03ACC9CE1CDFA73500656F5D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 03ACC9D01CDFA75700656F5D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 03ACC9D11CDFA75800656F5D /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 03ACC9D21CDFA75800656F5D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 03ACC9D31CDFA75800656F5D /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + 03ACC9D41CDFA75800656F5D /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + 03ACC9D51CDFA75800656F5D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 03ACC9DC1CDFA76400656F5D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 03E2841B1CDFA83B005BA4F0 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../../../%ASSET_PATH%; sourceTree = "<group>"; }; + 03E2841F1CDFAB6C005BA4F0 /* Default-375w-667h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-375w-667h@2x.png"; path = "../../resources/Default-375w-667h@2x.png"; sourceTree = "<group>"; }; + 03E284201CDFAB6C005BA4F0 /* Default-414w-736h@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-414w-736h@3x.png"; path = "../../resources/Default-414w-736h@3x.png"; sourceTree = "<group>"; }; + 03E284211CDFAB6C005BA4F0 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "../../resources/Default-568h@2x.png"; sourceTree = "<group>"; }; + 03E284221CDFAB6C005BA4F0 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = ../../resources/Default.png; sourceTree = "<group>"; }; + 03E284231CDFAB6C005BA4F0 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default@2x.png"; path = "../../resources/Default@2x.png"; sourceTree = "<group>"; }; + 03E284241CDFAB6C005BA4F0 /* Default@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default@2x~ipad.png"; path = "../../resources/Default@2x~ipad.png"; sourceTree = "<group>"; }; + 03E284251CDFAB6C005BA4F0 /* Default~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default~ipad.png"; path = "../../resources/Default~ipad.png"; sourceTree = "<group>"; }; + 03E284261CDFAB6C005BA4F0 /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72.png"; path = "../../resources/Icon-72.png"; sourceTree = "<group>"; }; + 03E284271CDFAB6C005BA4F0 /* Icon-72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72@2x.png"; path = "../../resources/Icon-72@2x.png"; sourceTree = "<group>"; }; + 03E284281CDFAB6C005BA4F0 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = ../../resources/Icon.png; sourceTree = "<group>"; }; + 03E284291CDFAB6C005BA4F0 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon@2x.png"; path = "../../resources/Icon@2x.png"; sourceTree = "<group>"; }; + 1ED204BD74E9D5EA07497539 /* build.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = build.xcconfig; sourceTree = "<group>"; }; + 24EA85BD4FD711B4AB05E16A /* build.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = build.xcconfig; sourceTree = "<group>"; }; + 36C285E0AB4EC84EF958EE2A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../Info.plist; sourceTree = "<group>"; }; + 3FF7C331588944C9129B593B /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; }; + 536B49D6B8966BB83CB06F44 /* application.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = application.jar; path = ../build/moe/test/application.jar; sourceTree = SOURCE_ROOT; }; + 53ADB2FAAB1A5F2165A74CF8 /* ios-moe-Test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ios-moe-Test.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6D75C11E2EB7C8366CBE7DD4 /* preregister.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = preregister.txt; path = ../build/moe/test/preregister.txt; sourceTree = SOURCE_ROOT; }; + 79117275A2411FC95F9197E6 /* classlist.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = classlist.txt; path = ../build/moe/test/classlist.txt; sourceTree = SOURCE_ROOT; }; + 9103A8B09D850A82D3B79162 /* ios-moe.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ios-moe.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + B69A4873AD453213FB9FC82C /* MOE.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MOE.framework; sourceTree = MOE_FRAMEWORK_PATH; }; + EA29F3AB9D4D3E916902DF5B /* application.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = application.jar; path = ../build/moe/main/application.jar; sourceTree = SOURCE_ROOT; }; + F06A5645587B524FEAAB4FF4 /* preregister.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = preregister.txt; path = ../build/moe/main/preregister.txt; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5F361FCF5051FEEBA1525BEF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 03ACC9DD1CDFA76400656F5D /* QuartzCore.framework in Frameworks */, + 03ACC9D61CDFA75800656F5D /* AudioToolbox.framework in Frameworks */, + 03ACC9D71CDFA75800656F5D /* AVFoundation.framework in Frameworks */, + 03ACC9D81CDFA75800656F5D /* CoreGraphics.framework in Frameworks */, + 03ACC9D91CDFA75800656F5D /* CoreMotion.framework in Frameworks */, + 03ACC9DA1CDFA75800656F5D /* OpenAL.framework in Frameworks */, + 03ACC9DB1CDFA75800656F5D /* OpenGLES.framework in Frameworks */, + 03ACC9CF1CDFA73500656F5D /* UIKit.framework in Frameworks */, + 58CC9A2221B6D58243831227 /* MOE.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E7E24EB27AB7F85FFBF64DFC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0C1BAA8C7E83493FC22B03BF /* MOE.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 11DFED721E7C0183D04B5B52 /* Products */ = { + isa = PBXGroup; + children = ( + 9103A8B09D850A82D3B79162 /* ios-moe.app */, + 53ADB2FAAB1A5F2165A74CF8 /* ios-moe-Test.app */, + ); + path = Products; + sourceTree = "<group>"; + }; + 446457971163AC6B44192DC7 /* ios-moe */ = { + isa = PBXGroup; + children = ( + 475E31962D6DD39FE2334036 /* Supporting Files */, + ); + path = "ios-moe"; + sourceTree = "<group>"; + }; + 475E31962D6DD39FE2334036 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 03E2841F1CDFAB6C005BA4F0 /* Default-375w-667h@2x.png */, + 03E284201CDFAB6C005BA4F0 /* Default-414w-736h@3x.png */, + 03E284211CDFAB6C005BA4F0 /* Default-568h@2x.png */, + 03E284221CDFAB6C005BA4F0 /* Default.png */, + 03E284231CDFAB6C005BA4F0 /* Default@2x.png */, + 03E284241CDFAB6C005BA4F0 /* Default@2x~ipad.png */, + 03E284251CDFAB6C005BA4F0 /* Default~ipad.png */, + 03E284261CDFAB6C005BA4F0 /* Icon-72.png */, + 03E284271CDFAB6C005BA4F0 /* Icon-72@2x.png */, + 03E284281CDFAB6C005BA4F0 /* Icon.png */, + 03E284291CDFAB6C005BA4F0 /* Icon@2x.png */, + 03E2841B1CDFA83B005BA4F0 /* assets */, + 3FF7C331588944C9129B593B /* main.cpp */, + 1ED204BD74E9D5EA07497539 /* build.xcconfig */, + 36C285E0AB4EC84EF958EE2A /* Info.plist */, + F06A5645587B524FEAAB4FF4 /* preregister.txt */, + EA29F3AB9D4D3E916902DF5B /* application.jar */, + ); + name = "Supporting Files"; + sourceTree = "<group>"; + }; + 4BAC591E4FA8CB2EB817C961 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 24EA85BD4FD711B4AB05E16A /* build.xcconfig */, + 00DD63AEFEB3A727B7EE0C4C /* Info-Test.plist */, + 6D75C11E2EB7C8366CBE7DD4 /* preregister.txt */, + 536B49D6B8966BB83CB06F44 /* application.jar */, + 79117275A2411FC95F9197E6 /* classlist.txt */, + ); + name = "Supporting Files"; + sourceTree = "<group>"; + }; + 8B096E14E5628AB34171BB72 = { + isa = PBXGroup; + children = ( + 446457971163AC6B44192DC7 /* ios-moe */, + A7284AF2E3E68F693F900A0A /* ios-moe-Test */, + D23FFB4E57C7ECB40006115B /* Frameworks */, + 11DFED721E7C0183D04B5B52 /* Products */, + ); + sourceTree = "<group>"; + }; + A7284AF2E3E68F693F900A0A /* ios-moe-Test */ = { + isa = PBXGroup; + children = ( + 4BAC591E4FA8CB2EB817C961 /* Supporting Files */, + ); + path = "ios-moe-Test"; + sourceTree = "<group>"; + }; + D23FFB4E57C7ECB40006115B /* Frameworks */ = { + isa = PBXGroup; + children = ( + 03ACC9DC1CDFA76400656F5D /* QuartzCore.framework */, + 03ACC9D01CDFA75700656F5D /* AudioToolbox.framework */, + 03ACC9D11CDFA75800656F5D /* AVFoundation.framework */, + 03ACC9D21CDFA75800656F5D /* CoreGraphics.framework */, + 03ACC9D31CDFA75800656F5D /* CoreMotion.framework */, + 03ACC9D41CDFA75800656F5D /* OpenAL.framework */, + 03ACC9D51CDFA75800656F5D /* OpenGLES.framework */, + 03ACC9CE1CDFA73500656F5D /* UIKit.framework */, + B69A4873AD453213FB9FC82C /* MOE.framework */, + ); + path = Frameworks; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0E9154217F235BB5B2BFC4BE /* ios-moe */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9F8504C071F5D00F3451B1D3 /* Build configuration list for PBXNativeTarget "ios-moe" */; + buildPhases = ( + 500AD4BF3AAD5E5D6382F974 /* Compile Sources (MOE) */, + 5F361FCF5051FEEBA1525BEF /* Frameworks */, + 10C312B5F96D82EA21671714 /* Resources */, + 245921367BF4CB27ECA67B6F /* Sources */, + 2DE5B6108342B5C22A1BA87A /* Embed Frameworks */, + ); + buildRules = ( + ); + name = "ios-moe"; + productName = "ios-moe"; + productReference = 9103A8B09D850A82D3B79162 /* ios-moe.app */; + productType = "com.apple.product-type.application"; + }; + 95CBC8E4024D3F9F3C555DAB /* ios-moe-Test */ = { + isa = PBXNativeTarget; + buildConfigurationList = F36674DD4A611CA808853DDA /* Build configuration list for PBXNativeTarget "ios-moe-Test" */; + buildPhases = ( + 427461353A4BBC96FCF17C82 /* Compile Sources (MOE) */, + E7E24EB27AB7F85FFBF64DFC /* Frameworks */, + 45E014C3162575659AD0D6A1 /* Resources */, + 6DE67773C5E46D1D0892EF3A /* Sources */, + 6A9F369CA2C2AA875B2749F0 /* Embed Frameworks */, + ); + buildRules = ( + ); + name = "ios-moe-Test"; + productName = "ios-moe-Test"; + productReference = 53ADB2FAAB1A5F2165A74CF8 /* ios-moe-Test.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D0660C5D19255BDDA0452A92 /* Project object */ = { + isa = PBXProject; + attributes = { + ORGANIZATIONNAME = ""; + }; + buildConfigurationList = C55142AA649A48403E0908DF /* Build configuration list for PBXProject "ios-moe" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 8B096E14E5628AB34171BB72; + productRefGroup = 11DFED721E7C0183D04B5B52 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 0E9154217F235BB5B2BFC4BE /* ios-moe */, + 95CBC8E4024D3F9F3C555DAB /* ios-moe-Test */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 10C312B5F96D82EA21671714 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 03E2842F1CDFAB6C005BA4F0 /* Default@2x~ipad.png in Resources */, + 03E2842E1CDFAB6C005BA4F0 /* Default@2x.png in Resources */, + 03E284321CDFAB6C005BA4F0 /* Icon-72@2x.png in Resources */, + 03E2842B1CDFAB6C005BA4F0 /* Default-414w-736h@3x.png in Resources */, + 03E284311CDFAB6C005BA4F0 /* Icon-72.png in Resources */, + 03E2841C1CDFA83B005BA4F0 /* assets in Resources */, + 03E2842A1CDFAB6C005BA4F0 /* Default-375w-667h@2x.png in Resources */, + 03E284331CDFAB6C005BA4F0 /* Icon.png in Resources */, + 56E36A8BE759DE64A317E3BB /* preregister.txt in Resources */, + 03E284341CDFAB6C005BA4F0 /* Icon@2x.png in Resources */, + 03E284301CDFAB6C005BA4F0 /* Default~ipad.png in Resources */, + 03E2842D1CDFAB6C005BA4F0 /* Default.png in Resources */, + 7BDED603662F8D6E54531A9A /* application.jar in Resources */, + 03E2842C1CDFAB6C005BA4F0 /* Default-568h@2x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 45E014C3162575659AD0D6A1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95309959414FD1D25655CF4F /* preregister.txt in Resources */, + C1440F3EB845787ADEB6104E /* application.jar in Resources */, + F7E807EAC4115DB507780A52 /* classlist.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 427461353A4BBC96FCF17C82 /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "cd \"${SRCROOT}/..\"\n\nexport JAVA_HOME=$(/usr/libexec/java_home -v 1.8)\njava -version\n\n########################\n# Find Gradle\n########################\nfunction findGradle {\n\tCD=\"$PWD\"\n\twhile [ \"$CD\" != \"\" ]; do\n\t\techo \"Looking for gradlew in $CD\"\n\t\tif [ -x \"$CD/gradlew\" ]; then\n\t\t\tGRADLE_EXEC=$CD/gradlew\n\t\t\treturn 0\n\t\tfi\n\t\tCD=\"${CD%/*}\"\n\tdone\n\n\tDEFAULT_PATH=$(echo $PATH)\n\tsource ~/.bash_profile\n\texport PATH=$PATH:DEFAULT_PATH\n\n\techo \"Checking with 'which'\"\n\tGRADLE_EXEC=$(which 'gradle')\n\n\tif [ \"$GRADLE_EXEC\" = \"\" ]; then\n\t\techo \"Falling back to '/usr/local/bin/gradle'\"\n\t\tGRADLE_EXEC=/usr/local/bin/gradle\n\tfi\n}\n########################\n# Execute Gradle build\n########################\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n\n export MOE_BUILD_SOURCE_SET=test\n \"$GRADLE_EXEC\" --daemon moeXcodeInternal\nfi\n"; + }; + 500AD4BF3AAD5E5D6382F974 /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "cd \"${SRCROOT}/..\"\n\nexport JAVA_HOME=$(/usr/libexec/java_home -v 1.8)\njava -version\n\n########################\n# Find Gradle\n########################\nfunction findGradle {\n\tCD=\"$PWD\"\n\twhile [ \"$CD\" != \"\" ]; do\n\t\techo \"Looking for gradlew in $CD\"\n\t\tif [ -x \"$CD/gradlew\" ]; then\n\t\t\tGRADLE_EXEC=$CD/gradlew\n\t\t\treturn 0\n\t\tfi\n\t\tCD=\"${CD%/*}\"\n\tdone\n\n\tDEFAULT_PATH=$(echo $PATH)\n\tsource ~/.bash_profile\n\texport PATH=$PATH:DEFAULT_PATH\n\n\techo \"Checking with 'which'\"\n\tGRADLE_EXEC=$(which 'gradle')\n\n\tif [ \"$GRADLE_EXEC\" = \"\" ]; then\n\t\techo \"Falling back to '/usr/local/bin/gradle'\"\n\t\tGRADLE_EXEC=/usr/local/bin/gradle\n\tfi\n}\n########################\n# Execute Gradle build\n########################\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n\n \"$GRADLE_EXEC\" --daemon moeXcodeInternal\nfi\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 245921367BF4CB27ECA67B6F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 90295D2AF919CC851D72E450 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6DE67773C5E46D1D0892EF3A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 960FC30B876E2B7F65EBD965 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 2267C903FAF96511A9A886F3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SYMROOT = ../build/moe/xcodebuild/sym; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 4E5BEAA7CA2250C7D9E12D78 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 24EA85BD4FD711B4AB05E16A /* build.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = "Info-Test.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = "${MOE_OTHER_LDFLAGS}"; + PRODUCT_NAME = "ios-moe-Test"; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; + 541E8AA924992CC70502ACAD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1ED204BD74E9D5EA07497539 /* build.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = "ios-moe/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = "${MOE_OTHER_LDFLAGS}"; + PRODUCT_NAME = "ios-moe"; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + 7E761E6D43DBA5AA0D92A3B7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 24EA85BD4FD711B4AB05E16A /* build.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = "Info-Test.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = "${MOE_OTHER_LDFLAGS}"; + PRODUCT_NAME = "ios-moe-Test"; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + 8637936F717132B8B36A8A3D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1ED204BD74E9D5EA07497539 /* build.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = "ios-moe/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = "${MOE_OTHER_LDFLAGS}"; + PRODUCT_NAME = "ios-moe"; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; + C7D9B5B039CBC05121BCD7AD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + SDKROOT = iphoneos; + SYMROOT = ../build/moe/xcodebuild/sym; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9F8504C071F5D00F3451B1D3 /* Build configuration list for PBXNativeTarget "ios-moe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 541E8AA924992CC70502ACAD /* Debug */, + 8637936F717132B8B36A8A3D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C55142AA649A48403E0908DF /* Build configuration list for PBXProject "ios-moe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C7D9B5B039CBC05121BCD7AD /* Debug */, + 2267C903FAF96511A9A886F3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F36674DD4A611CA808853DDA /* Build configuration list for PBXNativeTarget "ios-moe-Test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E761E6D43DBA5AA0D92A3B7 /* Debug */, + 4E5BEAA7CA2250C7D9E12D78 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D0660C5D19255BDDA0452A92 /* Project object */; +} diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/Info.plist b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/Info.plist new file mode 100644 index 000000000..599f91370 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/Info.plist @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>$(EXECUTABLE_NAME)</string> + <key>CFBundleIdentifier</key> + <string>%PACKAGE%</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>%APP_NAME%</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string></string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string></string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>UIRequiresFullScreen</key> + <true/> + <key>Intel.MOE.Main.Class</key> + <string>%PACKAGE%.IOSMoeLauncher</string> + <key>UIApplicationExitsOnSuspend</key> + <false/> + <key>UIRequiredDeviceCapabilities</key> + <array> + <string>armv7</string> + </array> + <key>UISupportedInterfaceOrientations</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationPortraitUpsideDown</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>UISupportedInterfaceOrientations~ipad</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationPortraitUpsideDown</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> +</dict> +</plist> diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/build.xcconfig b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/build.xcconfig new file mode 100644 index 000000000..d5f569dc5 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/build.xcconfig @@ -0,0 +1,32 @@ +#include "custom.xcconfig" + +// Create sections from the art and oat files. +MOE_SECT_OAT = -sectcreate __OATDATA __oatdata "${SRCROOT}/../build/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat" +MOE_SECT_ART = -sectcreate __ARTDATA __artdata "${SRCROOT}/../build/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art" + +// Set the maximum and initial virtual memory protection for the segments. + +MOE_SEGPROT[sdk=iphoneos*] = -segprot __OATDATA rx rx -segprot __ARTDATA rw rw +MOE_SEGPROT[sdk=iphonesimulator*] = -segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw +MOE_SEGPROT[sdk=appletvos*] = -segprot __OATDATA rx rx -segprot __ARTDATA rw rw +MOE_SEGPROT[sdk=appletvsimulator*] = -segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw + +// Set the __PAGEZERO segment size. +MOE_PAGEZERO[sdk=iphoneos*] = +MOE_PAGEZERO[sdk=iphonesimulator*] = -pagezero_size 4096 +MOE_PAGEZERO[sdk=appletvos*] = +MOE_PAGEZERO[sdk=appletvsimulator*] = -pagezero_size 4096 + +// Set frameworks paths. +MOE_FRAMEWORK_PATH = ${INTEL_MULTI_OS_ENGINE_HOME}/sdk/${PLATFORM_NAME} + +MOE_CUSTOM_STATIC_FRAMEWORK_PATH = ../build/libs/static/${PLATFORM_NAME} +MOE_CUSTOM_DYNAMIC_FRAMEWORK_PATH = ../build/libs/dynamic/${PLATFORM_NAME} + +// Collect all MOE linker flags. +MOE_CUSTOM_OTHER_LDFLAGS = ${LIBGDX_NATIVES} -framework Foundation -framework UIKit -L../build/libs/static -L../build/libs/static/${PLATFORM_NAME} -F../build/libs/static -F../build/libs/static/${PLATFORM_NAME} -F../build/libs/dynamic -F../build/libs/dynamic/${PLATFORM_NAME} + +MOE_OTHER_LDFLAGS = ${MOE_SECT_OAT} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lstdc++ + +// Disable BitCode. +ENABLE_BITCODE = NO diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/custom.xcconfig b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/custom.xcconfig new file mode 100644 index 000000000..389f5f52a --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/custom.xcconfig @@ -0,0 +1 @@ +LIBGDX_NATIVES = -force_load ${SRCROOT}/native/ios/libObjectAL.a -force_load ${SRCROOT}/native/ios/libgdx.a -force_load ${SRCROOT}/native/ios/libgdx-box2d.a
\ No newline at end of file diff --git a/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/main.cpp b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/main.cpp new file mode 100644 index 000000000..763c55044 --- /dev/null +++ b/extensions/gdx-setup/src/com/badlogic/gdx/setup/resources/ios-moe/xcode/ios-moe/main.cpp @@ -0,0 +1,35 @@ +// Copyright (c) 2015, Intel Corporation +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// 3. Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#include <MOE/MOE.h> + + +int main(int argc, char *argv[]) { + return moevm(argc, argv); +} @@ -48,6 +48,7 @@ <lwjgl3.version>3.0.0b</lwjgl3.version> <jglfw.version>1.1</jglfw.version> <robovm.version>1.9.0</robovm.version> + <moe.version>1.0.0</moe.version> </properties> <modules> @@ -61,6 +62,7 @@ <module>backends/gdx-backend-jglfw</module> <module>backends/gdx-backends-gwt</module> <module>backends/gdx-backend-headless</module> + <module>backends/gdx-backend-moe</module> <module>extensions/gdx-tools</module> <module>extensions/gdx-box2d</module> <module>extensions/gdx-bullet</module> diff --git a/settings.gradle b/settings.gradle index bad78a274..5cd0d3114 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,6 +5,7 @@ include ":backends:gdx-backend-jglfw" include ":backends:gdx-backend-lwjgl" include ":backends:gdx-backend-lwjgl3" include ":backends:gdx-backend-robovm" +include ":backends:gdx-backend-moe" include ":backends:gdx-backends-gwt" include ":extensions:gdx-box2d:gdx-box2d" include ":extensions:gdx-box2d:gdx-box2d-gwt" @@ -22,6 +23,7 @@ include ":tests:gdx-tests" include ":tests:gdx-tests-android" include ":tests:gdx-tests-gwt" include ":tests:gdx-tests-iosrobovm" +include ':tests:gdx-tests-ios-intel' include ":tests:gdx-tests-jglfw" include ":tests:gdx-tests-lwjgl" include ":tests:gdx-tests-lwjgl3" diff --git a/test/core/assets/badlogic.jpg b/test/core/assets/badlogic.jpg Binary files differnew file mode 100644 index 000000000..4390da6e0 --- /dev/null +++ b/test/core/assets/badlogic.jpg diff --git a/test/ios-moe/resources/Default-375w-667h@2x.png b/test/ios-moe/resources/Default-375w-667h@2x.png Binary files differnew file mode 100644 index 000000000..f213ce60d --- /dev/null +++ b/test/ios-moe/resources/Default-375w-667h@2x.png diff --git a/test/ios-moe/resources/Default-414w-736h@3x.png b/test/ios-moe/resources/Default-414w-736h@3x.png Binary files differnew file mode 100644 index 000000000..685ba51fc --- /dev/null +++ b/test/ios-moe/resources/Default-414w-736h@3x.png diff --git a/test/ios-moe/resources/Default-568h@2x.png b/test/ios-moe/resources/Default-568h@2x.png Binary files differnew file mode 100644 index 000000000..101752fe7 --- /dev/null +++ b/test/ios-moe/resources/Default-568h@2x.png diff --git a/test/ios-moe/resources/Default.png b/test/ios-moe/resources/Default.png Binary files differnew file mode 100644 index 000000000..f1a5582a0 --- /dev/null +++ b/test/ios-moe/resources/Default.png diff --git a/test/ios-moe/resources/Default@2x.png b/test/ios-moe/resources/Default@2x.png Binary files differnew file mode 100644 index 000000000..ca32f62fc --- /dev/null +++ b/test/ios-moe/resources/Default@2x.png diff --git a/test/ios-moe/resources/Default@2x~ipad.png b/test/ios-moe/resources/Default@2x~ipad.png Binary files differnew file mode 100644 index 000000000..bb77ef073 --- /dev/null +++ b/test/ios-moe/resources/Default@2x~ipad.png diff --git a/test/ios-moe/resources/Default~ipad.png b/test/ios-moe/resources/Default~ipad.png Binary files differnew file mode 100644 index 000000000..855e4f2ad --- /dev/null +++ b/test/ios-moe/resources/Default~ipad.png diff --git a/test/ios-moe/resources/Icon-72.png b/test/ios-moe/resources/Icon-72.png Binary files differnew file mode 100644 index 000000000..8cc575912 --- /dev/null +++ b/test/ios-moe/resources/Icon-72.png diff --git a/test/ios-moe/resources/Icon-72@2x.png b/test/ios-moe/resources/Icon-72@2x.png Binary files differnew file mode 100644 index 000000000..ec5e3803f --- /dev/null +++ b/test/ios-moe/resources/Icon-72@2x.png diff --git a/test/ios-moe/resources/Icon.png b/test/ios-moe/resources/Icon.png Binary files differnew file mode 100644 index 000000000..7f4bf3635 --- /dev/null +++ b/test/ios-moe/resources/Icon.png diff --git a/test/ios-moe/resources/Icon@2x.png b/test/ios-moe/resources/Icon@2x.png Binary files differnew file mode 100644 index 000000000..eddc17c57 --- /dev/null +++ b/test/ios-moe/resources/Icon@2x.png diff --git a/tests/gdx-tests-ios-intel/build.gradle b/tests/gdx-tests-ios-intel/build.gradle new file mode 100644 index 000000000..652a55253 --- /dev/null +++ b/tests/gdx-tests-ios-intel/build.gradle @@ -0,0 +1,79 @@ +buildscript { + repositories { + mavenCentral() + + maven { + url uri(System.getenv("INTEL_MULTI_OS_ENGINE_HOME") + "/gradle") + } + } + dependencies { + classpath 'com.intel.gradle:moeGradlePlugin:1.1.0.final-1' + } +} + +apply plugin: 'moe' + +configurations { natives } + +task copyNatives << { + file("xcode/native/ios/").mkdirs(); + def LD_FLAGS = "LIBGDX_NATIVES = " + configurations.natives.files.each { jar-> + def outputDir = null + if (jar.name.endsWith("natives-ios.jar")) outputDir = file("xcode/native/ios") + if (outputDir != null) { + FileCollection fileCollection = zipTree(jar) + for (File libFile : fileCollection) { + if (libFile.getAbsolutePath().endsWith(".a") && !libFile.getAbsolutePath().contains("/tvos/")) { + copy { + from libFile.getAbsolutePath() + into outputDir + } + LD_FLAGS += " -force_load \${SRCROOT}/native/ios/" + libFile.getName() + } + } + } + } + def outFlags = file("xcode/IOSTests/custom.xcconfig"); + outFlags.write LD_FLAGS + + def proguard = file("/Applications/Intel/multi_os_engine/tools/proguard.cfg") + if (proguard.exists()) { + if (!proguard.text.contains("-keep class com.badlogic.**")) { + proguard << "-keep class com.badlogic.** { *; }\n" + proguard << "-keep enum com.badlogic.** { *; }\n" + } + } +} + +repositories { + mavenLocal() + mavenCentral() + jcenter() +} + +sourceSets.main.java.srcDirs = ["src/main/java"] +sourceSets.main.resources.srcDirs = ["src/main/resources"] + +dependencies { + natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" + natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-ios" + natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-ios" + natives "com.badlogicgames.gdx:gdx-freetype-platform:1.9.2:natives-ios" +} + +moe { + mainClassName 'IOSTests' + xcode { + mainTarget 'IOSTests' + packageName 'com.badlogicgames.gdx.tests' + deploymentTarget = '9.0' + xcodeProjectDirPath 'xcode' + generateProject false + } +} + +moeMainReleaseIphoneosXcodeBuild.dependsOn copyNatives +moeMainDebugIphoneosXcodeBuild.dependsOn copyNatives +moeMainReleaseIphonesimulatorXcodeBuild.dependsOn copyNatives +moeMainDebugIphonesimulatorXcodeBuild.dependsOn copyNatives
\ No newline at end of file diff --git a/tests/gdx-tests-ios-intel/src/main/java/com/badlogicgames/gdx/tests/IOSTests.java b/tests/gdx-tests-ios-intel/src/main/java/com/badlogicgames/gdx/tests/IOSTests.java new file mode 100644 index 000000000..ecabbe1ad --- /dev/null +++ b/tests/gdx-tests-ios-intel/src/main/java/com/badlogicgames/gdx/tests/IOSTests.java @@ -0,0 +1,45 @@ +/*******************************************************************************
+ * Copyright 2011 See AUTHORS file.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+package com.badlogicgames.gdx.tests;
+
+import com.badlogic.gdx.backends.iosmoe.IOSApplication;
+import com.badlogic.gdx.backends.iosmoe.IOSApplicationConfiguration;
+import com.badlogic.gdx.tests.*;
+import com.intel.moe.natj.general.Pointer;
+
+import ios.uikit.c.UIKit;
+
+public class IOSTests extends IOSApplication.Delegate {
+
+ protected IOSTests(Pointer peer) {
+ super(peer);
+ }
+
+ @Override
+ protected IOSApplication createApplication() {
+ IOSApplicationConfiguration config = new IOSApplicationConfiguration();
+ config.useAccelerometer = false;
+ config.useGL30 = false;
+ return new IOSApplication(new SpriteBatchTest(), config);
+ }
+
+ public static void main(String[] argv) {
+ //NSAutoreleasePool pool = NSAutoreleasePool.alloc();
+ UIKit.UIApplicationMain(0, null, null, IOSTests.class.getName());
+ //pool.dealloc();
+ }
+}
\ No newline at end of file diff --git a/tests/gdx-tests-ios-intel/src/main/resources/LaunchScreen.xib b/tests/gdx-tests-ios-intel/src/main/resources/LaunchScreen.xib new file mode 100644 index 000000000..a65cf373f --- /dev/null +++ b/tests/gdx-tests-ios-intel/src/main/resources/LaunchScreen.xib @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9532" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES"> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view contentMode="scaleToFill" id="iN0-l3-epB"> + <rect key="frame" x="0.0" y="0.0" width="480" height="480"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" image="intel_logo.png" highlightedImage="Intel_logo.png" translatesAutoresizingMaskIntoConstraints="NO" id="cXf-3N-st0"> + <rect key="frame" x="86" y="83" width="309" height="314"/> + <constraints> + <constraint firstAttribute="height" constant="157" id="Umo-0r-g0n"/> + <constraint firstAttribute="width" constant="155" id="fae-v6-lTY"/> + </constraints> + </imageView> + </subviews> + <color key="backgroundColor" red="0.0" green="0.23529411764705882" blue="0.44313725490196076" alpha="1" colorSpace="calibratedRGB"/> + <constraints> + <constraint firstAttribute="centerY" secondItem="cXf-3N-st0" secondAttribute="centerY" id="GjL-As-Mev"/> + <constraint firstAttribute="centerX" secondItem="cXf-3N-st0" secondAttribute="centerX" id="Xrk-r2-SGt"/> + </constraints> + <nil key="simulatedStatusBarMetrics"/> + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> + <point key="canvasLocation" x="548" y="455"/> + </view> + </objects> + <resources> + <image name="Intel_logo.png" width="16" height="16"/> + <image name="intel_logo.png" width="310" height="314"/> + </resources> +</document> diff --git a/tests/gdx-tests-ios-intel/src/main/resources/MainUI.storyboard b/tests/gdx-tests-ios-intel/src/main/resources/MainUI.storyboard new file mode 100644 index 000000000..140ee4c2e --- /dev/null +++ b/tests/gdx-tests-ios-intel/src/main/resources/MainUI.storyboard @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10116" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="86b32757-56ac-4b20-b8b4-b57fbd5aacaa"> + <dependencies> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/> + </dependencies> + <scenes> + <!--App View Controller--> + <scene sceneID="c08b2e61-1be1-4c5f-9314-3d11ab714248"> + <objects> + <viewController id="86b32757-56ac-4b20-b8b4-b57fbd5aacaa" customClass="AppViewController" sceneMemberID="viewController"> + <layoutGuides> + <viewControllerLayoutGuide type="top" id="34a810f1-2d11-4347-82ac-1c9ff8ee8e6f"/> + <viewControllerLayoutGuide type="bottom" id="b552b700-20a7-40d6-b60d-7573107195c2"/> + </layoutGuides> + <view key="view" contentMode="scaleToFill" id="2886dc68-5dbd-4c5b-ab40-d867038139af"> + <rect key="frame" x="0.0" y="0.0" width="600" height="600"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <label opaque="NO" contentMode="scaleToFill" text="Label" lineBreakMode="tailTruncation" id="db4b6fd7-cd29-46a7-b5a0-1f68afed4fb5"> + <rect key="frame" x="10" y="10" width="590" height="290"/> + <fontDescription key="fontDescription" type="system" pointSize="15"/> + <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="85a10b36-ed84-4835-ad5b-3164cdbb5c5d"> + <rect key="frame" x="0.0" y="300" width="600" height="300"/> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="0.0" colorSpace="calibratedRGB"/> + <fontDescription key="fontDescription" type="system" pointSize="15"/> + <state key="normal" title="Press me!"> + <color key="titleColor" red="0.0" green="0.20000000000000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="BtnPressedCancel_helloButton:" destination="86b32757-56ac-4b20-b8b4-b57fbd5aacaa" eventType="touchUpInside" id="683683f8-7413-4957-8956-38c35dbead73"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + <constraints> + <constraint firstItem="db4b6fd7-cd29-46a7-b5a0-1f68afed4fb5" firstAttribute="leading" secondItem="2886dc68-5dbd-4c5b-ab40-d867038139af" secondAttribute="leading" priority="950" constant="10" id="1af67bfd-d7c0-456e-9a1d-07a05371a621"/> + <constraint firstAttribute="trailing" secondItem="85a10b36-ed84-4835-ad5b-3164cdbb5c5d" secondAttribute="trailing" priority="900" id="58041903-aa2f-4dbb-bfe8-1513243e438a"/> + <constraint firstItem="db4b6fd7-cd29-46a7-b5a0-1f68afed4fb5" firstAttribute="height" secondItem="85a10b36-ed84-4835-ad5b-3164cdbb5c5d" secondAttribute="height" priority="500" constant="-10" id="5ab61591-c2e9-46f2-8852-f7662eb05904"/> + <constraint firstItem="db4b6fd7-cd29-46a7-b5a0-1f68afed4fb5" firstAttribute="width" secondItem="85a10b36-ed84-4835-ad5b-3164cdbb5c5d" secondAttribute="width" priority="500" constant="-10" id="75be507c-f9dd-4917-aeb7-9235f19d55f6"/> + <constraint firstItem="85a10b36-ed84-4835-ad5b-3164cdbb5c5d" firstAttribute="leading" secondItem="2886dc68-5dbd-4c5b-ab40-d867038139af" secondAttribute="leading" priority="950" id="7886afc3-3bbf-496c-8afc-a03360076606"/> + <constraint firstAttribute="trailing" secondItem="db4b6fd7-cd29-46a7-b5a0-1f68afed4fb5" secondAttribute="trailing" priority="900" id="b3babdb5-de0b-414f-b364-ab668cc8e517"/> + <constraint firstAttribute="bottom" secondItem="85a10b36-ed84-4835-ad5b-3164cdbb5c5d" secondAttribute="bottom" priority="900" id="ba410457-cbc4-456a-9240-b2c23c787872"/> + <constraint firstItem="db4b6fd7-cd29-46a7-b5a0-1f68afed4fb5" firstAttribute="top" secondItem="2886dc68-5dbd-4c5b-ab40-d867038139af" secondAttribute="top" priority="950" constant="10" id="c91a7ef4-330a-4d6b-876d-d81c16b4a115"/> + <constraint firstItem="db4b6fd7-cd29-46a7-b5a0-1f68afed4fb5" firstAttribute="bottom" secondItem="85a10b36-ed84-4835-ad5b-3164cdbb5c5d" secondAttribute="top" priority="950" id="da53174b-2826-487b-ac82-d79760fbcfd4"/> + </constraints> + </view> + <connections> + <outlet property="helloButton" destination="85a10b36-ed84-4835-ad5b-3164cdbb5c5d" id="2a3a7e85-7c21-4e0f-bb4f-bb3869821c82"/> + <outlet property="statusText" destination="db4b6fd7-cd29-46a7-b5a0-1f68afed4fb5" id="fe0745e2-c92d-49a1-86bd-d959a3b8c19f"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="587f70e5-b7f3-4fea-920f-72e17c15b7af" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="181.33333333333334" y="395.70666666666665"/> + </scene> + </scenes> +</document> diff --git a/tests/gdx-tests-ios-intel/src/main/resources/intel_logo.png b/tests/gdx-tests-ios-intel/src/main/resources/intel_logo.png Binary files differnew file mode 100644 index 000000000..82a4037f5 --- /dev/null +++ b/tests/gdx-tests-ios-intel/src/main/resources/intel_logo.png diff --git a/tests/gdx-tests-ios-intel/src/main/resources/layout/sample_design.ixml b/tests/gdx-tests-ios-intel/src/main/resources/layout/sample_design.ixml new file mode 100644 index 000000000..1d0f972d5 --- /dev/null +++ b/tests/gdx-tests-ios-intel/src/main/resources/layout/sample_design.ixml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<com.android.sdklib.widgets.iOSViewController xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" xmlns:xrt="http://schemas.android.com/apk/res/android" xrt:initialViewController="true" android:orientation="vertical" xrt:viewController="com.badlogicgames.gdx-tests-ios-intel.ui.AppViewController"> + +<com.android.sdklib.widgets.iOSTextView + style="@style/XOSLabel" + android:textSize="15dp" + android:text="Label" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:layout_gravity="left" android:id="@+id/com.android.sdklib.widgets.iOSTextView" android:layout_weight="1.0" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" xrt:iboutlet="statusText"/><com.android.sdklib.widgets.iOSButton + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:textSize="15dp" + android:text="Press me!" + style="@style/XOSButton" + android:id="@+id/com.android.sdklib.widgets.iOSButton" android:layout_weight="1.0" xrt:ibaction="touchUpInside-BtnPressedCancel_helloButton:" xrt:iboutlet="helloButton"/></com.android.sdklib.widgets.iOSViewController> diff --git a/tests/gdx-tests-ios-intel/xcode/IOSTests-Test/Info-Test.plist b/tests/gdx-tests-ios-intel/xcode/IOSTests-Test/Info-Test.plist new file mode 100644 index 000000000..548600cc6 --- /dev/null +++ b/tests/gdx-tests-ios-intel/xcode/IOSTests-Test/Info-Test.plist @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>$(EXECUTABLE_NAME)</string> + <key>CFBundleIdentifier</key> + <string>IOSTests</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>$(PRODUCT_NAME)</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string></string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string></string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>UIRequiresFullScreen</key> + <true/> + <key>Intel.MOE.Main.Class</key> + <string>com.intel.moe.mdt.junit.MoeRemoteTestRunner</string> + <key>UIApplicationExitsOnSuspend</key> + <false/> + <key>UIRequiredDeviceCapabilities</key> + <array> + <string>armv7</string> + </array> +</dict> +</plist> diff --git a/tests/gdx-tests-ios-intel/xcode/IOSTests-Test/build.xcconfig b/tests/gdx-tests-ios-intel/xcode/IOSTests-Test/build.xcconfig new file mode 100644 index 000000000..b80ae8282 --- /dev/null +++ b/tests/gdx-tests-ios-intel/xcode/IOSTests-Test/build.xcconfig @@ -0,0 +1,30 @@ +// Create sections from the art and oat files. +MOE_SECT_OAT = -sectcreate __OATDATA __oatdata "${SRCROOT}/../build/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat" +MOE_SECT_ART = -sectcreate __ARTDATA __artdata "${SRCROOT}/../build/moe/test/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art" + +// Set the maximum and initial virtual memory protection for the segments. + +MOE_SEGPROT[sdk=iphoneos*] = -segprot __OATDATA rx rx -segprot __ARTDATA rw rw +MOE_SEGPROT[sdk=iphonesimulator*] = -segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw +MOE_SEGPROT[sdk=appletvos*] = -segprot __OATDATA rx rx -segprot __ARTDATA rw rw +MOE_SEGPROT[sdk=appletvsimulator*] = -segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw + +// Set the __PAGEZERO segment size. +MOE_PAGEZERO[sdk=iphoneos*] = +MOE_PAGEZERO[sdk=iphonesimulator*] = -pagezero_size 4096 +MOE_PAGEZERO[sdk=appletvos*] = +MOE_PAGEZERO[sdk=appletvsimulator*] = -pagezero_size 4096 + +// Set frameworks paths. +MOE_FRAMEWORK_PATH = ${INTEL_MULTI_OS_ENGINE_HOME}/sdk/${PLATFORM_NAME} + +MOE_CUSTOM_STATIC_FRAMEWORK_PATH = ../build/libs/static/${PLATFORM_NAME} +MOE_CUSTOM_DYNAMIC_FRAMEWORK_PATH = ../build/libs/dynamic/${PLATFORM_NAME} + +// Collect all MOE linker flags. +MOE_CUSTOM_OTHER_LDFLAGS = -framework Foundation -framework UIKit -L../build/libs/static -L../build/libs/static/${PLATFORM_NAME} -F../build/libs/static -F../build/libs/static/${PLATFORM_NAME} -F../build/libs/dynamic -F../build/libs/dynamic/${PLATFORM_NAME} + +MOE_OTHER_LDFLAGS = ${MOE_SECT_OAT} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lstdc++ + +// Disable BitCode. +ENABLE_BITCODE = NO diff --git a/tests/gdx-tests-ios-intel/xcode/IOSTests.xcodeproj/project.pbxproj b/tests/gdx-tests-ios-intel/xcode/IOSTests.xcodeproj/project.pbxproj new file mode 100644 index 000000000..2ec3efa1b --- /dev/null +++ b/tests/gdx-tests-ios-intel/xcode/IOSTests.xcodeproj/project.pbxproj @@ -0,0 +1,526 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 004C9DD25E4448BD8BF72472 /* classlist.txt in Resources */ = {isa = PBXBuildFile; fileRef = 2EDE867029E44CA48C764FCD /* classlist.txt */; }; + 03D156E71CDCB7FB00C81516 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D156E61CDCB7FB00C81516 /* OpenAL.framework */; }; + 03D156E91CDCB80100C81516 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D156E81CDCB80100C81516 /* AudioToolbox.framework */; }; + 03D156EB1CDCB80800C81516 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D156EA1CDCB80800C81516 /* OpenGLES.framework */; }; + 03D156ED1CDCB80F00C81516 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D156EC1CDCB80F00C81516 /* UIKit.framework */; }; + 03D156EF1CDCB81E00C81516 /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D156EE1CDCB81E00C81516 /* GLKit.framework */; }; + 03D156F11CDCB82700C81516 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D156F01CDCB82700C81516 /* CoreGraphics.framework */; }; + 03D156F31CDCB83200C81516 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D156F21CDCB83200C81516 /* QuartzCore.framework */; }; + 03D156F51CDCB83C00C81516 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D156F41CDCB83C00C81516 /* AVFoundation.framework */; }; + 03D156F71CDCB84300C81516 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D156F61CDCB84300C81516 /* Foundation.framework */; }; + 03D156FB1CDCC17400C81516 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03D156FA1CDCC17400C81516 /* CoreMotion.framework */; }; + 03F251061CDCC62F00D2E4A9 /* data in Resources */ = {isa = PBXBuildFile; fileRef = 03F251051CDCC62F00D2E4A9 /* data */; }; + 09EF2437CE13CBC0AC8B098F /* application.jar in Resources */ = {isa = PBXBuildFile; fileRef = 70E9E15E3B30F2DB586F8930 /* application.jar */; }; + 10415E3F2381C9368C48621C /* MOE.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C6135C7F7ABF5AB44711F8E /* MOE.framework */; }; + 25A1EA60CB4B6C698185E027 /* MainUI.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E9270ECBEEB32E0C1EF5AFB4 /* MainUI.storyboard */; }; + 5D13884401CB34994695EB59 /* MOE.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4C6135C7F7ABF5AB44711F8E /* MOE.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 63076841CE05F8DD7D6A4A2F /* MOE.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4C6135C7F7ABF5AB44711F8E /* MOE.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 70CB7B589C98701E26F68B18 /* preregister.txt in Resources */ = {isa = PBXBuildFile; fileRef = 2E0E162BCE1CE2BFAEA447F2 /* preregister.txt */; }; + 7DE72839FDEB0AEF4656D0B8 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6735C2F38ABF03AD0F8529E9 /* main.cpp */; }; + 9F1800CF6D8D73CB72AA4986 /* preregister.txt in Resources */ = {isa = PBXBuildFile; fileRef = B3544AF8E36DB4435FF7B7F1 /* preregister.txt */; }; + C5885E323956FD3DCDB8B42F /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9184D1B8E32730E310DFD0E /* LaunchScreen.xib */; }; + D17FA5C457CAF92D5D07FA2C /* intel_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = EC22DFDBDD00BFBF9BE2B880 /* intel_logo.png */; }; + D245738463F0BB59B51CA839 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6735C2F38ABF03AD0F8529E9 /* main.cpp */; }; + DA318EF136F046DE943303B8 /* MOE.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C6135C7F7ABF5AB44711F8E /* MOE.framework */; }; + ED8388FE919BC120D93ECD49 /* application.jar in Resources */ = {isa = PBXBuildFile; fileRef = 9A44DE81A3D43975F6E1C4CF /* application.jar */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 6922EE9B341CD2975FBC466F /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 63076841CE05F8DD7D6A4A2F /* MOE.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 9BB7F93E4591114915A17E46 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 5D13884401CB34994695EB59 /* MOE.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 03D156E61CDCB7FB00C81516 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + 03D156E81CDCB80100C81516 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 03D156EA1CDCB80800C81516 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 03D156EC1CDCB80F00C81516 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 03D156EE1CDCB81E00C81516 /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; }; + 03D156F01CDCB82700C81516 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 03D156F21CDCB83200C81516 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 03D156F41CDCB83C00C81516 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 03D156F61CDCB84300C81516 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 03D156FA1CDCC17400C81516 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + 03F251051CDCC62F00D2E4A9 /* data */ = {isa = PBXFileReference; lastKnownFileType = folder; name = data; path = "../../../gdx-tests-android/assets/data"; sourceTree = "<group>"; }; + 12AE76094C8116F34623F508 /* IOSTests-Test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "IOSTests-Test.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2E0E162BCE1CE2BFAEA447F2 /* preregister.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = preregister.txt; path = ../build/moe/test/preregister.txt; sourceTree = SOURCE_ROOT; }; + 2EDE867029E44CA48C764FCD /* classlist.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = classlist.txt; path = ../build/moe/test/classlist.txt; sourceTree = SOURCE_ROOT; }; + 38AB674E8BE61F30992ABD1F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = IOSTests/Info.plist; sourceTree = "<group>"; }; + 4C6135C7F7ABF5AB44711F8E /* MOE.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MOE.framework; sourceTree = MOE_FRAMEWORK_PATH; }; + 6735C2F38ABF03AD0F8529E9 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; }; + 68C12E02F70A282E6475F6D8 /* IOSTests.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IOSTests.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 70E9E15E3B30F2DB586F8930 /* application.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = application.jar; path = ../build/moe/test/application.jar; sourceTree = SOURCE_ROOT; }; + 8CE42E603C578EADBEE7CAEB /* Info-Test.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-Test.plist"; path = "IOSTests-Test/Info-Test.plist"; sourceTree = "<group>"; }; + 9A44DE81A3D43975F6E1C4CF /* application.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = application.jar; path = ../build/moe/main/application.jar; sourceTree = SOURCE_ROOT; }; + B3544AF8E36DB4435FF7B7F1 /* preregister.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = preregister.txt; path = ../build/moe/main/preregister.txt; sourceTree = SOURCE_ROOT; }; + E9184D1B8E32730E310DFD0E /* LaunchScreen.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = LaunchScreen.xib; path = ../src/main/resources/LaunchScreen.xib; sourceTree = SOURCE_ROOT; }; + E9270ECBEEB32E0C1EF5AFB4 /* MainUI.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = MainUI.storyboard; path = ../src/main/resources/MainUI.storyboard; sourceTree = SOURCE_ROOT; }; + EC22DFDBDD00BFBF9BE2B880 /* intel_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = intel_logo.png; path = ../src/main/resources/intel_logo.png; sourceTree = SOURCE_ROOT; }; + F35F953030F91FB7C12697D8 /* build.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = build.xcconfig; sourceTree = "<group>"; }; + F417873B6D31BF2D9BB91E02 /* build.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = build.xcconfig; sourceTree = "<group>"; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9E74A4F59C5D114D50498B39 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 10415E3F2381C9368C48621C /* MOE.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EB6BCFD80C2FFDC53FE6567F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 03D156FB1CDCC17400C81516 /* CoreMotion.framework in Frameworks */, + 03D156F71CDCB84300C81516 /* Foundation.framework in Frameworks */, + 03D156F51CDCB83C00C81516 /* AVFoundation.framework in Frameworks */, + 03D156F31CDCB83200C81516 /* QuartzCore.framework in Frameworks */, + 03D156F11CDCB82700C81516 /* CoreGraphics.framework in Frameworks */, + 03D156EF1CDCB81E00C81516 /* GLKit.framework in Frameworks */, + 03D156ED1CDCB80F00C81516 /* UIKit.framework in Frameworks */, + 03D156EB1CDCB80800C81516 /* OpenGLES.framework in Frameworks */, + 03D156E91CDCB80100C81516 /* AudioToolbox.framework in Frameworks */, + 03D156E71CDCB7FB00C81516 /* OpenAL.framework in Frameworks */, + DA318EF136F046DE943303B8 /* MOE.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 545DB1DBF6DB1134FFFAC093 = { + isa = PBXGroup; + children = ( + 937623F47B1FDC4C9C9ED47B /* IOSTests */, + A1FCD26636C918E54785B7E7 /* IOSTests-Test */, + 881F609385F45CE22E679D9B /* Frameworks */, + C65647FC0A7A14CE570E6074 /* Products */, + ); + sourceTree = "<group>"; + }; + 5D55093526DAFB2B82A2D03E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + F417873B6D31BF2D9BB91E02 /* build.xcconfig */, + 8CE42E603C578EADBEE7CAEB /* Info-Test.plist */, + 2E0E162BCE1CE2BFAEA447F2 /* preregister.txt */, + 70E9E15E3B30F2DB586F8930 /* application.jar */, + 2EDE867029E44CA48C764FCD /* classlist.txt */, + ); + name = "Supporting Files"; + sourceTree = "<group>"; + }; + 881F609385F45CE22E679D9B /* Frameworks */ = { + isa = PBXGroup; + children = ( + 03D156FA1CDCC17400C81516 /* CoreMotion.framework */, + 03D156F61CDCB84300C81516 /* Foundation.framework */, + 03D156F41CDCB83C00C81516 /* AVFoundation.framework */, + 03D156F21CDCB83200C81516 /* QuartzCore.framework */, + 03D156F01CDCB82700C81516 /* CoreGraphics.framework */, + 03D156EE1CDCB81E00C81516 /* GLKit.framework */, + 03D156EC1CDCB80F00C81516 /* UIKit.framework */, + 03D156EA1CDCB80800C81516 /* OpenGLES.framework */, + 03D156E81CDCB80100C81516 /* AudioToolbox.framework */, + 03D156E61CDCB7FB00C81516 /* OpenAL.framework */, + 4C6135C7F7ABF5AB44711F8E /* MOE.framework */, + ); + path = Frameworks; + sourceTree = "<group>"; + }; + 937623F47B1FDC4C9C9ED47B /* IOSTests */ = { + isa = PBXGroup; + children = ( + E8FC58ED6CDF93B5DEFAD2AC /* Supporting Files */, + ); + path = IOSTests; + sourceTree = "<group>"; + }; + A1FCD26636C918E54785B7E7 /* IOSTests-Test */ = { + isa = PBXGroup; + children = ( + 5D55093526DAFB2B82A2D03E /* Supporting Files */, + ); + path = "IOSTests-Test"; + sourceTree = "<group>"; + }; + C65647FC0A7A14CE570E6074 /* Products */ = { + isa = PBXGroup; + children = ( + 68C12E02F70A282E6475F6D8 /* IOSTests.app */, + 12AE76094C8116F34623F508 /* IOSTests-Test.app */, + ); + path = Products; + sourceTree = "<group>"; + }; + E8FC58ED6CDF93B5DEFAD2AC /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 03F251051CDCC62F00D2E4A9 /* data */, + 6735C2F38ABF03AD0F8529E9 /* main.cpp */, + F35F953030F91FB7C12697D8 /* build.xcconfig */, + 38AB674E8BE61F30992ABD1F /* Info.plist */, + B3544AF8E36DB4435FF7B7F1 /* preregister.txt */, + 9A44DE81A3D43975F6E1C4CF /* application.jar */, + E9184D1B8E32730E310DFD0E /* LaunchScreen.xib */, + EC22DFDBDD00BFBF9BE2B880 /* intel_logo.png */, + E9270ECBEEB32E0C1EF5AFB4 /* MainUI.storyboard */, + ); + name = "Supporting Files"; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 366DF33768F9BCA5DDDC2E60 /* IOSTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = D7A10DEC285B470857872ED1 /* Build configuration list for PBXNativeTarget "IOSTests" */; + buildPhases = ( + A7B123662907286EEBED29EB /* Compile Sources (MOE) */, + EB6BCFD80C2FFDC53FE6567F /* Frameworks */, + 3C106A0AFF7CE5DADDD1745B /* Resources */, + 6DB0BBEEB0E188045D7CCAB9 /* Sources */, + 6922EE9B341CD2975FBC466F /* Embed Frameworks */, + ); + buildRules = ( + ); + name = IOSTests; + productName = IOSTests; + productReference = 68C12E02F70A282E6475F6D8 /* IOSTests.app */; + productType = "com.apple.product-type.application"; + }; + 98AFD0FF1A32CDB32550DEA8 /* IOSTests-Test */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9B43188D7CA9A2460EF31160 /* Build configuration list for PBXNativeTarget "IOSTests-Test" */; + buildPhases = ( + 2844733277DF8DCE84937CFC /* Compile Sources (MOE) */, + 9E74A4F59C5D114D50498B39 /* Frameworks */, + 8543AB5976150AE2640757B8 /* Resources */, + E5627A23B1958845A8033C37 /* Sources */, + 9BB7F93E4591114915A17E46 /* Embed Frameworks */, + ); + buildRules = ( + ); + name = "IOSTests-Test"; + productName = "IOSTests-Test"; + productReference = 12AE76094C8116F34623F508 /* IOSTests-Test.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9BF4288442A1872E70F34A41 /* Project object */ = { + isa = PBXProject; + attributes = { + ORGANIZATIONNAME = ""; + }; + buildConfigurationList = 3842F3934E16178B349E1128 /* Build configuration list for PBXProject "IOSTests" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 545DB1DBF6DB1134FFFAC093; + productRefGroup = C65647FC0A7A14CE570E6074 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 366DF33768F9BCA5DDDC2E60 /* IOSTests */, + 98AFD0FF1A32CDB32550DEA8 /* IOSTests-Test */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 3C106A0AFF7CE5DADDD1745B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F1800CF6D8D73CB72AA4986 /* preregister.txt in Resources */, + ED8388FE919BC120D93ECD49 /* application.jar in Resources */, + C5885E323956FD3DCDB8B42F /* LaunchScreen.xib in Resources */, + D17FA5C457CAF92D5D07FA2C /* intel_logo.png in Resources */, + 03F251061CDCC62F00D2E4A9 /* data in Resources */, + 25A1EA60CB4B6C698185E027 /* MainUI.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8543AB5976150AE2640757B8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 70CB7B589C98701E26F68B18 /* preregister.txt in Resources */, + 09EF2437CE13CBC0AC8B098F /* application.jar in Resources */, + 004C9DD25E4448BD8BF72472 /* classlist.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 2844733277DF8DCE84937CFC /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "cd \"${SRCROOT}/..\"\n\nexport JAVA_HOME=$(/usr/libexec/java_home -v 1.8)\njava -version\n\n########################\n# Find Gradle\n########################\nfunction findGradle {\n\tCD=\"$PWD\"\n\twhile [ \"$CD\" != \"\" ]; do\n\t\techo \"Looking for gradlew in $CD\"\n\t\tif [ -x \"$CD/gradlew\" ]; then\n\t\t\tGRADLE_EXEC=$CD/gradlew\n\t\t\treturn 0\n\t\tfi\n\t\tCD=\"${CD%/*}\"\n\tdone\n\n\tDEFAULT_PATH=$(echo $PATH)\n\tsource ~/.bash_profile\n\texport PATH=$PATH:DEFAULT_PATH\n\n\techo \"Checking with 'which'\"\n\tGRADLE_EXEC=$(which 'gradle')\n\n\tif [ \"$GRADLE_EXEC\" = \"\" ]; then\n\t\techo \"Falling back to '/usr/local/bin/gradle'\"\n\t\tGRADLE_EXEC=/usr/local/bin/gradle\n\tfi\n}\n########################\n# Execute Gradle build\n########################\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n\n export MOE_BUILD_SOURCE_SET=test\n \"$GRADLE_EXEC\" --daemon moeXcodeInternal\nfi\n"; + }; + A7B123662907286EEBED29EB /* Compile Sources (MOE) */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Compile Sources (MOE)"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "cd \"${SRCROOT}/..\"\n\nexport JAVA_HOME=$(/usr/libexec/java_home -v 1.8)\njava -version\n\n########################\n# Find Gradle\n########################\nfunction findGradle {\n\tCD=\"$PWD\"\n\twhile [ \"$CD\" != \"\" ]; do\n\t\techo \"Looking for gradlew in $CD\"\n\t\tif [ -x \"$CD/gradlew\" ]; then\n\t\t\tGRADLE_EXEC=$CD/gradlew\n\t\t\treturn 0\n\t\tfi\n\t\tCD=\"${CD%/*}\"\n\tdone\n\n\tDEFAULT_PATH=$(echo $PATH)\n\tsource ~/.bash_profile\n\texport PATH=$PATH:DEFAULT_PATH\n\n\techo \"Checking with 'which'\"\n\tGRADLE_EXEC=$(which 'gradle')\n\n\tif [ \"$GRADLE_EXEC\" = \"\" ]; then\n\t\techo \"Falling back to '/usr/local/bin/gradle'\"\n\t\tGRADLE_EXEC=/usr/local/bin/gradle\n\tfi\n}\n########################\n# Execute Gradle build\n########################\nif [ -z \"$MOE_GRADLE_EXTERNAL_BUILD\" ]; then\n findGradle\n\n \"$GRADLE_EXEC\" --daemon moeXcodeInternal\nfi\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 6DB0BBEEB0E188045D7CCAB9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D245738463F0BB59B51CA839 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E5627A23B1958845A8033C37 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7DE72839FDEB0AEF4656D0B8 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 5828ECAB774FB7A17883548B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SYMROOT = ../build/xcode; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 639293912FBEDFF91B028D01 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F417873B6D31BF2D9BB91E02 /* build.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = "Info-Test.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = "${MOE_OTHER_LDFLAGS}"; + PRODUCT_NAME = "IOSTests-Test"; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; + 66822642BD742E98F9DAFFD9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F35F953030F91FB7C12697D8 /* build.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = IOSTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = "${MOE_OTHER_LDFLAGS}"; + PRODUCT_NAME = IOSTests; + STRIP_STYLE = "non-global"; + }; + name = Release; + }; + B7F2796137B9A1C32DD3868E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F417873B6D31BF2D9BB91E02 /* build.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = "Info-Test.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = "${MOE_OTHER_LDFLAGS}"; + PRODUCT_NAME = "IOSTests-Test"; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + BD1F6DF1566E9124B543ED63 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F35F953030F91FB7C12697D8 /* build.xcconfig */; + buildSettings = { + DEAD_CODE_STRIPPING = NO; + EMBEDDED_CONTENT_CONTAINS_SWIFT = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = IOSTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = "${MOE_OTHER_LDFLAGS}"; + PRODUCT_NAME = IOSTests; + STRIP_STYLE = "non-global"; + }; + name = Debug; + }; + FE50130AB1D4A86CD9C0C27B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "${MOE_FRAMEWORK_PATH}", + ); + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + SDKROOT = iphoneos; + SYMROOT = ../build/xcode; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3842F3934E16178B349E1128 /* Build configuration list for PBXProject "IOSTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FE50130AB1D4A86CD9C0C27B /* Debug */, + 5828ECAB774FB7A17883548B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9B43188D7CA9A2460EF31160 /* Build configuration list for PBXNativeTarget "IOSTests-Test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B7F2796137B9A1C32DD3868E /* Debug */, + 639293912FBEDFF91B028D01 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D7A10DEC285B470857872ED1 /* Build configuration list for PBXNativeTarget "IOSTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BD1F6DF1566E9124B543ED63 /* Debug */, + 66822642BD742E98F9DAFFD9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9BF4288442A1872E70F34A41 /* Project object */; +} diff --git a/tests/gdx-tests-ios-intel/xcode/IOSTests/Info.plist b/tests/gdx-tests-ios-intel/xcode/IOSTests/Info.plist new file mode 100644 index 000000000..54133d667 --- /dev/null +++ b/tests/gdx-tests-ios-intel/xcode/IOSTests/Info.plist @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>$(EXECUTABLE_NAME)</string> + <key>CFBundleIdentifier</key> + <string>IOSTests</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>$(PRODUCT_NAME)</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string></string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string></string> + <key>Intel.MOE.Main.Class</key> + <string>com.badlogicgames.gdx.tests.IOSTests</string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>UIApplicationExitsOnSuspend</key> + <false/> + <key>UILaunchStoryboardName</key> + <string>LaunchScreen</string> + <key>UIMainStoryboardFile</key> + <string>MainUI</string> + <key>UIRequiredDeviceCapabilities</key> + <array> + <string>armv7</string> + </array> + <key>UIRequiresFullScreen</key> + <true/> + <key>UISupportedInterfaceOrientations</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationPortraitUpsideDown</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>UISupportedInterfaceOrientations~ipad</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationPortraitUpsideDown</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> +</dict> +</plist> diff --git a/tests/gdx-tests-ios-intel/xcode/IOSTests/build.xcconfig b/tests/gdx-tests-ios-intel/xcode/IOSTests/build.xcconfig new file mode 100644 index 000000000..d5f569dc5 --- /dev/null +++ b/tests/gdx-tests-ios-intel/xcode/IOSTests/build.xcconfig @@ -0,0 +1,32 @@ +#include "custom.xcconfig" + +// Create sections from the art and oat files. +MOE_SECT_OAT = -sectcreate __OATDATA __oatdata "${SRCROOT}/../build/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.oat" +MOE_SECT_ART = -sectcreate __ARTDATA __artdata "${SRCROOT}/../build/moe/main/xcode/${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}/${arch}.art" + +// Set the maximum and initial virtual memory protection for the segments. + +MOE_SEGPROT[sdk=iphoneos*] = -segprot __OATDATA rx rx -segprot __ARTDATA rw rw +MOE_SEGPROT[sdk=iphonesimulator*] = -segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw +MOE_SEGPROT[sdk=appletvos*] = -segprot __OATDATA rx rx -segprot __ARTDATA rw rw +MOE_SEGPROT[sdk=appletvsimulator*] = -segprot __OATDATA rwx rx -segprot __ARTDATA rwx rw + +// Set the __PAGEZERO segment size. +MOE_PAGEZERO[sdk=iphoneos*] = +MOE_PAGEZERO[sdk=iphonesimulator*] = -pagezero_size 4096 +MOE_PAGEZERO[sdk=appletvos*] = +MOE_PAGEZERO[sdk=appletvsimulator*] = -pagezero_size 4096 + +// Set frameworks paths. +MOE_FRAMEWORK_PATH = ${INTEL_MULTI_OS_ENGINE_HOME}/sdk/${PLATFORM_NAME} + +MOE_CUSTOM_STATIC_FRAMEWORK_PATH = ../build/libs/static/${PLATFORM_NAME} +MOE_CUSTOM_DYNAMIC_FRAMEWORK_PATH = ../build/libs/dynamic/${PLATFORM_NAME} + +// Collect all MOE linker flags. +MOE_CUSTOM_OTHER_LDFLAGS = ${LIBGDX_NATIVES} -framework Foundation -framework UIKit -L../build/libs/static -L../build/libs/static/${PLATFORM_NAME} -F../build/libs/static -F../build/libs/static/${PLATFORM_NAME} -F../build/libs/dynamic -F../build/libs/dynamic/${PLATFORM_NAME} + +MOE_OTHER_LDFLAGS = ${MOE_SECT_OAT} ${MOE_SECT_ART} ${MOE_SEGPROT} ${MOE_PAGEZERO} ${MOE_CUSTOM_OTHER_LDFLAGS} -lstdc++ + +// Disable BitCode. +ENABLE_BITCODE = NO diff --git a/tests/gdx-tests-ios-intel/xcode/IOSTests/custom.xcconfig b/tests/gdx-tests-ios-intel/xcode/IOSTests/custom.xcconfig new file mode 100644 index 000000000..e25e18aa7 --- /dev/null +++ b/tests/gdx-tests-ios-intel/xcode/IOSTests/custom.xcconfig @@ -0,0 +1 @@ +LIBGDX_NATIVES = -force_load ${SRCROOT}/native/ios/libObjectAL.a -force_load ${SRCROOT}/native/ios/libgdx.a -force_load ${SRCROOT}/native/ios/libgdx-box2d.a -force_load ${SRCROOT}/native/ios/libgdx-bullet.a -force_load ${SRCROOT}/native/ios/libgdx-freetype.a
\ No newline at end of file diff --git a/tests/gdx-tests-ios-intel/xcode/IOSTests/main.cpp b/tests/gdx-tests-ios-intel/xcode/IOSTests/main.cpp new file mode 100644 index 000000000..763c55044 --- /dev/null +++ b/tests/gdx-tests-ios-intel/xcode/IOSTests/main.cpp @@ -0,0 +1,35 @@ +// Copyright (c) 2015, Intel Corporation +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// 3. Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#include <MOE/MOE.h> + + +int main(int argc, char *argv[]) { + return moevm(argc, argv); +} diff --git a/tests/gdx-tests-iosrobovm/src/com/badlogic/gdx/tests/IOSRobovmTests.java b/tests/gdx-tests-iosrobovm/src/com/badlogic/gdx/tests/IOSRobovmTests.java index 295bc3ffc..7e5bafcc9 100644 --- a/tests/gdx-tests-iosrobovm/src/com/badlogic/gdx/tests/IOSRobovmTests.java +++ b/tests/gdx-tests-iosrobovm/src/com/badlogic/gdx/tests/IOSRobovmTests.java @@ -19,8 +19,8 @@ package com.badlogic.gdx.tests; import org.robovm.apple.foundation.NSAutoreleasePool;
import org.robovm.apple.uikit.UIApplication;
-import com.badlogic.gdx.backends.iosrobovm.IOSApplication;
-import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration;
+import com.badlogic.gdx.backends.iosmoe.IOSApplication;
+import com.badlogic.gdx.backends.iosmoe.IOSApplicationConfiguration;
public class IOSRobovmTests extends IOSApplication.Delegate {
@@ -29,7 +29,7 @@ public class IOSRobovmTests extends IOSApplication.Delegate { IOSApplicationConfiguration config = new IOSApplicationConfiguration();
config.useAccelerometer = false;
config.useGL30 = true;
- return new IOSApplication(new GLES30Test(), config);
+ return new IOSApplication(new BulletTestCollection(), config);
}
public static void main(String[] argv) {
diff --git a/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java b/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java index 8b63794b9..b111269cd 100644 --- a/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java +++ b/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java @@ -18,13 +18,7 @@ package com.badlogic.gdx.tests.lwjgl; import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
-import com.badlogic.gdx.tests.CursorTest;
-import com.badlogic.gdx.tests.DpiTest;
-import com.badlogic.gdx.tests.FullscreenTest;
-import com.badlogic.gdx.tests.InputTest;
-import com.badlogic.gdx.tests.LifeCycleTest;
-import com.badlogic.gdx.tests.MusicTest;
-import com.badlogic.gdx.tests.UITest;
+import com.badlogic.gdx.tests.*;
import com.badlogic.gdx.tests.extensions.ControllersTest;
import com.badlogic.gdx.tests.extensions.FreeTypeMetricsTest;
import com.badlogic.gdx.tests.superkoalio.SuperKoalio;
@@ -39,7 +33,7 @@ public class LwjglDebugStarter { // new SharedLibraryLoader("../../extensions/gdx-controllers/gdx-controllers-desktop/libs/gdx-controllers-desktop-natives.jar").load("gdx-controllers-desktop");
// new SharedLibraryLoader("../../gdx/libs/gdx-natives.jar").load("gdx");
- GdxTest test = new ControllersTest();
+ GdxTest test = new SpriteBatchTest();
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.r = config.g = config.b = config.a = 8;
// config.width = 320;
|