Index: cc/layer_tree_impl.cc |
diff --git a/cc/layer_tree_impl.cc b/cc/layer_tree_impl.cc |
index 0dff769b565b5453e44e336d719f376dd362bb91..34f06bdb134833765fffafddf57b3faf841eaa33 100644 |
--- a/cc/layer_tree_impl.cc |
+++ b/cc/layer_tree_impl.cc |
@@ -121,9 +121,19 @@ void LayerTreeImpl::UpdateMaxScrollOffset() { |
root_scroll_layer_->setMaxScrollOffset(gfx::ToFlooredVector2d(max_scroll)); |
} |
-void LayerTreeImpl::UpdateDrawProperties() { |
- if (!needs_update_draw_properties_) |
+struct UpdateTilePrioritiesForLayer { |
+ void operator()(LayerImpl *layer) { |
+ layer->updateTilePriorities(); |
+ } |
+}; |
+ |
+void LayerTreeImpl::UpdateDrawProperties(UpdateDrawPropertiesReason reason) { |
+ if (!needs_update_draw_properties_) { |
+ if (reason == UPDATE_ACTIVE_TREE_FOR_DRAW && RootLayer()) |
+ LayerTreeHostCommon::callFunctionForSubtree<UpdateTilePrioritiesForLayer>( |
enne (OOO)
2013/01/25 20:59:10
I think this might be unneeded.
You should only n
danakj
2013/01/25 21:18:15
The idea is that if you update draw props on scrol
|
+ RootLayer()); |
return; |
+ } |
needs_update_draw_properties_ = false; |
render_surface_layer_list_.clear(); |
@@ -144,6 +154,9 @@ void LayerTreeImpl::UpdateDrawProperties() { |
{ |
TRACE_EVENT1("cc", "LayerTreeImpl::UpdateDrawProperties", "IsActive", IsActiveTree()); |
+ bool update_tile_priorities = |
+ reason == UPDATE_PENDING_TREE || |
+ reason == UPDATE_ACTIVE_TREE_FOR_DRAW; |
LayerTreeHostCommon::calculateDrawProperties( |
RootLayer(), |
device_viewport_size(), |
@@ -151,7 +164,8 @@ void LayerTreeImpl::UpdateDrawProperties() { |
pinch_zoom_viewport().page_scale_factor(), |
MaxTextureSize(), |
settings().canUseLCDText, |
- render_surface_layer_list_); |
+ render_surface_layer_list_, |
+ update_tile_priorities); |
} |
DCHECK(!needs_update_draw_properties_) << |