OSDN Git Service

[added] support for disabling automatic loading of gdx natives (GdxNativesLodaer...
authorbadlogicgames <badlogicgames@6c4fd544-2939-11df-bb46-9574ba5d0bfa>
Sat, 26 Mar 2011 11:17:01 +0000 (11:17 +0000)
committerbadlogicgames <badlogicgames@6c4fd544-2939-11df-bb46-9574ba5d0bfa>
Sat, 26 Mar 2011 11:17:01 +0000 (11:17 +0000)
[fixed] TextureRegion.split() was borked.

12 files changed:
backends/gdx-backend-jogl/src/com/badlogic/gdx/backends/jogl/JoglNativesLoader.java
backends/gdx-backend-lwjgl/src/com/badlogic/gdx/backends/lwjgl/LwjglNativesLoader.java
gdx/src/com/badlogic/gdx/graphics/g2d/TextureRegion.java
tests/gdx-tests-android/assets/data/animation.png [new file with mode: 0644]
tests/gdx-tests-jogl/data/animation.png [new file with mode: 0644]
tests/gdx-tests-jogl/src/com/badlogic/gdx/tests/jogl/JoglDebugStarter.java
tests/gdx-tests-lwjgl/data/animation.png [new file with mode: 0644]
tests/gdx-tests/src/com/badlogic/gdx/tests/ActionTest.java
tests/gdx-tests/src/com/badlogic/gdx/tests/ComplexActionTest.java [new file with mode: 0644]
tests/gdx-tests/src/com/badlogic/gdx/tests/SimpleAnimationTest.java [new file with mode: 0644]
tests/gdx-tests/src/com/badlogic/gdx/tests/StagePerformanceTest.java
tests/gdx-tests/src/com/badlogic/gdx/tests/utils/GdxTests.java

index f91878c..2133c8b 100644 (file)
@@ -26,6 +26,7 @@ public class JoglNativesLoader {
         */\r
        static void load () {\r
                GdxNativesLoader.load();\r
+               if(GdxNativesLoader.disableNativesLoading) return;\r
 \r
                if (nativesLoaded) return;\r
 \r
index b6f88ce..514837e 100644 (file)
@@ -41,6 +41,7 @@ final class LwjglNativesLoader {
 \r
        static void load () {\r
                GdxNativesLoader.load();\r
+               if(GdxNativesLoader.disableNativesLoading) return;\r
                if (!load) return;\r
                if (isWindows) {\r
                        extractLibrary("OpenAL32.dll", "OpenAL64.dll");\r
index 9991f3f..a8fa9ed 100644 (file)
@@ -252,8 +252,10 @@ public class TextureRegion {
                int rows = height / tileHeight;\r
                int cols = width / tileWidth;           \r
                \r
+               int startX = x;\r
                TextureRegion[][] tiles = new TextureRegion[rows][cols];                \r
                for(int row = 0; row < rows; row++, y += tileHeight) {\r
+                       x = startX;\r
                        for(int col = 0; col < cols; col++, x += tileWidth) {\r
                                tiles[row][col] = new TextureRegion(texture, x, y, tileWidth, tileHeight);\r
                        }\r
diff --git a/tests/gdx-tests-android/assets/data/animation.png b/tests/gdx-tests-android/assets/data/animation.png
new file mode 100644 (file)
index 0000000..8ac3106
Binary files /dev/null and b/tests/gdx-tests-android/assets/data/animation.png differ
diff --git a/tests/gdx-tests-jogl/data/animation.png b/tests/gdx-tests-jogl/data/animation.png
new file mode 100644 (file)
index 0000000..8ac3106
Binary files /dev/null and b/tests/gdx-tests-jogl/data/animation.png differ
index 3915d03..27e150f 100644 (file)
@@ -18,6 +18,6 @@ import com.badlogic.gdx.backends.jogl.JoglApplication;
 public class JoglDebugStarter {\r
 \r
        public static void main (String[] argv) {\r
-               new JoglApplication(new com.badlogic.gdx.tests.FramebufferToTextureTest(), "Debug Test", 480, 320, false);\r
+               new JoglApplication(new com.badlogic.gdx.tests.SimpleAnimationTest(), "Debug Test", 480, 320, false);\r
        }\r
 }\r
diff --git a/tests/gdx-tests-lwjgl/data/animation.png b/tests/gdx-tests-lwjgl/data/animation.png
new file mode 100644 (file)
index 0000000..8ac3106
Binary files /dev/null and b/tests/gdx-tests-lwjgl/data/animation.png differ
index e2eeeea..e551821 100644 (file)
@@ -8,8 +8,10 @@ import com.badlogic.gdx.scenes.scene2d.Action;
 import com.badlogic.gdx.scenes.scene2d.OnActionCompleted;\r
 import com.badlogic.gdx.scenes.scene2d.Stage;\r
 import com.badlogic.gdx.scenes.scene2d.actions.FadeTo;\r
-import com.badlogic.gdx.scenes.scene2d.actions.Forever;\r
+import com.badlogic.gdx.scenes.scene2d.actions.MoveBy;\r
 import com.badlogic.gdx.scenes.scene2d.actions.Parallel;\r
+import com.badlogic.gdx.scenes.scene2d.actions.Remove;\r
+import com.badlogic.gdx.scenes.scene2d.actions.Repeat;\r
 import com.badlogic.gdx.scenes.scene2d.actions.RotateBy;\r
 import com.badlogic.gdx.scenes.scene2d.actions.ScaleTo;\r
 import com.badlogic.gdx.scenes.scene2d.actions.Sequence;\r
@@ -80,15 +82,23 @@ public class ActionTest extends GdxTest implements OnActionCompleted {
 //             img.action(Parallel.$(Sequence.$(FadeOut.$(2), FadeIn.$(2)),\r
 //                     Sequence.$(ScaleTo.$(0.1f, 0.1f, 1.5f), ScaleTo.$(1.0f, 1.0f, 1.5f))).setCompletionListener(listener));\r
                \r
-               img.action(\r
-         Forever.$(\r
-            Sequence.$(\r
-                     Parallel.$(RotateBy.$(180, 2), ScaleTo.$(1.4f, 1.4f, 2), FadeTo.$(0.7f, 2)), \r
-                     Parallel.$(RotateBy.$(180, 2), ScaleTo.$(1.0f, 1.0f, 2), FadeTo.$(1.0f, 2))\r
-                  )\r
-               )\r
-        );\r
-       \r
+//             img.action( \r
+//            Sequence.$(\r
+//                     Parallel.$(RotateBy.$(180, 2), ScaleTo.$(1.4f, 1.4f, 2), FadeTo.$(0.7f, 2)), \r
+//                     Parallel.$(RotateBy.$(180, 2), ScaleTo.$(1.0f, 1.0f, 2), FadeTo.$(1.0f, 2)),\r
+//                     Remove.$()\r
+//                  )\r
+//               );                    \r
+               \r
+               Action action = Repeat.$(Sequence.$(\r
+                       MoveBy.$(8, 0, 0.03f),\r
+                       MoveBy.$(-16, 0, 0.03f),\r
+                       MoveBy.$(8, 8, 0.03f),\r
+                       MoveBy.$(0, -8, 0.03f)), 20);\r
+\r
+               Action action2 = action.copy();\r
+               img.action(action2);\r
+               \r
                stage.addActor(img);\r
        }\r
 \r
diff --git a/tests/gdx-tests/src/com/badlogic/gdx/tests/ComplexActionTest.java b/tests/gdx-tests/src/com/badlogic/gdx/tests/ComplexActionTest.java
new file mode 100644 (file)
index 0000000..6080742
--- /dev/null
@@ -0,0 +1,68 @@
+package com.badlogic.gdx.tests;\r
+\r
+import com.badlogic.gdx.Gdx;\r
+import com.badlogic.gdx.graphics.GL10;\r
+import com.badlogic.gdx.graphics.Texture;\r
+import com.badlogic.gdx.graphics.Texture.TextureFilter;\r
+import com.badlogic.gdx.scenes.scene2d.Action;\r
+import com.badlogic.gdx.scenes.scene2d.Stage;\r
+import com.badlogic.gdx.scenes.scene2d.actions.FadeTo;\r
+import com.badlogic.gdx.scenes.scene2d.actions.Forever;\r
+import com.badlogic.gdx.scenes.scene2d.actions.Parallel;\r
+import com.badlogic.gdx.scenes.scene2d.actions.RotateBy;\r
+import com.badlogic.gdx.scenes.scene2d.actions.ScaleTo;\r
+import com.badlogic.gdx.scenes.scene2d.actions.Sequence;\r
+import com.badlogic.gdx.scenes.scene2d.actors.Image;\r
+import com.badlogic.gdx.tests.utils.GdxTest;\r
+\r
+public class ComplexActionTest extends GdxTest {\r
+\r
+       @Override\r
+       public boolean needsGL20() {\r
+               return false;\r
+       }\r
+\r
+       Stage stage;\r
+\r
+       @Override\r
+       public void create() {\r
+               stage = new Stage(480,320, true);\r
+               \r
+               Action complexAction = Forever.$(\r
+                   Sequence.$(\r
+                            Parallel.$(RotateBy.$(180, 2), ScaleTo.$(1.4f, 1.4f, 2), FadeTo.$(0.7f, 2)), \r
+                            Parallel.$(RotateBy.$(180, 2), ScaleTo.$(1.0f, 1.0f, 2), FadeTo.$(1.0f, 2))\r
+                         )\r
+                      );\r
+               \r
+               Texture texture = new Texture(Gdx.files.internal("data/badlogic.jpg"), false);\r
+               texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);\r
+               \r
+               final Image img1 = new Image("SampleActor1", texture);\r
+               \r
+               img1.width = img1.height = 100;\r
+               img1.originX = 50;\r
+               img1.originY = 50;\r
+               img1.x = img1.y = 50;\r
+               \r
+               final Image img2 = new Image("SampleActor1", texture);\r
+               \r
+               img2.width = img1.height = 50;\r
+               img2.originX = 50;\r
+               img2.originY = 50;\r
+               img2.x = img2.y = 150;\r
+               \r
+               stage.addActor(img1);\r
+               stage.addActor(img2);\r
+               \r
+               img1.action(complexAction.copy());\r
+               img2.action(complexAction.copy());\r
+       }\r
+       \r
+       @Override\r
+       public void render() {\r
+               Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);\r
+               stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f));\r
+               stage.draw();\r
+       }\r
+}
\ No newline at end of file
diff --git a/tests/gdx-tests/src/com/badlogic/gdx/tests/SimpleAnimationTest.java b/tests/gdx-tests/src/com/badlogic/gdx/tests/SimpleAnimationTest.java
new file mode 100644 (file)
index 0000000..843a124
--- /dev/null
@@ -0,0 +1,111 @@
+package com.badlogic.gdx.tests;\r
+\r
+import com.badlogic.gdx.Gdx;\r
+import com.badlogic.gdx.InputProcessor;\r
+import com.badlogic.gdx.graphics.GL10;\r
+import com.badlogic.gdx.graphics.Texture;\r
+import com.badlogic.gdx.graphics.g2d.Animation;\r
+import com.badlogic.gdx.graphics.g2d.SpriteBatch;\r
+import com.badlogic.gdx.graphics.g2d.TextureRegion;\r
+import com.badlogic.gdx.math.Vector2;\r
+import com.badlogic.gdx.tests.utils.GdxTest;\r
+\r
+public class SimpleAnimationTest extends GdxTest implements InputProcessor {\r
+\r
+       @Override public boolean needsGL20 () {\r
+               return false;\r
+       }\r
+\r
+   private Animation currentWalk;\r
+   private float currentFrameTime;\r
+   private Vector2 position;\r
+   \r
+   private Texture tex;\r
+   \r
+   private Animation downWalk;\r
+   private Animation leftWalk;\r
+   private Animation rightWalk;\r
+   private Animation upWalk;\r
+   \r
+   private SpriteBatch spriteBatch;\r
+   \r
+   private static final float ANIMATION_SPEED = 0.2f;\r
+   \r
+   @Override\r
+   public void create()\r
+   {\r
+      Gdx.input.setInputProcessor(this);\r
+      tex = new Texture(Gdx.files.internal("data/animation.png"));\r
+      TextureRegion[][] regions = TextureRegion.split(tex, 32, 48);\r
+      TextureRegion[] downWalkReg = regions[0];\r
+      TextureRegion[] leftWalkReg = regions[1];\r
+      TextureRegion[] rightWalkReg = regions[2];\r
+      TextureRegion[] upWalkReg = regions[3];\r
+      downWalk = new Animation(ANIMATION_SPEED, downWalkReg);\r
+      leftWalk = new Animation(ANIMATION_SPEED, leftWalkReg);\r
+      rightWalk = new Animation(ANIMATION_SPEED, rightWalkReg);\r
+      upWalk = new Animation(ANIMATION_SPEED, upWalkReg);\r
+      \r
+      currentWalk = leftWalk;\r
+      currentFrameTime = 0.0f;\r
+      \r
+      spriteBatch = new SpriteBatch();\r
+      position = new Vector2();\r
+   }\r
+\r
+   @Override\r
+   public void render() \r
+   {\r
+      Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);\r
+      currentFrameTime += Gdx.graphics.getDeltaTime();\r
+      \r
+      spriteBatch.begin();\r
+      TextureRegion frame = currentWalk.getKeyFrame(currentFrameTime, true);\r
+      spriteBatch.draw(frame, position.x, position.y);\r
+      spriteBatch.end();\r
+   }\r
+\r
+\r
+   @Override\r
+   public boolean touchDown(int x, int y, int pointer, int button) {\r
+      position.x = x;\r
+      position.y = -y + 48;\r
+      //System.out.println(position);\r
+      return true;\r
+   }\r
+\r
+       @Override public boolean keyDown (int keycode) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+\r
+       @Override public boolean keyUp (int keycode) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+\r
+       @Override public boolean keyTyped (char character) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+\r
+       @Override public boolean touchUp (int x, int y, int pointer, int button) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+\r
+       @Override public boolean touchDragged (int x, int y, int pointer) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+\r
+       @Override public boolean touchMoved (int x, int y) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+\r
+       @Override public boolean scrolled (int amount) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+}\r
index d7033f6..1cf72ec 100644 (file)
@@ -1,16 +1,19 @@
 package com.badlogic.gdx.tests;\r
 \r
+import java.util.List;\r
 import java.util.Random;\r
 \r
 import com.badlogic.gdx.Gdx;\r
 import com.badlogic.gdx.graphics.GL10;\r
 import com.badlogic.gdx.graphics.Texture;\r
-import com.badlogic.gdx.graphics.Texture.TextureFilter;\r
 import com.badlogic.gdx.graphics.g2d.BitmapFont;\r
 import com.badlogic.gdx.graphics.g2d.Sprite;\r
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;\r
 import com.badlogic.gdx.graphics.g2d.TextureRegion;\r
+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.actors.FastImage;\r
 import com.badlogic.gdx.scenes.scene2d.actors.Image;\r
 import com.badlogic.gdx.tests.utils.GdxTest;\r
 \r
@@ -44,7 +47,7 @@ public class StagePerformanceTest extends GdxTest {
                Random rand = new Random();\r
                for(int y = 0, i = 0; y < 12; y++) {\r
                        for(int x = 0; x < 24; x++) {\r
-                               Image img = new Image("img" + i, regions[rand.nextInt(8 * 8)]);\r
+                               FastImage img = new FastImage("img" + i, regions[rand.nextInt(8 * 8)]);\r
                                img.x = x; img.y = y;\r
                                img.width = 1; img.height = 1;\r
                                stage.addActor(img);\r
@@ -62,12 +65,19 @@ public class StagePerformanceTest extends GdxTest {
                if(useStage) {\r
                        stage.act(Gdx.graphics.getDeltaTime());\r
                        stage.getSpriteBatch().disableBlending();\r
+                       Group root = stage.getRoot();\r
+                       List<Actor> actors = root.getActors();\r
+//                     for(int i = 0; i < actors.size(); i++) {\r
+//                             actors.get(i).rotation += 45 * Gdx.graphics.getDeltaTime();\r
+//                     }\r
                        stage.draw();   \r
                } else {                \r
                        batch.getProjectionMatrix().setToOrtho2D(0, 0, 24, 12);\r
+                       batch.getTransformMatrix().idt();\r
                        batch.disableBlending();\r
                        batch.begin();\r
                        for(int i = 0; i < sprites.length; i++) {\r
+//                             sprites[i].rotate(45 * Gdx.graphics.getDeltaTime());\r
                                sprites[i].draw(batch);\r
                        }               \r
                        batch.end();\r
index 0386032..73e24ed 100644 (file)
@@ -29,6 +29,7 @@ import com.badlogic.gdx.tests.BobTest;
 import com.badlogic.gdx.tests.Box2DTest;\r
 import com.badlogic.gdx.tests.Box2DTestCollection;\r
 import com.badlogic.gdx.tests.CompassTest;\r
+import com.badlogic.gdx.tests.ComplexActionTest;\r
 import com.badlogic.gdx.tests.CullTest;\r
 import com.badlogic.gdx.tests.DeltaTimeTest;\r
 import com.badlogic.gdx.tests.FilesTest;\r
@@ -68,6 +69,7 @@ import com.badlogic.gdx.tests.ProjectTest;
 import com.badlogic.gdx.tests.RemoteTest;\r
 import com.badlogic.gdx.tests.RotationTest;\r
 import com.badlogic.gdx.tests.ShaderMultitextureTest;\r
+import com.badlogic.gdx.tests.SimpleAnimationTest;\r
 import com.badlogic.gdx.tests.SimpleTest;\r
 import com.badlogic.gdx.tests.SoundTest;\r
 import com.badlogic.gdx.tests.SplineTest;\r
@@ -126,6 +128,7 @@ public class GdxTests
                Box2DTest.class,\r
                Box2DTestCollection.class,\r
                CompassTest.class,\r
+               ComplexActionTest.class,\r
                CullTest.class,\r
                DeltaTimeTest.class,\r
                FilesTest.class,\r
@@ -165,6 +168,7 @@ public class GdxTests
                ShaderMultitextureTest.class,\r
                SplineTest.class,               \r
                SimpleTest.class,\r
+               SimpleAnimationTest.class,\r
                SoundTest.class,\r
                SpriteCacheTest.class,\r
                SpriteCacheOffsetTest.class,\r