Kaydet (Commit) 8daef363 authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl

android: skip tiles that are already outside of viewport

Change-Id: I65f286797b459f30885560577a4dcb3d1108c0bf
üst abc818fa
......@@ -27,11 +27,13 @@ public class LOKitThread extends Thread {
}
private void tileRequest(ComposedTileLayer composedTileLayer, TileIdentifier tileId) {
mLayerClient.beginDrawing();
CairoImage image = mTileProvider.createTile(tileId.x, tileId.y, tileId.size, tileId.zoom);
SubTile tile = new SubTile(image, tileId);
composedTileLayer.addTile(tile);
mLayerClient.endDrawing(mViewportMetrics);
if (composedTileLayer.isStillValid(tileId)) {
mLayerClient.beginDrawing();
CairoImage image = mTileProvider.createTile(tileId.x, tileId.y, tileId.size, tileId.zoom);
SubTile tile = new SubTile(image, tileId);
composedTileLayer.addTile(tile);
mLayerClient.endDrawing(mViewportMetrics);
}
}
/** Handle the geometry change + draw. */
......
......@@ -201,4 +201,8 @@ public abstract class ComposedTileLayer extends Layer {
tile.beginTransaction();
tiles.add(tile);
}
public boolean isStillValid(TileIdentifier tileId) {
return RectF.intersects(currentViewport, tileId.getRect()) || currentViewport.contains(tileId.getRect());
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment