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

android: define mRootLayer directly as MultiTileLayer

Change-Id: I6a1f6971482ea1de28977d7905ba9fd85921551d
üst df433a70
...@@ -67,7 +67,7 @@ public class GeckoLayerClient implements LayerView.Listener { ...@@ -67,7 +67,7 @@ public class GeckoLayerClient implements LayerView.Listener {
private boolean mRecordDrawTimes; private boolean mRecordDrawTimes;
private DrawTimingQueue mDrawTimingQueue; private DrawTimingQueue mDrawTimingQueue;
private Layer mRootLayer; private MultiTileLayer mRootLayer;
/* The viewport that Gecko is currently displaying. */ /* The viewport that Gecko is currently displaying. */
private ViewportMetrics mGeckoViewport; private ViewportMetrics mGeckoViewport;
...@@ -129,9 +129,7 @@ public class GeckoLayerClient implements LayerView.Listener { ...@@ -129,9 +129,7 @@ public class GeckoLayerClient implements LayerView.Listener {
} }
protected void updateLayerAfterDraw() { protected void updateLayerAfterDraw() {
if (mRootLayer instanceof MultiTileLayer) { mRootLayer.invalidate();
((MultiTileLayer) mRootLayer).invalidate();
}
} }
public void beginDrawing(ViewportMetrics viewportMetrics) { public void beginDrawing(ViewportMetrics viewportMetrics) {
...@@ -250,7 +248,7 @@ public class GeckoLayerClient implements LayerView.Listener { ...@@ -250,7 +248,7 @@ public class GeckoLayerClient implements LayerView.Listener {
synchronized (mLayerController) { synchronized (mLayerController) {
// adjust the page dimensions to account for differences in zoom // adjust the page dimensions to account for differences in zoom
// between the rendered content (which is what the compositor tells us) // between the rendered content (which is what the compositor tells us)
// and our zoom level (which may have diverged). // and our zoom level (which may have diverged).
float ourZoom = mLayerController.getZoomFactor(); float ourZoom = mLayerController.getZoomFactor();
pageWidth = pageWidth * ourZoom / zoom; pageWidth = pageWidth * ourZoom / zoom;
pageHeight = pageHeight * ourZoom /zoom; pageHeight = pageHeight * ourZoom /zoom;
...@@ -273,16 +271,11 @@ public class GeckoLayerClient implements LayerView.Listener { ...@@ -273,16 +271,11 @@ public class GeckoLayerClient implements LayerView.Listener {
} }
public List<SubTile> getTiles() { public List<SubTile> getTiles() {
if (mRootLayer instanceof MultiTileLayer) { return mRootLayer.getTiles();
return ((MultiTileLayer) mRootLayer).getTiles();
}
return null;
} }
public void addTile(SubTile tile) { public void addTile(SubTile tile) {
if (mRootLayer instanceof MultiTileLayer) { mRootLayer.addTile(tile);
((MultiTileLayer) mRootLayer).addTile(tile);
}
} }
@Override @Override
......
...@@ -42,7 +42,6 @@ import android.graphics.Point; ...@@ -42,7 +42,6 @@ import android.graphics.Point;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.RectF; import android.graphics.RectF;
import android.graphics.Region; import android.graphics.Region;
import android.util.Log;
import java.util.List; import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
...@@ -95,8 +94,6 @@ public class MultiTileLayer extends Layer { ...@@ -95,8 +94,6 @@ public class MultiTileLayer extends Layer {
} }
private void validateTiles() { private void validateTiles() {
Log.i(LOGTAG, "validateTiles()");
// Set tile origins and resolution // Set tile origins and resolution
Point origin = new Point(); Point origin = new Point();
refreshTileMetrics(origin, getResolution(), false); refreshTileMetrics(origin, getResolution(), false);
...@@ -120,8 +117,9 @@ public class MultiTileLayer extends Layer { ...@@ -120,8 +117,9 @@ public class MultiTileLayer extends Layer {
RectF layerBounds = layer.getBounds(context); RectF layerBounds = layer.getBounds(context);
if (!RectF.intersects(layerBounds, context.viewport)) { if (!RectF.intersects(layerBounds, context.viewport)) {
if (firstDirtyTile == null) if (firstDirtyTile == null) {
firstDirtyTile = layer; firstDirtyTile = layer;
}
dirtyTiles++; dirtyTiles++;
} else { } else {
// This tile intersects with the screen and is dirty, // This tile intersects with the screen and is dirty,
...@@ -196,8 +194,9 @@ public class MultiTileLayer extends Layer { ...@@ -196,8 +194,9 @@ public class MultiTileLayer extends Layer {
for (SubTile layer : mTiles) { for (SubTile layer : mTiles) {
// Avoid work, only draw tiles that intersect with the viewport // Avoid work, only draw tiles that intersect with the viewport
RectF layerBounds = layer.getBounds(context); RectF layerBounds = layer.getBounds(context);
if (RectF.intersects(layerBounds, context.viewport)) if (RectF.intersects(layerBounds, context.viewport)) {
layer.draw(context); layer.draw(context);
}
} }
} }
......
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