use one TexturePool per BitmapTileLayer

- dispose textures onDetach()
This commit is contained in:
Hannes Janetzek 2014-04-01 03:45:43 +02:00
parent b45e38ef4d
commit a37b503628
2 changed files with 11 additions and 4 deletions

View File

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

View File

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