OSDN Git Service

Merge pull request #793 from hneuer/intersect
authorMario Zechner <contact@badlogicgames.com>
Sat, 5 Oct 2013 09:41:39 +0000 (02:41 -0700)
committerMario Zechner <contact@badlogicgames.com>
Sat, 5 Oct 2013 09:41:39 +0000 (02:41 -0700)
ParticleEffect: Don't dispose external textures

backends/gdx-backends-gwt/src/com/badlogic/gdx/backends/gwt/GwtApplication.java
backends/gdx-backends-gwt/src/com/badlogic/gdx/backends/gwt/preloader/Preloader.java
gdx/src/com/badlogic/gdx/scenes/scene2d/ui/WidgetGroup.java
gdx/src/com/badlogic/gdx/utils/Array.java
gdx/src/com/badlogic/gdx/utils/Select.java

index fc4ab9b..71ac15d 100644 (file)
@@ -80,6 +80,12 @@ public abstract class GwtApplication implements EntryPoint, Application {
        /** @return the configuration for the {@link GwtApplication}. */
        public abstract GwtApplicationConfiguration getConfig ();
 
+       
+       public String getPreloaderBaseURL()
+       {
+               return GWT.getHostPageBaseURL() + "assets/";
+       }
+       
        @Override
        public void onModuleLoad () {
                GwtApplication.agentInfo = computeAgentInfo();
@@ -215,7 +221,7 @@ public abstract class GwtApplication implements EntryPoint, Application {
        long loadStart = TimeUtils.nanoTime();
 
        public Preloader createPreloader() {
-               return new Preloader();
+               return new Preloader(getPreloaderBaseURL());
        }
 
        public PreloaderCallback getPreloaderCallback () {
index 34094e3..c6e4442 100644 (file)
@@ -100,8 +100,11 @@ public class Preloader {
 
        public final String baseUrl;
 
-       public Preloader () {
-               baseUrl = GWT.getHostPageBaseURL() + "assets/";
+       
+       public Preloader (String newBaseURL) {
+               
+               baseUrl = newBaseURL;
+       
                // trigger copying of assets and creation of assets.txt
                GWT.create(PreloaderBundle.class);
        }
index bb2fac6..79e02b9 100644 (file)
@@ -20,6 +20,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.scenes.scene2d.Actor;\r
 import com.badlogic.gdx.scenes.scene2d.Group;\r
 import com.badlogic.gdx.scenes.scene2d.Stage;\r
+import com.badlogic.gdx.scenes.scene2d.Touchable;\r
 import com.badlogic.gdx.scenes.scene2d.utils.Layout;\r
 import com.badlogic.gdx.utils.SnapshotArray;\r
 \r
@@ -148,4 +149,10 @@ public class WidgetGroup extends Group implements Layout {
                validate();\r
                super.draw(batch, parentAlpha);\r
        }\r
+\r
+       public Actor hit (float x, float y, boolean touchable) {\r
+               if (touchable && getTouchable() == Touchable.disabled) return null;\r
+               if (x < 0 || x >= getWidth() || y < 0 || y >= getHeight()) return null;\r
+               return super.hit(x, y, touchable);\r
+       }\r
 }\r
index 8209a87..1f35ac8 100644 (file)
@@ -339,30 +339,30 @@ public class Array<T> implements Iterable<T> {
         * This might partially sort the Array.\r
         * @see Select\r
         * @param comparator used for comparison\r
-        * @param nthLowest rank of desired object according to comparison,\r
+        * @param kthLowest rank of desired object according to comparison,\r
         * n is based on ordinal numbers, not array indices.\r
         * for min value use 1, for max value use size of array, using 0 results in runtime exception.\r
         * @return the value of the Nth lowest ranked object.\r
         */\r
-       public T selectRanked(Comparator<T> comparator, int nthLowest) {\r
-               if (nthLowest < 1) {\r
+       public T selectRanked(Comparator<T> comparator, int kthLowest) {\r
+               if (kthLowest < 1) {\r
                        throw new GdxRuntimeException("nth_lowest must be greater than 0, 1 = first, 2 = second...");\r
                }\r
-               return Select.instance().select(items, comparator, nthLowest, size);\r
+               return Select.instance().select(items, comparator, kthLowest, size);\r
        }\r
 \r
        /** @see Array#selectRanked(java.util.Comparator, int)\r
        * @param comparator used for comparison\r
-        * @param nthLowest rank of desired object according to comparison,\r
+        * @param kthLowest rank of desired object according to comparison,\r
         * n is based on ordinal numbers, not array indices.\r
         * for min value use 1, for max value use size of array, using 0 results in runtime exception.\r
         * @return the index of the Nth lowest ranked object.\r
         */\r
-       public int selectRankedIndex(Comparator<T> comparator, int nthLowest) {\r
-               if (nthLowest < 1) {\r
+       public int selectRankedIndex(Comparator<T> comparator, int kthLowest) {\r
+               if (kthLowest < 1) {\r
                        throw new GdxRuntimeException("nth_lowest must be greater than 0, 1 = first, 2 = second...");\r
                }\r
-               return Select.instance().selectIndex(items, comparator, nthLowest, size);\r
+               return Select.instance().selectIndex(items, comparator, kthLowest, size);\r
        }\r
 \r
        public void reverse () {\r
index c98d9ba..515b36d 100644 (file)
@@ -31,7 +31,11 @@ public class Select {
        }
 
        public <T> int selectIndex(T[] items, Comparator<T> comp, int kthLowest, int size) {
-               if (size < 1) throw new GdxRuntimeException("cannot select from empty array (size < 1)");
+               if (size < 1) {
+                       throw new GdxRuntimeException("cannot select from empty array (size < 1)");
+               } else if (kthLowest > size) {
+                       throw new GdxRuntimeException("Kth rank is larger than size. k: " + kthLowest + ", size: " + size);
+               }
                int idx;
                // naive partial selection sort almost certain to outperform quickselect where n is min or max
                if (kthLowest == 1) {