set MapTile.STATE_CANCEL when tile is cleared
in TileManager.jobCompleted clear tile when tile state is CANCEL
This commit is contained in:
parent
e76b0a3740
commit
25c95da80c
@ -61,6 +61,8 @@ public class MapTile extends Tile {
|
||||
*/
|
||||
public final static byte STATE_ERROR = 1 << 3;
|
||||
|
||||
public final static byte STATE_CANCEL = 1 << 4;
|
||||
|
||||
/**
|
||||
* absolute tile coordinates: tileX,Y / Math.pow(2, zoomLevel)
|
||||
*/
|
||||
@ -89,7 +91,7 @@ public class MapTile extends Tile {
|
||||
}
|
||||
|
||||
/**
|
||||
* Tile is in view region. Set by GLRenderer.
|
||||
* Tile is in view region. Set by TileRenderer.
|
||||
*/
|
||||
public boolean isVisible;
|
||||
|
||||
@ -100,7 +102,6 @@ public class MapTile extends Tile {
|
||||
|
||||
/**
|
||||
* to avoid drawing a tile twice per frame
|
||||
* FIXME what if multiple layers use the same tile?
|
||||
*/
|
||||
int lastDraw = 0;
|
||||
|
||||
|
||||
@ -17,9 +17,9 @@
|
||||
|
||||
package org.oscim.tiling;
|
||||
|
||||
import static org.oscim.tiling.MapTile.STATE_CANCEL;
|
||||
import static org.oscim.tiling.MapTile.STATE_LOADING;
|
||||
import static org.oscim.tiling.MapTile.STATE_NEW_DATA;
|
||||
import static org.oscim.tiling.MapTile.STATE_NONE;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@ -29,7 +29,6 @@ import org.oscim.core.Tile;
|
||||
import org.oscim.map.Map;
|
||||
import org.oscim.map.Viewport;
|
||||
import org.oscim.renderer.BufferObject;
|
||||
import org.oscim.renderer.MapRenderer;
|
||||
import org.oscim.utils.FastMath;
|
||||
import org.oscim.utils.ScanBox;
|
||||
import org.oscim.utils.quadtree.QuadTree;
|
||||
@ -383,13 +382,14 @@ public class TileManager {
|
||||
if (t == null)
|
||||
return;
|
||||
|
||||
t.clear();
|
||||
|
||||
mIndex.remove(t);
|
||||
|
||||
// QuadTree.remove(t);
|
||||
t.state = STATE_NONE;
|
||||
synchronized (t) {
|
||||
// still belongs to TileLoader thread
|
||||
if (t.state != STATE_LOADING)
|
||||
t.clear();
|
||||
|
||||
t.state = STATE_CANCEL;
|
||||
mIndex.remove(t);
|
||||
}
|
||||
mTilesCount--;
|
||||
}
|
||||
|
||||
@ -527,8 +527,7 @@ public class TileManager {
|
||||
* @return caller does not care
|
||||
*/
|
||||
public void jobCompleted(MapTile tile, boolean success) {
|
||||
|
||||
if (!success) {
|
||||
if (!success || tile.state == STATE_CANCEL) {
|
||||
tile.clear();
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user