OSDN Git Service

added PixelPerfectTest, removed iso cam stuff from ortho camera
authorbadlogic <badlogicgames@gmail.com>
Sun, 6 Oct 2013 13:25:23 +0000 (15:25 +0200)
committerbadlogic <badlogicgames@gmail.com>
Sun, 6 Oct 2013 13:25:23 +0000 (15:25 +0200)
gdx/src/com/badlogic/gdx/graphics/OrthographicCamera.java
tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java
tests/gdx-tests/src/com/badlogic/gdx/tests/IsoCamTest.java [deleted file]
tests/gdx-tests/src/com/badlogic/gdx/tests/PixelPerfectTest.java [new file with mode: 0644]
tests/gdx-tests/src/com/badlogic/gdx/tests/gwt/GwtTestWrapper.java
tests/gdx-tests/src/com/badlogic/gdx/tests/utils/GdxTests.java

index e01a88c..263b80f 100644 (file)
@@ -44,66 +44,6 @@ public class OrthographicCamera extends Camera {
                update();\r
        }\r
 \r
-       /** Constructs a new OrthographicCamera, using the given viewport width and height. This will create a camera useable for\r
-        * iso-metric views. The diamond angle is specifies the angle of a tile viewed isometrically. \r
-        * \r
-        * @param viewportWidth the viewport width\r
-        * @param viewportHeight the viewport height\r
-        * @param diamondAngle the angle in degrees */\r
-       public OrthographicCamera (float viewportWidth, float viewportHeight, float diamondAngle) {\r
-               this.viewportWidth = viewportWidth;\r
-               this.viewportHeight = viewportHeight;\r
-               this.near = 0;\r
-               findDirectionForIsoView(diamondAngle, 0.00000001f, 20);\r
-               update();\r
-       }\r
-\r
-       public void findDirectionForIsoView (float targetAngle, float epsilon, int maxIterations) {\r
-               float start = targetAngle - 5;\r
-               float end = targetAngle + 5;\r
-               float mid = targetAngle;\r
-\r
-               int iterations = 0;\r
-               float aMid = 0;\r
-               while (Math.abs(targetAngle - aMid) > epsilon && iterations++ < maxIterations) {\r
-                       aMid = calculateAngle(mid);\r
-\r
-                       if (targetAngle < aMid) {\r
-                               end = mid;\r
-                       } else {\r
-                               start = mid;\r
-                       }\r
-                       mid = start + (end - start) / 2;\r
-               }\r
-               position.set(calculateDirection(mid));\r
-               position.y = -position.y;\r
-               lookAt(0, 0, 0);\r
-               normalizeUp();\r
-       }\r
-\r
-       private float calculateAngle (float a) {\r
-               Vector3 camPos = calculateDirection(a);\r
-               position.set(camPos.scl(30));\r
-               lookAt(0, 0, 0);\r
-               normalizeUp();\r
-               update();\r
-\r
-               Vector3 orig = new Vector3(0, 0, 0);\r
-               Vector3 vec = new Vector3(1, 0, 0);\r
-               project(orig);\r
-               project(vec);\r
-               Vector2 d = new Vector2(vec.x - orig.x, -(vec.y - orig.y));\r
-               return d.angle();\r
-       }\r
-\r
-       private Vector3 calculateDirection (float angle) {\r
-               Matrix4 transform = new Matrix4();\r
-               Vector3 dir = new Vector3(-1, 0, 1).nor();\r
-               transform.setToRotation(new Vector3(1, 0, 1).nor(), angle);\r
-               dir.mul(transform).nor();\r
-               return dir;\r
-       }\r
-\r
        private final Vector3 tmp = new Vector3();\r
 \r
        @Override\r
index 2726c39..8d13ab9 100644 (file)
@@ -31,6 +31,7 @@ import com.badlogic.gdx.tests.DelaunayTriangulatorTest;
 import com.badlogic.gdx.tests.EarClippingTriangulatorTest;\r
 import com.badlogic.gdx.tests.MeshShaderTest;\r
 import com.badlogic.gdx.tests.MipMapTest;\r
