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.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);
}
}

View File

@ -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);
}
}

View File

@ -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();

View File

@ -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;
}-*/;
}

View File

@ -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);