diff --git a/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLayer.java b/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLayer.java index 9d192109..fca6b19e 100644 --- a/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLayer.java +++ b/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLayer.java @@ -104,10 +104,16 @@ public class BitmapTileLayer extends TileLayer { return new BitmapTileLoader(this, mTileSource); } + @Override + public void onDetach() { + super.onDetach(); + pool.clear(); + } + final static int POOL_FILL = 40; /** pool shared by TextLayers */ - final static TexturePool pool = new TexturePool(POOL_FILL) { + final TexturePool pool = new TexturePool(POOL_FILL) { // int sum = 0; // diff --git a/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLoader.java b/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLoader.java index ad4c2905..7035585e 100644 --- a/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLoader.java +++ b/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLoader.java @@ -21,7 +21,6 @@ import static org.oscim.layers.tile.MapTile.State.CANCEL; import org.oscim.backend.canvas.Bitmap; import org.oscim.core.Tile; import org.oscim.layers.tile.MapTile; -import org.oscim.layers.tile.TileLayer; import org.oscim.layers.tile.TileLoader; import org.oscim.renderer.elements.BitmapLayer; import org.oscim.renderer.elements.ElementLayers; @@ -35,10 +34,12 @@ public class BitmapTileLoader extends TileLoader { protected static final Logger log = LoggerFactory.getLogger(BitmapTileLoader.class); private final ITileDataSource mTileDataSource; + private final BitmapTileLayer mLayer; - public BitmapTileLoader(TileLayer tileLayer, TileSource tileSource) { + public BitmapTileLoader(BitmapTileLayer tileLayer, TileSource tileSource) { super(tileLayer.getManager()); mTileDataSource = tileSource.getDataSource(); + mLayer = tileLayer; } @Override @@ -58,7 +59,7 @@ public class BitmapTileLoader extends TileLoader { return; BitmapLayer l = new BitmapLayer(false); - l.setBitmap(bitmap, Tile.SIZE, Tile.SIZE, BitmapTileLayer.pool); + l.setBitmap(bitmap, Tile.SIZE, Tile.SIZE, mLayer.pool); ElementLayers layers = new ElementLayers(); layers.setTextureLayers(l);