Explorar o código

First impl of testcasefor multiple atlases issue. Still missing to add more images to the screens so it really uses more atlases

v1r7ua1 %!s(int64=6) %!d(string=hai) anos
pai
achega
f9282c1e91

+ 107 - 0
jme3-examples/src/main/java/jme3test/niftygui/TestNiftyBatchMultipleAtlases.java

@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2009-2019 jMonkeyEngine
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ *
+ * * 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.
+ *
+ * * Neither the name of 'jMonkeyEngine' 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 OWNER 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.
+ */
+
+package jme3test.niftygui;
+
+import com.jme3.app.SimpleApplication;
+import com.jme3.niftygui.NiftyJmeDisplay;
+import de.lessvoid.nifty.Nifty;
+import de.lessvoid.nifty.render.batch.BatchRenderConfiguration;
+import de.lessvoid.nifty.screen.Screen;
+import de.lessvoid.nifty.screen.ScreenController;
+
+public class TestNiftyBatchMultipleAtlases extends SimpleApplication implements ScreenController {
+
+    private Nifty nifty;
+
+    public static void main(String[] args){
+        TestNiftyBatchMultipleAtlases app = new TestNiftyBatchMultipleAtlases();
+        app.setPauseOnLostFocus(false);
+        app.start();
+    }
+
+    @Override
+    public void simpleInitApp() {
+
+        BatchRenderConfiguration batchConfig = new BatchRenderConfiguration();
+        batchConfig.atlasWidth = 256;
+        batchConfig.atlasHeight = 256;
+        batchConfig.atlasPadding = 2;
+        batchConfig.atlasTolerance = 0.5f;
+        batchConfig.fillRemovedImagesInAtlas = false;
+        batchConfig.disposeImagesBetweenScreens = true;
+        batchConfig.initialAtlasCount = 3;
+
+        NiftyJmeDisplay niftyDisplay = NiftyJmeDisplay.newNiftyJmeDisplay(
+                assetManager,
+                inputManager,
+                audioRenderer,
+                guiViewPort,
+                batchConfig);
+        nifty = niftyDisplay.getNifty();
+        nifty.loadControlFile("nifty-default-controls.xml");
+        nifty.loadStyleFile("nifty-default-styles.xml");
+        nifty.fromXml("Interface/Nifty/NiftyBatchMultipleAtlases.xml", "screen1", this);
+
+        // attach the nifty display to the gui view port as a processor
+        guiViewPort.addProcessor(niftyDisplay);
+
+        // disable the fly cam
+        flyCam.setEnabled(false);
+        flyCam.setDragToRotate(true);
+        inputManager.setCursorVisible(true);
+    }
+
+    @Override
+    public void bind(Nifty nifty, Screen screen) {
+        System.out.println("bind(" + screen.getScreenId() + ")");
+    }
+
+    @Override
+    public void onStartScreen() {
+        System.out.println("onStartScreen");
+    }
+
+    @Override
+    public void onEndScreen() {
+        System.out.println("onEndScreen");
+    }
+
+    public void quit(){
+        nifty.gotoScreen("end");
+    }
+
+    public void gotoScreen(String screen) {
+        nifty.gotoScreen(screen);
+    }
+
+}

+ 58 - 0
jme3-examples/src/main/resources/Interface/Nifty/NiftyBatchMultipleAtlases.xml

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nifty xmlns="http://nifty-gui.sourceforge.net/nifty-1.3.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://nifty-gui.sourceforge.net/nifty-1.3.xsd http://nifty-gui.sourceforge.net/nifty-1.3.xsd">
+  <screen id="screen1" controller="jme3test.niftygui.TestNiftyBatchMultipleAtlases">
+    <layer childLayout="vertical">
+      <panel childLayout="center" backgroundColor="#cccf" height="*" width="*">
+        <control name="label" color="#f00f" text="You're in screen1." width="*"/>
+      </panel>
+      <panel childLayout="center" backgroundColor="#888f" height="*" width="*">
+        <control name="label" color="#ffff" text="goto screen2" width="*"/>
+        <interact onClick="gotoScreen(screen2)" />
+      </panel>
+      <panel childLayout="center" backgroundColor="#444f" height="*" width="*">
+        <control name="label" color="#ffff" text="goto screen3" width="*"/>
+        <interact onClick="gotoScreen(screen3)" />
+      </panel>
+      <panel childLayout="horizontal" backgroundColor="#000f" height="*" width="*">
+        <!-- 3 images to make use of more altases -->
+      </panel>
+    </layer>
+  </screen>
+  <screen id="screen2" controller="jme3test.niftygui.TestNiftyBatchMultipleAtlases">
+    <layer childLayout="vertical">
+      <panel childLayout="center" backgroundColor="#cccf" height="*" width="*">
+        <control name="label" color="#f00f" text="You're in screen2." width="*"/>
+      </panel>
+      <panel childLayout="center" backgroundColor="#888f" height="*" width="*">
+        <control name="label" color="#ffff" text="goto screen1" width="*"/>
+        <interact onClick="gotoScreen(screen1)" />
+      </panel>
+      <panel childLayout="center" backgroundColor="#444f" height="*" width="*">
+        <control name="label" color="#ffff" text="goto screen3" width="*"/>
+        <interact onClick="gotoScreen(screen3)" />
+      </panel>
+      <panel childLayout="horizontal" backgroundColor="#000f" height="*" width="*">
+        <!-- 3 images to make use of more altases -->
+      </panel>
+    </layer>
+  </screen>
+  <screen id="screen3" controller="jme3test.niftygui.TestNiftyBatchMultipleAtlases">
+    <layer childLayout="vertical">
+      <panel childLayout="center" backgroundColor="#cccf" height="*" width="*">
+        <control name="label" color="#f00f" text="You're in screen3." width="*"/>
+      </panel>
+      <panel childLayout="center" backgroundColor="#888f" height="*" width="*">
+        <control name="label" color="#ffff" text="goto screen1" width="*"/>
+        <interact onClick="gotoScreen(screen1)" />
+      </panel>
+      <panel childLayout="center" backgroundColor="#444f" height="*" width="*">
+        <control name="label" color="#ffff" text="goto screen2" width="*"/>
+        <interact onClick="gotoScreen(screen2)" />
+      </panel>
+      <panel childLayout="horizontal" backgroundColor="#000f" height="*" width="*">
+        <!-- 3 images to make use of more altases -->
+      </panel>
+    </layer>
+  </screen>
+</nifty>
+