From 1ab86f5ba8e65532aa50a8a655248318cc4b6720 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Mon, 1 Jul 2013 04:17:53 +0200 Subject: [PATCH] gdx: pass TileSource to GdxMap constructor --- .../src/org/oscim/gdx/MainActivity.java | 9 +++++++-- vtm-gdx-desktop/src/org/oscim/gdx/Main.java | 17 +++++++++++------ .../src/org/oscim/gdx/client/GwtGdxMap.java | 7 ++++++- .../src/org/oscim/gdx/client/GwtLauncher.java | 19 +++++++++++++++---- .../org/oscim/tilesource/common/LwHttp.java | 13 ++++++------- 5 files changed, 45 insertions(+), 20 deletions(-) diff --git a/vtm-gdx-android/src/org/oscim/gdx/MainActivity.java b/vtm-gdx-android/src/org/oscim/gdx/MainActivity.java index 8c65318f..d7488cdf 100644 --- a/vtm-gdx-android/src/org/oscim/gdx/MainActivity.java +++ b/vtm-gdx-android/src/org/oscim/gdx/MainActivity.java @@ -2,12 +2,13 @@ package org.oscim.gdx; import org.oscim.android.AndroidLog; import org.oscim.android.canvas.AndroidGraphics; -import org.oscim.backend.AssetAdapter; import org.oscim.backend.CanvasAdapter; import org.oscim.backend.GL20; import org.oscim.backend.GLAdapter; import org.oscim.backend.Log; import org.oscim.core.Tile; +import org.oscim.tilesource.TileSource; +import org.oscim.tilesource.oscimap4.OSciMap4TileSource; import android.os.Bundle; @@ -36,6 +37,10 @@ public class MainActivity extends AndroidApplication { cfg.useGL20 = true; new SharedLibraryLoader().load("vtm-jni"); - initialize(new GdxMap(), cfg); + + TileSource tileSource = new OSciMap4TileSource(); + tileSource.setOption("url", "http://city.informatik.uni-bremen.de/osci/testing"); + + initialize(new GdxMap(tileSource), cfg); } } \ No newline at end of file diff --git a/vtm-gdx-desktop/src/org/oscim/gdx/Main.java b/vtm-gdx-desktop/src/org/oscim/gdx/Main.java index 73095047..237f148c 100644 --- a/vtm-gdx-desktop/src/org/oscim/gdx/Main.java +++ b/vtm-gdx-desktop/src/org/oscim/gdx/Main.java @@ -4,6 +4,8 @@ import org.oscim.awt.AwtGraphics; import org.oscim.backend.CanvasAdapter; import org.oscim.backend.GLAdapter; import org.oscim.core.Tile; +import org.oscim.tilesource.TileSource; +import org.oscim.tilesource.oscimap4.OSciMap4TileSource; import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; @@ -17,17 +19,20 @@ public class Main { cfg.useGL20 = true; cfg.width = 1280; cfg.height = 800; - cfg.stencil= 8; + cfg.stencil = 8; cfg.foregroundFPS = 20; - //cfg.samples = 4; + // cfg.samples = 4; // set our globals - CanvasAdapter.g = AwtGraphics.INSTANCE; - GLAdapter.g = new GdxGLAdapter(); + CanvasAdapter.g = AwtGraphics.INSTANCE; + GLAdapter.g = new GdxGLAdapter(); Tile.SIZE = 256; - new SharedLibraryLoader().load("vtm-jni"); + new SharedLibraryLoader().load("vtm-jni"); - new LwjglApplication(new GdxMap(), cfg); + TileSource tileSource = new OSciMap4TileSource(); + tileSource.setOption("url", "http://city.informatik.uni-bremen.de/osci/testing"); + + new LwjglApplication(new GdxMap(tileSource), cfg); } } diff --git a/vtm-gdx-html/src/org/oscim/gdx/client/GwtGdxMap.java b/vtm-gdx-html/src/org/oscim/gdx/client/GwtGdxMap.java index 10a192d5..702e0bc9 100644 --- a/vtm-gdx-html/src/org/oscim/gdx/client/GwtGdxMap.java +++ b/vtm-gdx-html/src/org/oscim/gdx/client/GwtGdxMap.java @@ -4,18 +4,23 @@ import org.oscim.backend.CanvasAdapter; import org.oscim.backend.GL20; import org.oscim.backend.GLAdapter; import org.oscim.gdx.GdxMap; +import org.oscim.tilesource.TileSource; import com.badlogic.gdx.Gdx; public class GwtGdxMap extends GdxMap { + public GwtGdxMap(TileSource tileSource) { + super(tileSource); + } + @Override public void create() { CanvasAdapter.g = GwtCanvasAdapter.INSTANCE; GLAdapter.g = (GL20)Gdx.graphics.getGL20(); GLAdapter.GDX_WEBGL_QUIRKS = true; - //GLAdapter.NON_PREMUL_CANVAS = true; + //GLAdapter.NON_PREMUL_CANVAS = true; //Gdx.app.setLogLevel(Application.LOG_DEBUG); super.create(); diff --git a/vtm-gdx-html/src/org/oscim/gdx/client/GwtLauncher.java b/vtm-gdx-html/src/org/oscim/gdx/client/GwtLauncher.java index 0bdb1454..36d580d7 100644 --- a/vtm-gdx-html/src/org/oscim/gdx/client/GwtLauncher.java +++ b/vtm-gdx-html/src/org/oscim/gdx/client/GwtLauncher.java @@ -2,6 +2,8 @@ package org.oscim.gdx.client; // -draftCompile -localWorkers 2 import org.oscim.core.Tile; +import org.oscim.tilesource.TileSource; +import org.oscim.tilesource.oscimap4.OSciMap4TileSource; import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.backends.gwt.GwtApplication; @@ -12,10 +14,11 @@ public class GwtLauncher extends GwtApplication { @Override public GwtApplicationConfiguration getConfig() { - GwtApplicationConfiguration cfg = new GwtApplicationConfiguration(GwtGraphics.getWindowWidthJSNI(), - GwtGraphics.getWindowHeightJSNI() ); + GwtApplicationConfiguration cfg = new GwtApplicationConfiguration( + GwtGraphics.getWindowWidthJSNI(), + GwtGraphics.getWindowHeightJSNI()); cfg.stencil = true; - cfg.fps = 25; + cfg.fps = 30; return cfg; } @@ -27,6 +30,14 @@ public class GwtLauncher extends GwtApplication { else Tile.SIZE = 360; - return new GwtGdxMap(); + String url = getMapConfig("tileurl"); + + TileSource tileSource = new OSciMap4TileSource(); + tileSource.setOption("url", url); + return new GwtGdxMap(tileSource); } + + private static native String getMapConfig(String key)/*-{ + return $wnd.mapconfig && $wnd.mapconfig[key] || null; + }-*/; } diff --git a/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/tilesource/common/LwHttp.java b/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/tilesource/common/LwHttp.java index 09992918..9adcc88d 100644 --- a/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/tilesource/common/LwHttp.java +++ b/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/tilesource/common/LwHttp.java @@ -29,7 +29,8 @@ import com.google.gwt.xhr.client.XMLHttpRequest.ResponseType; public class LwHttp { //private static final String TAG = LwHttp.class.getName(); - private final byte[] EXTENSION; + private final String mUrlFileExtension; + private final String mUrlPath; private final byte[] mRequestBuffer; final boolean mInflateContent; @@ -44,7 +45,9 @@ public class LwHttp { mContentType = contentType; mInflateContent = deflate; - EXTENSION = ("." + extension).getBytes(); + mUrlPath = url.toString(); + mUrlFileExtension = "." + extension; + mRequestBuffer = new byte[1024]; } @@ -91,11 +94,7 @@ public class LwHttp { pos = newPos; } - int len = EXTENSION.length; - System.arraycopy(EXTENSION, 0, request, pos, len); - - String url = "/tiles" + (new String(request, 0, pos + len)); - //Log.d(TAG, "load " + url); + String url = mUrlPath + (new String(request, 0, pos) + mUrlFileExtension); mHttpRequest = XMLHttpRequest.create(); mHttpRequest.open("GET", url);