OSDN Git Service

added robovm to setup-ui
authorbadlogic <badlogicgames@gmail.com>
Mon, 9 Sep 2013 18:19:15 +0000 (20:19 +0200)
committerbadlogic <badlogicgames@gmail.com>
Mon, 9 Sep 2013 18:19:15 +0000 (20:19 +0200)
extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/BaseProjectConfiguration.java
extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/Helper.java
extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/LibraryDef.java
extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/ProjectSetup.java
extensions/gdx-setup-ui/src/aurelienribon/gdxsetupui/ui/panels/AdvancedSettingsPanel.java
extensions/gdx-setup-ui/src/res/libgdx.txt
extensions/gdx-setup-ui/src/res/projects.zip
extensions/gdx-tools/src/com/badlogic/gdx/tools/grapheditor/GraphRenderer.java [deleted file]
extensions/gdx-tools/src/com/badlogic/gdx/tools/grapheditor/ShaderGraphEditor.java [deleted file]

index 1297d68..c8f8e44 100644 (file)
@@ -34,6 +34,7 @@ public abstract class BaseProjectConfiguration {
        public String suffixDesktop = "-desktop";
        public String suffixAndroid = "-android";
        public String suffixIos = "-ios";
+       public String suffixRobovm = "-robovm";
        public String suffixHtml = "-html";
 
        public final List<String> libraries = new ArrayList<String>();
index 0823913..1c2a37e 100644 (file)
@@ -69,6 +69,10 @@ public class Helper {
        public static String getIosPrjPath (ProjectUpdateConfiguration cfg) {
                return FilenameUtils.normalize(cfg.destinationPath + "/" + cfg.projectName + cfg.suffixIos + "/", true);
        }
+       
+       public static String getRobovomPrjPath (ProjectUpdateConfiguration cfg) {
+               return FilenameUtils.normalize(cfg.destinationPath + "/" + cfg.projectName + cfg.suffixRobovm + "/", true);
+       }
 
        // -------------------------------------------------------------------------
        // Classpath
index 2198072..52a6e58 100644 (file)
@@ -38,6 +38,7 @@ public class LibraryDef {
        public final List<String> libsAndroid;
        public final List<String> libsHtml;
        public final List<String> libsIos;
+       public final List<String> libsRobovm;
        public final List<String> data;
 
        /**
@@ -60,6 +61,7 @@ public class LibraryDef {
                this.libsAndroid = ParseUtils.parseBlockAsList(content, "libs-android");
                this.libsHtml = ParseUtils.parseBlockAsList(content, "libs-html");
                this.libsIos = ParseUtils.parseBlockAsList(content, "libs-ios");
+               this.libsRobovm = ParseUtils.parseBlockAsList(content, "libs-robovm");
                this.data = ParseUtils.parseBlockAsList(content, "data");
        }
 }
\ No newline at end of file
index 5be6a5b..092670f 100644 (file)
@@ -17,6 +17,8 @@ package aurelienribon.gdxsetupui;
 
 import aurelienribon.utils.Res;
 import aurelienribon.utils.TemplateManager;
+
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -27,6 +29,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
+
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
@@ -75,7 +78,10 @@ public class ProjectSetup {
                if (cfg.isDesktopIncluded) templateManager.define("PRJ_DESKTOP_NAME", cfg.projectName + cfg.suffixDesktop);
                if (cfg.isAndroidIncluded) templateManager.define("PRJ_ANDROID_NAME", cfg.projectName + cfg.suffixAndroid);
                if (cfg.isHtmlIncluded) templateManager.define("PRJ_HTML_NAME", cfg.projectName + cfg.suffixHtml);
-               if (cfg.isIosIncluded) templateManager.define("PRJ_IOS_NAME", cfg.projectName + cfg.suffixIos);
+               if (cfg.isIosIncluded) {
+                       templateManager.define("PRJ_IOS_NAME", cfg.projectName + cfg.suffixIos);
+                       templateManager.define("PRJ_ROBOVM_NAME", cfg.projectName + cfg.suffixRobovm);
+               }
 
                // Android manifest definitions
                if (!cfg.androidMinSdkVersion.equals("")) templateManager.define("ANDROID_MIN_SDK", cfg.androidMinSdkVersion);
@@ -126,7 +132,9 @@ public class ProjectSetup {
                File androidPrjLibsDir = new File(tmpDst, "/prj-android/libs");
                File htmlPrjLibsDir = new File(tmpDst, "/prj-html/war/WEB-INF/lib");
                File iosPrjLibsDir = new File(tmpDst, "/prj-ios/libs");
+               File robovmPrjLibsDir = new File(tmpDst, "/prj-robovm/libs");
                File dataDir = new File(tmpDst, "/prj-android/assets");
+               System.out.println("infalting libs");
 
                for (String library : cfg.libraries) {
                        InputStream is = new FileInputStream(cfg.librariesZipPaths.get(library));
@@ -138,19 +146,22 @@ public class ProjectSetup {
                        while ((entry = zis.getNextEntry()) != null) {
                                if (entry.isDirectory()) continue;
                                String entryName = entry.getName();
+                               byte[] bytes = IOUtils.toByteArray(zis);
 
                                for (String elemName : def.libsCommon)
-                                       if (entryName.endsWith(elemName)) copyEntry(zis, elemName, commonPrjLibsDir);
+                                       if (entryName.endsWith(elemName)) copyEntry(new ByteArrayInputStream(bytes), elemName, commonPrjLibsDir);
                                for (String elemName : def.libsDesktop)
-                                       if (entryName.endsWith(elemName)) copyEntry(zis, elemName, desktopPrjLibsDir);
+                                       if (entryName.endsWith(elemName)) copyEntry(new ByteArrayInputStream(bytes), elemName, desktopPrjLibsDir);
                                for (String elemName : def.libsAndroid)
-                                       if (entryName.endsWith(elemName)) copyEntry(zis, elemName, androidPrjLibsDir);
+                                       if (entryName.endsWith(elemName)) copyEntry(new ByteArrayInputStream(bytes), elemName, androidPrjLibsDir);
                                for (String elemName : def.libsHtml)
-                                       if (entryName.endsWith(elemName)) copyEntry(zis, elemName, htmlPrjLibsDir);
+                                       if (entryName.endsWith(elemName)) copyEntry(new ByteArrayInputStream(bytes), elemName, htmlPrjLibsDir);
                                for (String elemName : def.libsIos)
-                                       if(entryName.endsWith(elemName)) copyEntry(zis, elemName, iosPrjLibsDir);
+                                       if(entryName.endsWith(elemName)) copyEntry(new ByteArrayInputStream(bytes), elemName, iosPrjLibsDir);
+                               for (String elemName : def.libsRobovm)
+                                       if(entryName.endsWith(elemName)) copyEntry(new ByteArrayInputStream(bytes), elemName, robovmPrjLibsDir);
                                for (String elemName : def.data)
-                                       if (entryName.endsWith(elemName)) copyEntry(zis, elemName, dataDir);
+                                       if (entryName.endsWith(elemName)) copyEntry(new ByteArrayInputStream(bytes), elemName, dataDir);
                        }
 
                        zis.close();
@@ -166,6 +177,7 @@ public class ProjectSetup {
                List<String> entriesDesktop = new ArrayList<String>();
                List<String> entriesAndroid = new ArrayList<String>();
                List<String> entriesHtml = new ArrayList<String>();
+               List<String> entriesRobovm = new ArrayList<String>();
                List<String> gwtInherits = new ArrayList<String>();
 
                for (String library : cfg.libraries) {
@@ -198,6 +210,12 @@ public class ProjectSetup {
                                entriesHtml.add(buildClasspathEntry(file, source, "war/WEB-INF/lib/", false));
                                if (source != null) entriesHtml.add(buildClasspathEntry(source, null, "war/WEB-INF/lib/", false));
                        }
+                       
+                       for(String file: def.libsRobovm) {
+                               if(!isLibJar(file)) continue;
+                               String source = getSource(def.libsAndroid, file);
+                               entriesRobovm.add(buildClasspathEntry(file, source, "libs/", false));
+                       }
 
                        if (def.gwtModuleName != null) {
                                gwtInherits.add("<inherits name='" + def.gwtModuleName + "' />");
@@ -208,6 +226,7 @@ public class ProjectSetup {
                templateManager.define("CLASSPATHENTRIES_DESKTOP", flatten(entriesDesktop, "\t", "\n").trim());
                templateManager.define("CLASSPATHENTRIES_ANDROID", flatten(entriesAndroid, "\t", "\n").trim());
                templateManager.define("CLASSPATHENTRIES_HTML", flatten(entriesHtml, "\t", "\n").trim());
+               templateManager.define("CLASSPATHENTRIES_ROBOVM", flatten(entriesRobovm, "\t", "\n").trim());
                templateManager.define("GWT_INHERITS", flatten(gwtInherits, "\t", "\n").trim());
                templateManager.processOver(new File(tmpDst, "prj-common/.classpath"));
                templateManager.processOver(new File(tmpDst, "prj-desktop/.classpath"));
@@ -262,6 +281,12 @@ public class ProjectSetup {
                        move(src, "my-gdx-game-ios.sln", cfg.projectName + cfg.suffixIos + ".sln");
                        templateDir(src);
                        FileUtils.moveDirectory(src, dst);
+                       
+                       src = new File(tmpDst, "prj-robovm");
+                       dst = new File(tmpDst, cfg.projectName + cfg.suffixRobovm);
+                       move(src, "src/RobovmLauncher.java", "src/" + cfg.packageName.replace('.', '/') + "/RobovmLauncher.java");
+                       templateDir(src);
+                       FileUtils.moveDirectory(src, dst);
                }
        }
 
@@ -292,6 +317,9 @@ public class ProjectSetup {
                if(cfg.isIosIncluded) {
                        src = new File(tmpDst, cfg.projectName + cfg.suffixIos);
                        FileUtils.copyDirectoryToDirectory(src, dst);
+                       
+                       src = new File(tmpDst, cfg.projectName + cfg.suffixRobovm);
+                       FileUtils.copyDirectoryToDirectory(src, dst);
                }
        }
 
@@ -319,7 +347,7 @@ public class ProjectSetup {
                }
        }
 
-       private void copyEntry(ZipInputStream zis, String name, File dst) throws IOException {
+       private void copyEntry(InputStream zis, String name, File dst) throws IOException {
                File file = new File(dst, name);
                file.getParentFile().mkdirs();
 
index 40315d8..64c7ce6 100644 (file)
@@ -36,7 +36,7 @@ public class AdvancedSettingsPanel extends javax.swing.JPanel {
                desktopSuffixField.setText(Ctx.cfgSetup.suffixDesktop);
                androidSuffixField.setText(Ctx.cfgSetup.suffixAndroid);
                htmlSuffixField.setText(Ctx.cfgSetup.suffixHtml);
-                iosSuffixField.setText(Ctx.cfgSetup.suffixIos);
+      iosSuffixField.setText(Ctx.cfgSetup.suffixIos);
                androidMinSdkField.setText(Ctx.cfgSetup.androidMinSdkVersion);
                androidTargetSdkField.setText(Ctx.cfgSetup.androidTargetSdkVersion);
                androidMaxSdkField.setText(Ctx.cfgSetup.androidMaxSdkVersion);
@@ -45,7 +45,7 @@ public class AdvancedSettingsPanel extends javax.swing.JPanel {
                desktopSuffixField.addKeyListener(updateOnTypeKeyListener);
                androidSuffixField.addKeyListener(updateOnTypeKeyListener);
                htmlSuffixField.addKeyListener(updateOnTypeKeyListener);
-                iosSuffixField.addKeyListener(updateOnTypeKeyListener);
+               iosSuffixField.addKeyListener(updateOnTypeKeyListener);
                androidMinSdkField.addKeyListener(updateOnTypeKeyListener);
                androidTargetSdkField.addKeyListener(updateOnTypeKeyListener);
                androidMaxSdkField.addKeyListener(updateOnTypeKeyListener);
index 359a147..19ce601 100644 (file)
@@ -44,9 +44,10 @@ gdx-backend-lwjgl-sources.jar
 gdx-natives.jar\r
 \r
 [libs-android]\r
+armeabi/libandroidgl20.so\r
 armeabi/libgdx.so\r
-armeabi-v7a/libgdx.so
-x86/libgdx.so\r
+armeabi-v7a/libandroidgl20.so\r
+armeabi-v7a/libgdx.so\r
 gdx-backend-android.jar\r
 gdx-backend-android-sources.jar\r
 \r
@@ -74,4 +75,9 @@ ios/ikvm/bin/IKVM.Runtime.dll
 ios/ikvm/bin/ikvm.exe\r
 ios/ikvm/bin/ikvmc.exe\r
 ios/ikvm/bin/ikvmstub.exe\r
-ios/ikvm/bin/libikvm-natives.a
\ No newline at end of file
+ios/ikvm/bin/libikvm-natives.a\r
+\r
+[libs-robovm]\r
+gdx-backend-robovm.jar\r
+ios/libgdx.a\r
+ios/libObjectAL.a
\ No newline at end of file
index d377d3a..8034158 100644 (file)
Binary files a/extensions/gdx-setup-ui/src/res/projects.zip and b/extensions/gdx-setup-ui/src/res/projects.zip differ
diff --git a/extensions/gdx-tools/src/com/badlogic/gdx/tools/grapheditor/GraphRenderer.java b/extensions/gdx-tools/src/com/badlogic/gdx/tools/grapheditor/GraphRenderer.java
deleted file mode 100644 (file)
index 1dec764..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.badlogic.gdx.tools.grapheditor;
-
-import java.awt.Font;
-
-import com.badlogic.gdx.graphics.OrthographicCamera;
-import com.badlogic.gdx.graphics.g2d.BitmapFont;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.graphics.g3d.shaders.graph.ShaderGraph;
-import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
-
-public class GraphRenderer {
-       private final OrthographicCamera camera;
-       private final ShapeRenderer shapeRenderer;
-       private final SpriteBatch batch;
-       private final BitmapFont font;
-       
-       public GraphRenderer() {
-               camera = new OrthographicCamera();
-               camera.setToOrtho(false);
-               shapeRenderer = new ShapeRenderer();
-               batch = new SpriteBatch();
-               font = new BitmapFont();
-       }
-       
-       public void resize(int width, int height) {
-               camera.viewportWidth = width;
-               camera.viewportHeight = height;
-               camera.update();
-       }
-       
-       public void render(ShaderGraph graph) {
-               camera.update();
-       }
-}
diff --git a/extensions/gdx-tools/src/com/badlogic/gdx/tools/grapheditor/ShaderGraphEditor.java b/extensions/gdx-tools/src/com/badlogic/gdx/tools/grapheditor/ShaderGraphEditor.java
deleted file mode 100644 (file)
index dd8a633..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.badlogic.gdx.tools.grapheditor;
-
-import com.badlogic.gdx.ApplicationListener;
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
-import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
-import com.badlogic.gdx.graphics.GL20;
-
-public class ShaderGraphEditor implements ApplicationListener {
-       @Override
-       public void create () {
-       }
-
-       @Override
-       public void resize (int width, int height) {
-       }
-
-       @Override
-       public void render () {
-               Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
-       }
-
-       @Override
-       public void pause () {
-       }
-
-       @Override
-       public void resume () {
-       }
-
-       @Override
-       public void dispose () {
-       }
-       
-       public static void main (String[] args) {
-               LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
-               config.width = 640;
-               config.height = 480;
-               config.useGL20 = true;
-               new LwjglApplication(new ShaderGraphEditor(), config);
-       }
-}