+import com.badlogic.gdx.tests.PixelPerfectTest;\r
 import com.badlogic.gdx.tests.TextureAtlasTest;\r
 import com.badlogic.gdx.tests.TimerTest;\r
 import com.badlogic.gdx.tests.g3d.Basic3DSceneTest;\r
@@ -53,11 +54,11 @@ public class LwjglDebugStarter {
 //             new SharedLibraryLoader("../../extensions/gdx-controllers/gdx-controllers-desktop/libs/gdx-controllers-desktop-natives.jar").load("gdx-controllers-desktop");\r
 //             new SharedLibraryLoader("../../gdx/libs/gdx-natives.jar").load("gdx");\r
 \r
-               GdxTest test = new NetAPITest();\r
+               GdxTest test = new PixelPerfectTest();\r
                LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();\r
                config.useGL20 = test.needsGL20();\r
-               config.width = 1024;\r
-               config.height = 768;\r
+               config.width = 320;\r
+               config.height = 240;\r
                new LwjglApplication(test, config);\r
        }\r
 }\r
diff --git a/tests/gdx-tests/src/com/badlogic/gdx/tests/IsoCamTest.java b/tests/gdx-tests/src/com/badlogic/gdx/tests/IsoCamTest.java
deleted file mode 100644 (file)
index 8b33eb8..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************\r
- * Copyright 2011 See AUTHORS file.\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- *   http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- ******************************************************************************/\r
-\r
-package com.badlogic.gdx.tests;\r
-\r
-import com.badlogic.gdx.Gdx;\r
-import com.badlogic.gdx.InputAdapter;\r
-import com.badlogic.gdx.graphics.Camera;\r
-import com.badlogic.gdx.graphics.GL10;\r
-import com.badlogic.gdx.graphics.OrthographicCamera;\r
-import com.badlogic.gdx.graphics.Texture;\r
-import com.badlogic.gdx.graphics.g2d.Sprite;\r
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;\r
-import com.badlogic.gdx.math.Intersector;\r
-import com.badlogic.gdx.math.Matrix4;\r
-import com.badlogic.gdx.math.Plane;\r
-import com.badlogic.gdx.math.Vector3;\r
-import com.badlogic.gdx.math.collision.Ray;\r
-import com.badlogic.gdx.tests.utils.GdxTest;\r
-\r
-public class IsoCamTest extends GdxTest {\r
-       private static final int TARGET_WIDTH = 480;\r
-       private static final float UNIT_TO_PIXEL = TARGET_WIDTH * 0.15f;\r
-       Texture texture;\r
-       OrthographicCamera cam;\r
-       SpriteBatch batch;\r
-       final Sprite[][] sprites = new Sprite[10][10];\r
-       final Matrix4 matrix = new Matrix4();\r
-\r
-       @Override\r
-       public void create () {\r
-               texture = new Texture(Gdx.files.internal("data/badlogicsmall.jpg"));\r
-               float unitsOnX = (float)Math.sqrt(2) * TARGET_WIDTH / (UNIT_TO_PIXEL);\r
-               float pixelsOnX = Gdx.graphics.getWidth() / unitsOnX;\r
-               float unitsOnY = Gdx.graphics.getHeight() / pixelsOnX;\r
-               cam = new OrthographicCamera(unitsOnX, unitsOnY, 25);\r
-               cam.position.scl(30);\r
-               cam.near = 1;\r
-               cam.far = 1000;\r
-               matrix.setToRotation(new Vector3(1, 0, 0), 90);\r
-\r
-               for (int z = 0; z < 10; z++) {\r
-                       for (int x = 0; x < 10; x++) {\r
-                               sprites[x][z] = new Sprite(texture);\r
-                               sprites[x][z].setPosition(x, z);\r
-                               sprites[x][z].setSize(1, 1);\r
-                       }\r
-               }\r
-\r
-               batch = new SpriteBatch();\r
-\r
-               Gdx.input.setInputProcessor(new IsoCamController(cam));\r
-       }\r
-\r
-       @Override\r
-       public void dispose () {\r
-               texture.dispose();\r
-               batch.dispose();\r
-       }\r
-\r
-       @Override\r
-       public void render () {\r
-               Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);\r
-               cam.update();\r
-\r
-               batch.setProjectionMatrix(cam.combined);\r
-               batch.setTransformMatrix(matrix);\r
-               batch.begin();\r
-               for (int z = 0; z < 10; z++) {\r
-                       for (int x = 0; x < 10; x++) {\r
-                               sprites[x][z].draw(batch);\r
-                       }\r
-               }\r
-               batch.end();\r
-\r
-               checkTileTouched();\r
-       }\r
-\r
-       final Plane xzPlane = new Plane(new Vector3(0, 1, 0), 0);\r
-       final Vector3 intersection = new Vector3();\r
-       Sprite lastSelectedTile = null;\r
-\r
-       private void checkTileTouched () {\r
-               if (Gdx.input.justTouched()) {\r
-                       Ray pickRay = cam.getPickRay(Gdx.input.getX(), Gdx.input.getY());\r
-                       Intersector.intersectRayPlane(pickRay, xzPlane, intersection);\r
-                       System.out.println(intersection);\r
-                       int x = (int)intersection.x;\r
-                       int z = (int)intersection.z;\r
-                       if (x >= 0 && x < 10 && z >= 0 && z < 10) {\r
-                               if (lastSelectedTile != null) lastSelectedTile.setColor(1, 1, 1, 1);\r
-                               Sprite sprite = sprites[x][z];\r
-                               sprite.setColor(1, 0, 0, 1);\r
-                               lastSelectedTile = sprite;\r
-                       }\r
-               }\r
-       }\r
-\r
-       public class IsoCamController extends InputAdapter {\r
-               final Plane xzPlane = new Plane(new Vector3(0, 1, 0), 0);\r
-               final Vector3 intersection = new Vector3();\r
-               final Vector3 curr = new Vector3();\r
-               final Vector3 last = new Vector3(-1, -1, -1);\r
-               final Vector3 delta = new Vector3();\r
-               final Camera camera;\r
-\r
-               public IsoCamController (Camera camera) {\r
-                       this.camera = camera;\r
-               }\r
-\r
-               @Override\r
-               public boolean touchDragged (int x, int y, int pointer) {\r
-                       Ray pickRay = camera.getPickRay(x, y);\r
-                       Intersector.intersectRayPlane(pickRay, xzPlane, curr);\r
-\r
-                       if (!(last.x == -1 && last.y == -1 && last.z == -1)) {\r
-                               pickRay = camera.getPickRay(last.x, last.y);\r
-                               Intersector.intersectRayPlane(pickRay, xzPlane, delta);\r
-                               delta.sub(curr);\r
-                               camera.position.add(delta.x, 0, delta.z);\r
-                       }\r
-                       last.set(x, y, 0);\r
-                       return false;\r
-               }\r
-\r
-               @Override\r
-               public boolean touchUp (int x, int y, int pointer, int button) {\r
-                       last.set(-1, -1, -1);\r
-                       return false;\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public boolean needsGL20 () {\r
-               return false;\r
-       }\r
-\r
-}\r
diff --git a/tests/gdx-tests/src/com/badlogic/gdx/tests/PixelPerfectTest.java b/tests/gdx-tests/src/com/badlogic/gdx/tests/PixelPerfectTest.java
new file mode 100644 (file)
index 0000000..c4d05e8
--- /dev/null
@@ -0,0 +1,42 @@
+package com.badlogic.gdx.tests;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.graphics.Color;
+import com.badlogic.gdx.graphics.GL20;
+import com.badlogic.gdx.graphics.OrthographicCamera;
+import com.badlogic.gdx.graphics.Pixmap;
+import com.badlogic.gdx.graphics.Texture;
+import com.badlogic.gdx.graphics.g2d.SpriteBatch;
+import com.badlogic.gdx.tests.utils.GdxTest;
+
+public class PixelPerfectTest extends GdxTest {
+       SpriteBatch batch;
+       OrthographicCamera cam;
+       Texture tex;
+
+       @Override
+       public void create () {
+               Pixmap pixmap = new Pixmap(16, 16, Pixmap.Format.RGBA8888);
+               pixmap.setColor(Color.BLUE);
+               pixmap.fill();
+               pixmap.setColor(Color.RED);
+               pixmap.drawLine(0, 0, 15, 15);
+               pixmap.drawLine(0, 15, 15, 0);
+               
+               tex = new Texture(pixmap);
+               batch = new SpriteBatch();
+               cam = new OrthographicCamera();
+               cam.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
+       }
+
+       @Override
+       public void render () {
+               Gdx.gl.glClearColor(1, 0, 1, 1);
+               Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
+               cam.update();
+               batch.setProjectionMatrix(cam.combined);
+               batch.begin();
+               batch.draw(tex, 1, 1);
+               batch.end();
+       }
+}
index 4b3ce83..5427b87 100644 (file)
@@ -63,7 +63,6 @@ import com.badlogic.gdx.tests.ImageTest;
 import com.badlogic.gdx.tests.IndexBufferObjectShaderTest;\r
 import com.badlogic.gdx.tests.IntegerBitmapFontTest;\r
 import com.badlogic.gdx.tests.InverseKinematicsTest;\r
-import com.badlogic.gdx.tests.IsoCamTest;\r
 import com.badlogic.gdx.tests.IsometricTileTest;\r
 import com.badlogic.gdx.tests.KinematicBodyTest;\r
 import com.badlogic.gdx.tests.LabelScaleTest;\r
@@ -78,7 +77,6 @@ import com.badlogic.gdx.tests.ParticleEmitterTest;
 import com.badlogic.gdx.tests.PixelsPerInchTest;\r
 import com.badlogic.gdx.tests.ProjectiveTextureTest;\r
 import com.badlogic.gdx.tests.RotationTest;\r
-import com.badlogic.gdx.tests.RunnablePostTest;\r
 import com.badlogic.gdx.tests.ShadowMappingTest;\r
 import com.badlogic.gdx.tests.ShapeRendererTest;\r
 import com.badlogic.gdx.tests.SimpleAnimationTest;\r
@@ -530,10 +528,6 @@ public class GwtTestWrapper extends GdxTest {
                        }\r
                }, new Instancer() {\r
                        public GdxTest instance () {\r
-                               return new IsoCamTest();\r
-                       }\r
-               }, new Instancer() {\r
-                       public GdxTest instance () {\r
                                return new IsometricTileTest();\r
                        }\r
                }, new Instancer() {\r
index b2b6a33..43dedb6 100644 (file)
@@ -65,7 +65,7 @@ public class GdxTests {
                ScrollPaneTest.class, FloatTest.class, FloatTextureTest.class, FrameBufferTest.class, FramebufferToTextureTest.class, FrustumTest.class,\r
                FullscreenTest.class, Gdx2DTest.class, GroupFadeTest.class, ImmediateModeRendererTest.class, Scene2dTest.class,\r
                ImmediateModeRendererAlphaTest.class, IndexBufferObjectClassTest.class, TreeTest.class, IndexBufferObjectShaderTest.class,\r
-               InputTest.class, IntegerBitmapFontTest.class, InverseKinematicsTest.class, IsoCamTest.class, IsometricTileTest.class,\r
+               InputTest.class, IntegerBitmapFontTest.class, InverseKinematicsTest.class, IsometricTileTest.class,\r
                KinematicBodyTest.class, LifeCycleTest.class, LineDrawingTest.class, ScrollPane2Test.class, ManagedTest.class,\r
                ManualBindTest.class, MaterialTest.class, MatrixJNITest.class, MeshMultitextureTest.class, MeshShaderTest.class, MeshTest.class,\r
                MipMapTest.class, MultitouchTest.class, MusicTest.class, MyFirstTriangle.class, ObjTest.class, OnscreenKeyboardTest.class,\r