gdx: pass TileSource to GdxMap constructor

This commit is contained in:
Hannes Janetzek 2013-07-01 04:17:53 +02:00
parent 03d2bad695
commit 1ab86f5ba8
5 changed files with 45 additions and 20 deletions

View File

@ -2,12 +2,13 @@ package org.oscim.gdx;
import org.oscim.android.AndroidLog; import org.oscim.android.AndroidLog;
import org.oscim.android.canvas.AndroidGraphics; import org.oscim.android.canvas.AndroidGraphics;
import org.oscim.backend.AssetAdapter;
import org.oscim.backend.CanvasAdapter; import org.oscim.backend.CanvasAdapter;
import org.oscim.backend.GL20; import org.oscim.backend.GL20;
import org.oscim.backend.GLAdapter; import org.oscim.backend.GLAdapter;
import org.oscim.backend.Log; import org.oscim.backend.Log;
import org.oscim.core.Tile; import org.oscim.core.Tile;
import org.oscim.tilesource.TileSource;
import org.oscim.tilesource.oscimap4.OSciMap4TileSource;
import android.os.Bundle; import android.os.Bundle;
@ -36,6 +37,10 @@ public class MainActivity extends AndroidApplication {
cfg.useGL20 = true; cfg.useGL20 = true;
new SharedLibraryLoader().load("vtm-jni"); 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);
} }
} }

View File

@ -4,6 +4,8 @@ import org.oscim.awt.AwtGraphics;
import org.oscim.backend.CanvasAdapter; import org.oscim.backend.CanvasAdapter;
import org.oscim.backend.GLAdapter; import org.oscim.backend.GLAdapter;
import org.oscim.core.Tile; 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.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
@ -17,17 +19,20 @@ public class Main {
cfg.useGL20 = true; cfg.useGL20 = true;
cfg.width = 1280; cfg.width = 1280;
cfg.height = 800; cfg.height = 800;
cfg.stencil= 8; cfg.stencil = 8;
cfg.foregroundFPS = 20; cfg.foregroundFPS = 20;
//cfg.samples = 4; // cfg.samples = 4;
// set our globals // set our globals
CanvasAdapter.g = AwtGraphics.INSTANCE; CanvasAdapter.g = AwtGraphics.INSTANCE;
GLAdapter.g = new GdxGLAdapter(); GLAdapter.g = new GdxGLAdapter();
Tile.SIZE = 256; 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);
} }
} }

View File

@ -4,18 +4,23 @@ import org.oscim.backend.CanvasAdapter;
import org.oscim.backend.GL20; import org.oscim.backend.GL20;
import org.oscim.backend.GLAdapter; import org.oscim.backend.GLAdapter;
import org.oscim.gdx.GdxMap; import org.oscim.gdx.GdxMap;
import org.oscim.tilesource.TileSource;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
public class GwtGdxMap extends GdxMap { public class GwtGdxMap extends GdxMap {
public GwtGdxMap(TileSource tileSource) {
super(tileSource);
}
@Override @Override
public void create() { public void create() {
CanvasAdapter.g = GwtCanvasAdapter.INSTANCE; CanvasAdapter.g = GwtCanvasAdapter.INSTANCE;
GLAdapter.g = (GL20)Gdx.graphics.getGL20(); GLAdapter.g = (GL20)Gdx.graphics.getGL20();
GLAdapter.GDX_WEBGL_QUIRKS = true; GLAdapter.GDX_WEBGL_QUIRKS = true;
//GLAdapter.NON_PREMUL_CANVAS = true;
//GLAdapter.NON_PREMUL_CANVAS = true;
//Gdx.app.setLogLevel(Application.LOG_DEBUG); //Gdx.app.setLogLevel(Application.LOG_DEBUG);
super.create(); super.create();

View File

@ -2,6 +2,8 @@ package org.oscim.gdx.client;
// -draftCompile -localWorkers 2 // -draftCompile -localWorkers 2
import org.oscim.core.Tile; 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.ApplicationListener;
import com.badlogic.gdx.backends.gwt.GwtApplication; import com.badlogic.gdx.backends.gwt.GwtApplication;
@ -12,10 +14,11 @@ public class GwtLauncher extends GwtApplication {
@Override @Override
public GwtApplicationConfiguration getConfig() { public GwtApplicationConfiguration getConfig() {
GwtApplicationConfiguration cfg = new GwtApplicationConfiguration(GwtGraphics.getWindowWidthJSNI(), GwtApplicationConfiguration cfg = new GwtApplicationConfiguration(
GwtGraphics.getWindowHeightJSNI() ); GwtGraphics.getWindowWidthJSNI(),
GwtGraphics.getWindowHeightJSNI());
cfg.stencil = true; cfg.stencil = true;
cfg.fps = 25; cfg.fps = 30;
return cfg; return cfg;
} }
@ -27,6 +30,14 @@ public class GwtLauncher extends GwtApplication {
else else
Tile.SIZE = 360; 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;
}-*/;
} }

View File

@ -29,7 +29,8 @@ import com.google.gwt.xhr.client.XMLHttpRequest.ResponseType;
public class LwHttp { public class LwHttp {
//private static final String TAG = LwHttp.class.getName(); //private static final String TAG = LwHttp.class.getName();
private final byte[] EXTENSION; private final String mUrlFileExtension;
private final String mUrlPath;
private final byte[] mRequestBuffer; private final byte[] mRequestBuffer;
final boolean mInflateContent; final boolean mInflateContent;
@ -44,7 +45,9 @@ public class LwHttp {
mContentType = contentType; mContentType = contentType;
mInflateContent = deflate; mInflateContent = deflate;
EXTENSION = ("." + extension).getBytes(); mUrlPath = url.toString();
mUrlFileExtension = "." + extension;
mRequestBuffer = new byte[1024]; mRequestBuffer = new byte[1024];
} }
@ -91,11 +94,7 @@ public class LwHttp {
pos = newPos; pos = newPos;
} }
int len = EXTENSION.length; String url = mUrlPath + (new String(request, 0, pos) + mUrlFileExtension);
System.arraycopy(EXTENSION, 0, request, pos, len);
String url = "/tiles" + (new String(request, 0, pos + len));
//Log.d(TAG, "load " + url);
mHttpRequest = XMLHttpRequest.create(); mHttpRequest = XMLHttpRequest.create();
mHttpRequest.open("GET", url); mHttpRequest.open("GET", url);