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 { ...@@ -27,11 +27,13 @@ public class LOKitThread extends Thread {
} }
private void tileRequest(ComposedTileLayer composedTileLayer, TileIdentifier tileId) { private void tileRequest(ComposedTileLayer composedTileLayer, TileIdentifier tileId) {
mLayerClient.beginDrawing(); if (composedTileLayer.isStillValid(tileId)) {
CairoImage image = mTileProvider.createTile(tileId.x, tileId.y, tileId.size, tileId.zoom); mLayerClient.beginDrawing();
SubTile tile = new SubTile(image, tileId); CairoImage image = mTileProvider.createTile(tileId.x, tileId.y, tileId.size, tileId.zoom);
composedTileLayer.addTile(tile); SubTile tile = new SubTile(image, tileId);
mLayerClient.endDrawing(mViewportMetrics); composedTileLayer.addTile(tile);
mLayerClient.endDrawing(mViewportMetrics);
}
} }
/** Handle the geometry change + draw. */ /** Handle the geometry change + draw. */
......
...@@ -201,4 +201,8 @@ public abstract class ComposedTileLayer extends Layer { ...@@ -201,4 +201,8 @@ public abstract class ComposedTileLayer extends Layer {
tile.beginTransaction(); tile.beginTransaction();
tiles.add(tile); 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