Kaydet (Commit) 9f77740d authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl Kaydeden (comit) Miklos Vajna

android: force screen to render - add access to LayerClient

Change-Id: Ia65eebd153251985fe736e8f278d46b22a06ec83
üst 0ecf41b4
...@@ -34,20 +34,19 @@ public class LOKitThread extends Thread implements TileProvider.TileInvalidation ...@@ -34,20 +34,19 @@ public class LOKitThread extends Thread implements TileProvider.TileInvalidation
composedTileLayer.addTile(tile); composedTileLayer.addTile(tile);
mLayerClient.endDrawing(mViewportMetrics); mLayerClient.endDrawing(mViewportMetrics);
if (forceRedraw) { if (forceRedraw) {
Log.i(LOGTAG, "Redrawing tile " + tileId); mLayerClient.forceRender();
mLayerClient.forceRedraw();
} }
} }
} }
private void tileRerender(ComposedTileLayer composedTileLayer, SubTile tile) { private void tileRerender(ComposedTileLayer composedTileLayer, SubTile tile) {
if (composedTileLayer.isStillValid(tile.id)) { if (composedTileLayer.isStillValid(tile.id) && !tile.markedForRemoval) {
Log.i(LOGTAG, "Redrawing tile " + tile.id);
mLayerClient.beginDrawing(); mLayerClient.beginDrawing();
mTileProvider.rerenderTile(tile.getImage(), tile.id.x, tile.id.y, tile.id.size, tile.id.zoom); mTileProvider.rerenderTile(tile.getImage(), tile.id.x, tile.id.y, tile.id.size, tile.id.zoom);
tile.invalidate(); tile.invalidate();
Log.i(LOGTAG, "Redrawing tile " + tile.id);
mLayerClient.forceRedraw();
mLayerClient.endDrawing(mViewportMetrics); mLayerClient.endDrawing(mViewportMetrics);
mLayerClient.forceRender();
} }
} }
......
...@@ -397,6 +397,14 @@ public class GeckoLayerClient implements PanZoomTarget, LayerView.Listener { ...@@ -397,6 +397,14 @@ public class GeckoLayerClient implements PanZoomTarget, LayerView.Listener {
} }
} }
public void forceRender() {
post(new Runnable() {
public void run() {
mView.requestRender();
}
});
}
/** Implementation of PanZoomTarget */ /** Implementation of PanZoomTarget */
public boolean post(Runnable action) { public boolean post(Runnable action) {
return mView.post(action); return mView.post(action);
......
...@@ -73,7 +73,6 @@ public abstract class TileLayer extends Layer { ...@@ -73,7 +73,6 @@ public abstract class TileLayer extends Layer {
* Invalidates the entire buffer so that it will be uploaded again. Only valid inside a * Invalidates the entire buffer so that it will be uploaded again. Only valid inside a
* transaction. * transaction.
*/ */
public void invalidate() { public void invalidate() {
if (!inTransaction()) if (!inTransaction())
throw new RuntimeException("invalidate() is only valid inside a transaction"); throw new RuntimeException("invalidate() is only valid inside a transaction");
......
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