Index: cc/layers/picture_layer_impl.cc |
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc |
index 8db30c6de29089607882224caa72d8d3fb6a4cd0..7d6e2e4af8074dd9e8a2c5b9622b52d7a87e2209 100644 |
--- a/cc/layers/picture_layer_impl.cc |
+++ b/cc/layers/picture_layer_impl.cc |
@@ -283,7 +283,7 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass, |
// normally the same as draw viewport but can be independently overridden by |
// embedders like Android WebView with SetExternalDrawConstraints. |
gfx::Rect scaled_viewport_for_tile_priority = gfx::ScaleToEnclosingRect( |
- GetViewportForTilePriorityInContentSpace(), max_contents_scale); |
+ viewport_rect_for_tile_priority_in_content_space_, max_contents_scale); |
size_t missing_tile_count = 0u; |
size_t on_demand_missing_tile_count = 0u; |
@@ -474,8 +474,7 @@ bool PictureLayerImpl::UpdateTilePriorities( |
double current_frame_time_in_seconds = |
(layer_tree_impl()->CurrentBeginFrameArgs().frame_time - |
base::TimeTicks()).InSecondsF(); |
- gfx::Rect viewport_rect_in_layer_space = |
- GetViewportForTilePriorityInContentSpace(); |
+ CacheViewportForTilePriorityInContentSpace(); |
// The tiling set can require tiles for activation any of the following |
// conditions are true: |
@@ -496,21 +495,21 @@ bool PictureLayerImpl::UpdateTilePriorities( |
// Pass |occlusion_in_content_space| for |occlusion_in_layer_space| since |
// they are the same space in picture layer, as contents scale is always 1. |
bool updated = tilings_->UpdateTilePriorities( |
- viewport_rect_in_layer_space, ideal_contents_scale_, |
+ viewport_rect_for_tile_priority_in_content_space_, ideal_contents_scale_, |
current_frame_time_in_seconds, occlusion_in_content_space, |
can_require_tiles_for_activation); |
return updated; |
} |
-gfx::Rect PictureLayerImpl::GetViewportForTilePriorityInContentSpace() const { |
+void PictureLayerImpl::CacheViewportForTilePriorityInContentSpace() { |
danakj
2015/01/21 22:32:18
s/CacheViewportFor/UpdateViewportRectFor/
hush (inactive)
2015/01/21 22:40:46
Done.
|
// If visible_rect_for_tile_priority_ is empty or |
// viewport_rect_for_tile_priority is set to be different from the device |
// viewport, try to inverse project the viewport into layer space and use |
// that. Otherwise just use visible_rect_for_tile_priority_ |
gfx::Rect visible_rect_in_content_space = visible_rect_for_tile_priority_; |
+ |
danakj
2015/01/21 22:32:18
don't add whitespace
hush (inactive)
2015/01/21 22:40:46
Done.
|
gfx::Rect viewport_rect_for_tile_priority = |
layer_tree_impl()->ViewportRectForTilePriority(); |
- |
if (visible_rect_in_content_space.IsEmpty() || |
layer_tree_impl()->DeviceViewport() != viewport_rect_for_tile_priority) { |
gfx::Transform view_to_layer(gfx::Transform::kSkipInitialization); |
@@ -521,7 +520,8 @@ gfx::Rect PictureLayerImpl::GetViewportForTilePriorityInContentSpace() const { |
view_to_layer, viewport_rect_for_tile_priority)); |
} |
} |
- return visible_rect_in_content_space; |
+ viewport_rect_for_tile_priority_in_content_space_ = |
+ visible_rect_in_content_space; |
} |
PictureLayerImpl* PictureLayerImpl::GetPendingOrActiveTwinLayer() const { |
@@ -1180,7 +1180,8 @@ void PictureLayerImpl::AsValueInto(base::debug::TracedValue* state) const { |
state->EndArray(); |
state->BeginArray("tile_priority_rect"); |
- MathUtil::AddToTracedValue(GetViewportForTilePriorityInContentSpace(), state); |
+ MathUtil::AddToTracedValue(viewport_rect_for_tile_priority_in_content_space_, |
+ state); |
state->EndArray(); |
state->BeginArray("visible_rect"); |
@@ -1245,7 +1246,7 @@ bool PictureLayerImpl::AllTilesRequiredAreReadyToDraw( |
if (visible_rect_for_tile_priority_.IsEmpty()) |
return true; |
- gfx::Rect rect = GetViewportForTilePriorityInContentSpace(); |
+ gfx::Rect rect = viewport_rect_for_tile_priority_in_content_space_; |
rect.Intersect(visible_rect_for_tile_priority_); |
// The high resolution tiling is the only tiling that can mark tiles as |