Index: cc/trees/layer_tree_impl.cc |
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
index 1014a3f8c5c16446a1752579be7d0061ceddec97..34d51dd05534f18aeb12129120bc19777296756f 100644 |
--- a/cc/trees/layer_tree_impl.cc |
+++ b/cc/trees/layer_tree_impl.cc |
@@ -97,7 +97,9 @@ LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl) |
viewport_size_invalid_(false), |
needs_update_draw_properties_(true), |
needs_full_tree_sync_(true), |
- next_activation_forces_redraw_(false) {} |
+ next_activation_forces_redraw_(false), |
+ calculate_draw_properties_count_(0u) { |
vmpstr
2014/05/02 23:06:27
There is a SourceAnimationFrameNumber, which happe
|
+} |
LayerTreeImpl::~LayerTreeImpl() { |
// Need to explicitly clear the tree prior to destroying this so that |
@@ -457,6 +459,7 @@ void LayerTreeImpl::UpdateDrawProperties() { |
page_scale_layer_ ? page_scale_layer_ : InnerViewportContainerLayer(); |
bool can_render_to_separate_surface = |
!output_surface()->ForcedDrawToSoftwareDevice(); |
+ ++calculate_draw_properties_count_; |
LayerTreeHostCommon::CalcDrawPropsImplInputs inputs( |
root_layer(), |
DrawViewportSize(), |
@@ -490,13 +493,27 @@ void LayerTreeImpl::UpdateDrawProperties() { |
++it) { |
if (!it.represents_itself()) |
continue; |
+ |
LayerImpl* layer = *it; |
+ layer->draw_properties().last_render_surface_list_membership_index = |
vmpstr
2014/05/02 23:06:27
I suspect this should happen in LayerTreeHostCommo
danakj
2014/05/02 23:09:24
Right, the output of CalcDrawProps is the RSLL. If
|
+ calculate_draw_properties_count_; |
layer->UpdateTilePriorities(); |
- if (layer->mask_layer()) |
+ if (layer->mask_layer()) { |
+ layer->mask_layer() |
+ ->draw_properties() |
+ .last_render_surface_list_membership_index = |
+ calculate_draw_properties_count_; |
layer->mask_layer()->UpdateTilePriorities(); |
- if (layer->replica_layer() && layer->replica_layer()->mask_layer()) |
+ } |
+ if (layer->replica_layer() && layer->replica_layer()->mask_layer()) { |
+ layer->replica_layer() |
+ ->mask_layer() |
+ ->draw_properties() |
+ .last_render_surface_list_membership_index = |
+ calculate_draw_properties_count_; |
layer->replica_layer()->mask_layer()->UpdateTilePriorities(); |
+ } |
} |
} |