diff --git a/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/TileLoader.java b/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/TileLoader.java index 4079c3d1..80d30058 100644 --- a/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/TileLoader.java +++ b/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/TileLoader.java @@ -14,6 +14,7 @@ */ package org.oscim.layers.tile; +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.Timer; public abstract class TileLoader { @@ -52,7 +53,7 @@ public abstract class TileLoader { public void proceed() { mPausing = false; // FIXME - hasWork = false; + mWorking = false; if (!mTileManager.jobQueue.isEmpty()) go(); } @@ -64,33 +65,31 @@ public abstract class TileLoader { public void start() { mPausing = false; } - boolean hasWork; + + boolean mWorking; public void go() { - if (hasWork) + if (mWorking) { + return; + } + + MapTile tile = mTileManager.jobQueue.poll(); + + if (tile == null) return; - final TileLoader loader = this; - mTimer.scheduleTask(new Timer.Task() { + try { + tile.loader = this; + executeJob(tile); - @Override - public void run() { + mWorking = true; - MapTile tile = mTileManager.jobQueue.poll(); + } catch (Exception e) { + e.printStackTrace(); - if (tile == null) - return; - - try { - tile.loader = loader; - executeJob(tile); - } catch (Exception e) { - e.printStackTrace(); - return; - } - } - }, 0.01f); - hasWork = true; + tile.clear(); + jobCompleted(tile, false); + } } public void jobCompleted(MapTile tile, boolean success) { @@ -100,8 +99,18 @@ public abstract class TileLoader { mTileManager.passTile(tile); } } - hasWork = false; - if (!mPausing && !mTileManager.jobQueue.isEmpty()) - go(); + mWorking = false; + + if (!mPausing && !mTileManager.jobQueue.isEmpty()){ + + Gdx.app.postRunnable(new Runnable(){ + + @Override + public void run() { + go(); + } + } + ); + } } } diff --git a/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/bitmap/BitmapTileLayer.java b/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/bitmap/BitmapTileLayer.java index afad3489..e8d3cf7d 100644 --- a/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/bitmap/BitmapTileLayer.java +++ b/vtm-gdx-html/src/org/oscim/gdx/emu/org/oscim/layers/tile/bitmap/BitmapTileLayer.java @@ -76,7 +76,6 @@ public class BitmapTileLayer extends TileLayer { tile.loader.jobCompleted(tile, false); } }); - } @Override @@ -88,6 +87,7 @@ public class BitmapTileLayer extends TileLayer { loadImage(tile, url.toString()); } catch (Exception e) { e.printStackTrace(); + tile.loader.jobCompleted(tile, false); return false; }