Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: cc/trees/layer_tree.cc

Issue 2650583013: cc: Remove internal Inputs struct from LayerTree (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/trees/layer_tree.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree.h" 5 #include "cc/trees/layer_tree.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "cc/input/page_scale_animation.h" 9 #include "cc/input/page_scale_animation.h"
10 #include "cc/layers/heads_up_display_layer.h" 10 #include "cc/layers/heads_up_display_layer.h"
11 #include "cc/layers/heads_up_display_layer_impl.h" 11 #include "cc/layers/heads_up_display_layer_impl.h"
12 #include "cc/layers/layer.h" 12 #include "cc/layers/layer.h"
13 #include "cc/trees/layer_tree_host.h" 13 #include "cc/trees/layer_tree_host.h"
14 #include "cc/trees/layer_tree_host_common.h" 14 #include "cc/trees/layer_tree_host_common.h"
15 #include "cc/trees/layer_tree_impl.h" 15 #include "cc/trees/layer_tree_impl.h"
16 #include "cc/trees/mutator_host.h" 16 #include "cc/trees/mutator_host.h"
17 #include "cc/trees/property_tree_builder.h" 17 #include "cc/trees/property_tree_builder.h"
18 18
19 namespace cc { 19 namespace cc {
20 20
21 LayerTree::Inputs::Inputs()
22 : top_controls_height(0.f),
23 top_controls_shown_ratio(0.f),
24 browser_controls_shrink_blink_size(false),
25 bottom_controls_height(0.f),
26 device_scale_factor(1.f),
27 painted_device_scale_factor(1.f),
28 page_scale_factor(1.f),
29 min_page_scale_factor(1.f),
30 max_page_scale_factor(1.f),
31 background_color(SK_ColorWHITE),
32 has_transparent_background(false),
33 have_scroll_event_handlers(false),
34 event_listener_properties() {}
35
36 LayerTree::Inputs::~Inputs() = default;
37
38 LayerTree::LayerTree(MutatorHost* mutator_host, LayerTreeHost* layer_tree_host) 21 LayerTree::LayerTree(MutatorHost* mutator_host, LayerTreeHost* layer_tree_host)
39 : needs_full_tree_sync_(true), 22 : top_controls_height_(0.f),
danakj 2017/01/25 22:26:30 if you don't mind.. while you're here.. it'd be ni
Khushal 2017/01/25 22:36:25 Done. :)
23 top_controls_shown_ratio_(0.f),
24 browser_controls_shrink_blink_size_(false),
25 bottom_controls_height_(0.f),
26 device_scale_factor_(1.f),
27 painted_device_scale_factor_(1.f),
28 page_scale_factor_(1.f),
29 min_page_scale_factor_(1.f),
30 max_page_scale_factor_(1.f),
31 background_color_(SK_ColorWHITE),
32 has_transparent_background_(false),
33 have_scroll_event_handlers_(false),
34 event_listener_properties_(),
35 needs_full_tree_sync_(true),
40 needs_meta_info_recomputation_(true), 36 needs_meta_info_recomputation_(true),
41 in_paint_layer_contents_(false), 37 in_paint_layer_contents_(false),
42 mutator_host_(mutator_host), 38 mutator_host_(mutator_host),
43 layer_tree_host_(layer_tree_host) { 39 layer_tree_host_(layer_tree_host) {
44 DCHECK(mutator_host_); 40 DCHECK(mutator_host_);
45 DCHECK(layer_tree_host_); 41 DCHECK(layer_tree_host_);
46 mutator_host_->SetMutatorHostClient(this); 42 mutator_host_->SetMutatorHostClient(this);
47 } 43 }
48 44
49 LayerTree::~LayerTree() { 45 LayerTree::~LayerTree() {
50 mutator_host_->SetMutatorHostClient(nullptr); 46 mutator_host_->SetMutatorHostClient(nullptr);
51 47
52 // We must clear any pointers into the layer tree prior to destroying it. 48 // We must clear any pointers into the layer tree prior to destroying it.
53 RegisterViewportLayers(nullptr, nullptr, nullptr, nullptr); 49 RegisterViewportLayers(nullptr, nullptr, nullptr, nullptr);
54 50
55 if (inputs_.root_layer) { 51 if (root_layer_) {
56 inputs_.root_layer->SetLayerTreeHost(nullptr); 52 root_layer_->SetLayerTreeHost(nullptr);
57 53
58 // The root layer must be destroyed before the layer tree. We've made a 54 // The root layer must be destroyed before the layer tree. We've made a
59 // contract with our animation controllers that the animation_host will 55 // contract with our animation controllers that the animation_host will
60 // outlive them, and we must make good. 56 // outlive them, and we must make good.
61 inputs_.root_layer = nullptr; 57 root_layer_ = nullptr;
62 } 58 }
63 } 59 }
64 60
65 void LayerTree::SetRootLayer(scoped_refptr<Layer> root_layer) { 61 void LayerTree::SetRootLayer(scoped_refptr<Layer> root_layer) {
66 if (inputs_.root_layer.get() == root_layer.get()) 62 if (root_layer_.get() == root_layer.get())
67 return; 63 return;
68 64
69 if (inputs_.root_layer.get()) 65 if (root_layer_.get())
70 inputs_.root_layer->SetLayerTreeHost(nullptr); 66 root_layer_->SetLayerTreeHost(nullptr);
71 inputs_.root_layer = root_layer; 67 root_layer_ = root_layer;
72 if (inputs_.root_layer.get()) { 68 if (root_layer_.get()) {
73 DCHECK(!inputs_.root_layer->parent()); 69 DCHECK(!root_layer_->parent());
74 inputs_.root_layer->SetLayerTreeHost(layer_tree_host_); 70 root_layer_->SetLayerTreeHost(layer_tree_host_);
75 } 71 }
76 72
77 if (hud_layer_.get()) 73 if (hud_layer_.get())
78 hud_layer_->RemoveFromParent(); 74 hud_layer_->RemoveFromParent();
79 75
80 // Reset gpu rasterization tracking. 76 // Reset gpu rasterization tracking.
81 // This flag is sticky until a new tree comes along. 77 // This flag is sticky until a new tree comes along.
82 layer_tree_host_->ResetGpuRasterizationTracking(); 78 layer_tree_host_->ResetGpuRasterizationTracking();
83 79
84 SetNeedsFullTreeSync(); 80 SetNeedsFullTreeSync();
85 } 81 }
86 82
87 void LayerTree::RegisterViewportLayers( 83 void LayerTree::RegisterViewportLayers(
88 scoped_refptr<Layer> overscroll_elasticity_layer, 84 scoped_refptr<Layer> overscroll_elasticity_layer,
89 scoped_refptr<Layer> page_scale_layer, 85 scoped_refptr<Layer> page_scale_layer,
90 scoped_refptr<Layer> inner_viewport_scroll_layer, 86 scoped_refptr<Layer> inner_viewport_scroll_layer,
91 scoped_refptr<Layer> outer_viewport_scroll_layer) { 87 scoped_refptr<Layer> outer_viewport_scroll_layer) {
92 DCHECK(!inner_viewport_scroll_layer || 88 DCHECK(!inner_viewport_scroll_layer ||
93 inner_viewport_scroll_layer != outer_viewport_scroll_layer); 89 inner_viewport_scroll_layer != outer_viewport_scroll_layer);
94 inputs_.overscroll_elasticity_layer = overscroll_elasticity_layer; 90 overscroll_elasticity_layer_ = overscroll_elasticity_layer;
95 inputs_.page_scale_layer = page_scale_layer; 91 page_scale_layer_ = page_scale_layer;
96 inputs_.inner_viewport_scroll_layer = inner_viewport_scroll_layer; 92 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer;
97 inputs_.outer_viewport_scroll_layer = outer_viewport_scroll_layer; 93 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer;
98 } 94 }
99 95
100 void LayerTree::RegisterSelection(const LayerSelection& selection) { 96 void LayerTree::RegisterSelection(const LayerSelection& selection) {
101 if (inputs_.selection == selection) 97 if (selection_ == selection)
102 return; 98 return;
103 99
104 inputs_.selection = selection; 100 selection_ = selection;
105 SetNeedsCommit(); 101 SetNeedsCommit();
106 } 102 }
107 103
108 void LayerTree::SetHaveScrollEventHandlers(bool have_event_handlers) { 104 void LayerTree::SetHaveScrollEventHandlers(bool have_event_handlers) {
109 if (inputs_.have_scroll_event_handlers == have_event_handlers) 105 if (have_scroll_event_handlers_ == have_event_handlers)
110 return; 106 return;
111 107
112 inputs_.have_scroll_event_handlers = have_event_handlers; 108 have_scroll_event_handlers_ = have_event_handlers;
113 SetNeedsCommit(); 109 SetNeedsCommit();
114 } 110 }
115 111
116 void LayerTree::SetEventListenerProperties(EventListenerClass event_class, 112 void LayerTree::SetEventListenerProperties(EventListenerClass event_class,
117 EventListenerProperties properties) { 113 EventListenerProperties properties) {
118 const size_t index = static_cast<size_t>(event_class); 114 const size_t index = static_cast<size_t>(event_class);
119 if (inputs_.event_listener_properties[index] == properties) 115 if (event_listener_properties_[index] == properties)
120 return; 116 return;
121 117
122 inputs_.event_listener_properties[index] = properties; 118 event_listener_properties_[index] = properties;
123 SetNeedsCommit(); 119 SetNeedsCommit();
124 } 120 }
125 121
126 void LayerTree::SetViewportSize(const gfx::Size& device_viewport_size) { 122 void LayerTree::SetViewportSize(const gfx::Size& device_viewport_size) {
127 if (inputs_.device_viewport_size == device_viewport_size) 123 if (device_viewport_size_ == device_viewport_size)
128 return; 124 return;
129 125
130 inputs_.device_viewport_size = device_viewport_size; 126 device_viewport_size_ = device_viewport_size;
131 127
132 SetPropertyTreesNeedRebuild(); 128 SetPropertyTreesNeedRebuild();
133 SetNeedsCommit(); 129 SetNeedsCommit();
134 } 130 }
135 131
136 void LayerTree::SetBrowserControlsHeight(float height, bool shrink) { 132 void LayerTree::SetBrowserControlsHeight(float height, bool shrink) {
137 if (inputs_.top_controls_height == height && 133 if (top_controls_height_ == height &&
138 inputs_.browser_controls_shrink_blink_size == shrink) 134 browser_controls_shrink_blink_size_ == shrink)
139 return; 135 return;
140 136
141 inputs_.top_controls_height = height; 137 top_controls_height_ = height;
142 inputs_.browser_controls_shrink_blink_size = shrink; 138 browser_controls_shrink_blink_size_ = shrink;
143 SetNeedsCommit(); 139 SetNeedsCommit();
144 } 140 }
145 141
146 void LayerTree::SetBrowserControlsShownRatio(float ratio) { 142 void LayerTree::SetBrowserControlsShownRatio(float ratio) {
147 if (inputs_.top_controls_shown_ratio == ratio) 143 if (top_controls_shown_ratio_ == ratio)
148 return; 144 return;
149 145
150 inputs_.top_controls_shown_ratio = ratio; 146 top_controls_shown_ratio_ = ratio;
151 SetNeedsCommit(); 147 SetNeedsCommit();
152 } 148 }
153 149
154 void LayerTree::SetBottomControlsHeight(float height) { 150 void LayerTree::SetBottomControlsHeight(float height) {
155 if (inputs_.bottom_controls_height == height) 151 if (bottom_controls_height_ == height)
156 return; 152 return;
157 153
158 inputs_.bottom_controls_height = height; 154 bottom_controls_height_ = height;
159 SetNeedsCommit(); 155 SetNeedsCommit();
160 } 156 }
161 157
162 void LayerTree::SetPageScaleFactorAndLimits(float page_scale_factor, 158 void LayerTree::SetPageScaleFactorAndLimits(float page_scale_factor,
163 float min_page_scale_factor, 159 float min_page_scale_factor,
164 float max_page_scale_factor) { 160 float max_page_scale_factor) {
165 if (inputs_.page_scale_factor == page_scale_factor && 161 if (page_scale_factor_ == page_scale_factor &&
166 inputs_.min_page_scale_factor == min_page_scale_factor && 162 min_page_scale_factor_ == min_page_scale_factor &&
167 inputs_.max_page_scale_factor == max_page_scale_factor) 163 max_page_scale_factor_ == max_page_scale_factor)
168 return; 164 return;
169 165
170 inputs_.page_scale_factor = page_scale_factor; 166 page_scale_factor_ = page_scale_factor;
171 inputs_.min_page_scale_factor = min_page_scale_factor; 167 min_page_scale_factor_ = min_page_scale_factor;
172 inputs_.max_page_scale_factor = max_page_scale_factor; 168 max_page_scale_factor_ = max_page_scale_factor;
173 SetPropertyTreesNeedRebuild(); 169 SetPropertyTreesNeedRebuild();
174 SetNeedsCommit(); 170 SetNeedsCommit();
175 } 171 }
176 172
177 void LayerTree::StartPageScaleAnimation(const gfx::Vector2d& target_offset, 173 void LayerTree::StartPageScaleAnimation(const gfx::Vector2d& target_offset,
178 bool use_anchor, 174 bool use_anchor,
179 float scale, 175 float scale,
180 base::TimeDelta duration) { 176 base::TimeDelta duration) {
181 inputs_.pending_page_scale_animation.reset(new PendingPageScaleAnimation( 177 pending_page_scale_animation_.reset(new PendingPageScaleAnimation(
182 target_offset, use_anchor, scale, duration)); 178 target_offset, use_anchor, scale, duration));
183 179
184 SetNeedsCommit(); 180 SetNeedsCommit();
185 } 181 }
186 182
187 bool LayerTree::HasPendingPageScaleAnimation() const { 183 bool LayerTree::HasPendingPageScaleAnimation() const {
188 return !!inputs_.pending_page_scale_animation.get(); 184 return !!pending_page_scale_animation_.get();
189 } 185 }
190 186
191 void LayerTree::SetDeviceScaleFactor(float device_scale_factor) { 187 void LayerTree::SetDeviceScaleFactor(float device_scale_factor) {
192 if (inputs_.device_scale_factor == device_scale_factor) 188 if (device_scale_factor_ == device_scale_factor)
193 return; 189 return;
194 inputs_.device_scale_factor = device_scale_factor; 190 device_scale_factor_ = device_scale_factor;
195 191
196 property_trees_.needs_rebuild = true; 192 property_trees_.needs_rebuild = true;
197 SetNeedsCommit(); 193 SetNeedsCommit();
198 } 194 }
199 195
200 void LayerTree::SetPaintedDeviceScaleFactor(float painted_device_scale_factor) { 196 void LayerTree::SetPaintedDeviceScaleFactor(float painted_device_scale_factor) {
201 if (inputs_.painted_device_scale_factor == painted_device_scale_factor) 197 if (painted_device_scale_factor_ == painted_device_scale_factor)
202 return; 198 return;
203 inputs_.painted_device_scale_factor = painted_device_scale_factor; 199 painted_device_scale_factor_ = painted_device_scale_factor;
204 200
205 SetNeedsCommit(); 201 SetNeedsCommit();
206 } 202 }
207 203
208 void LayerTree::SetDeviceColorSpace(const gfx::ColorSpace& device_color_space) { 204 void LayerTree::SetDeviceColorSpace(const gfx::ColorSpace& device_color_space) {
209 if (inputs_.device_color_space == device_color_space) 205 if (device_color_space_ == device_color_space)
210 return; 206 return;
211 inputs_.device_color_space = device_color_space; 207 device_color_space_ = device_color_space;
212 LayerTreeHostCommon::CallFunctionForEveryLayer( 208 LayerTreeHostCommon::CallFunctionForEveryLayer(
213 this, [](Layer* layer) { layer->SetNeedsDisplay(); }); 209 this, [](Layer* layer) { layer->SetNeedsDisplay(); });
214 } 210 }
215 211
216 void LayerTree::RegisterLayer(Layer* layer) { 212 void LayerTree::RegisterLayer(Layer* layer) {
217 DCHECK(!LayerById(layer->id())); 213 DCHECK(!LayerById(layer->id()));
218 DCHECK(!in_paint_layer_contents_); 214 DCHECK(!in_paint_layer_contents_);
219 layer_id_map_[layer->id()] = layer; 215 layer_id_map_[layer->id()] = layer;
220 if (layer->element_id()) { 216 if (layer->element_id()) {
221 mutator_host_->RegisterElement(layer->element_id(), 217 mutator_host_->RegisterElement(layer->element_id(),
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 return layers_that_should_push_properties_.find(layer) != 266 return layers_that_should_push_properties_.find(layer) !=
271 layers_that_should_push_properties_.end(); 267 layers_that_should_push_properties_.end();
272 } 268 }
273 269
274 void LayerTree::SetNeedsMetaInfoRecomputation(bool needs_recomputation) { 270 void LayerTree::SetNeedsMetaInfoRecomputation(bool needs_recomputation) {
275 needs_meta_info_recomputation_ = needs_recomputation; 271 needs_meta_info_recomputation_ = needs_recomputation;
276 } 272 }
277 273
278 void LayerTree::SetPageScaleFromImplSide(float page_scale) { 274 void LayerTree::SetPageScaleFromImplSide(float page_scale) {
279 DCHECK(layer_tree_host_->CommitRequested()); 275 DCHECK(layer_tree_host_->CommitRequested());
280 inputs_.page_scale_factor = page_scale; 276 page_scale_factor_ = page_scale;
281 SetPropertyTreesNeedRebuild(); 277 SetPropertyTreesNeedRebuild();
282 } 278 }
283 279
284 void LayerTree::SetElasticOverscrollFromImplSide( 280 void LayerTree::SetElasticOverscrollFromImplSide(
285 gfx::Vector2dF elastic_overscroll) { 281 gfx::Vector2dF elastic_overscroll) {
286 DCHECK(layer_tree_host_->CommitRequested()); 282 DCHECK(layer_tree_host_->CommitRequested());
287 elastic_overscroll_ = elastic_overscroll; 283 elastic_overscroll_ = elastic_overscroll;
288 } 284 }
289 285
290 void LayerTree::UpdateHudLayer(bool show_hud_info) { 286 void LayerTree::UpdateHudLayer(bool show_hud_info) {
291 if (show_hud_info) { 287 if (show_hud_info) {
292 if (!hud_layer_.get()) { 288 if (!hud_layer_.get()) {
293 hud_layer_ = HeadsUpDisplayLayer::Create(); 289 hud_layer_ = HeadsUpDisplayLayer::Create();
294 } 290 }
295 291
296 if (inputs_.root_layer.get() && !hud_layer_->parent()) 292 if (root_layer_.get() && !hud_layer_->parent())
297 inputs_.root_layer->AddChild(hud_layer_); 293 root_layer_->AddChild(hud_layer_);
298 } else if (hud_layer_.get()) { 294 } else if (hud_layer_.get()) {
299 hud_layer_->RemoveFromParent(); 295 hud_layer_->RemoveFromParent();
300 hud_layer_ = nullptr; 296 hud_layer_ = nullptr;
301 } 297 }
302 } 298 }
303 299
304 void LayerTree::SetNeedsFullTreeSync() { 300 void LayerTree::SetNeedsFullTreeSync() {
305 needs_full_tree_sync_ = true; 301 needs_full_tree_sync_ = true;
306 needs_meta_info_recomputation_ = true; 302 needs_meta_info_recomputation_ = true;
307 303
(...skipping 18 matching lines...) Expand all
326 tree_impl->set_needs_full_tree_sync(needs_full_tree_sync_); 322 tree_impl->set_needs_full_tree_sync(needs_full_tree_sync_);
327 needs_full_tree_sync_ = false; 323 needs_full_tree_sync_ = false;
328 324
329 if (hud_layer_.get()) { 325 if (hud_layer_.get()) {
330 LayerImpl* hud_impl = tree_impl->LayerById(hud_layer_->id()); 326 LayerImpl* hud_impl = tree_impl->LayerById(hud_layer_->id());
331 tree_impl->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl)); 327 tree_impl->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl));
332 } else { 328 } else {
333 tree_impl->set_hud_layer(nullptr); 329 tree_impl->set_hud_layer(nullptr);
334 } 330 }
335 331
336 tree_impl->set_background_color(inputs_.background_color); 332 tree_impl->set_background_color(background_color_);
337 tree_impl->set_has_transparent_background(inputs_.has_transparent_background); 333 tree_impl->set_has_transparent_background(has_transparent_background_);
338 tree_impl->set_have_scroll_event_handlers(inputs_.have_scroll_event_handlers); 334 tree_impl->set_have_scroll_event_handlers(have_scroll_event_handlers_);
339 tree_impl->set_event_listener_properties( 335 tree_impl->set_event_listener_properties(
340 EventListenerClass::kTouchStartOrMove, 336 EventListenerClass::kTouchStartOrMove,
341 event_listener_properties(EventListenerClass::kTouchStartOrMove)); 337 event_listener_properties(EventListenerClass::kTouchStartOrMove));
342 tree_impl->set_event_listener_properties( 338 tree_impl->set_event_listener_properties(
343 EventListenerClass::kMouseWheel, 339 EventListenerClass::kMouseWheel,
344 event_listener_properties(EventListenerClass::kMouseWheel)); 340 event_listener_properties(EventListenerClass::kMouseWheel));
345 tree_impl->set_event_listener_properties( 341 tree_impl->set_event_listener_properties(
346 EventListenerClass::kTouchEndOrCancel, 342 EventListenerClass::kTouchEndOrCancel,
347 event_listener_properties(EventListenerClass::kTouchEndOrCancel)); 343 event_listener_properties(EventListenerClass::kTouchEndOrCancel));
348 344
349 if (inputs_.page_scale_layer && inputs_.inner_viewport_scroll_layer) { 345 if (page_scale_layer_ && inner_viewport_scroll_layer_) {
350 tree_impl->SetViewportLayersFromIds( 346 tree_impl->SetViewportLayersFromIds(
351 inputs_.overscroll_elasticity_layer 347 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id()
352 ? inputs_.overscroll_elasticity_layer->id() 348 : Layer::INVALID_ID,
353 : Layer::INVALID_ID, 349 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(),
354 inputs_.page_scale_layer->id(), 350 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id()
355 inputs_.inner_viewport_scroll_layer->id(), 351 : Layer::INVALID_ID);
356 inputs_.outer_viewport_scroll_layer 352 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers());
357 ? inputs_.outer_viewport_scroll_layer->id()
358 : Layer::INVALID_ID);
359 DCHECK(inputs_.inner_viewport_scroll_layer
360 ->IsContainerForFixedPositionLayers());
361 } else { 353 } else {
362 tree_impl->ClearViewportLayers(); 354 tree_impl->ClearViewportLayers();
363 } 355 }
364 356
365 tree_impl->RegisterSelection(inputs_.selection); 357 tree_impl->RegisterSelection(selection_);
366 358
367 bool property_trees_changed_on_active_tree = 359 bool property_trees_changed_on_active_tree =
368 tree_impl->IsActiveTree() && tree_impl->property_trees()->changed; 360 tree_impl->IsActiveTree() && tree_impl->property_trees()->changed;
369 // Property trees may store damage status. We preserve the sync tree damage 361 // Property trees may store damage status. We preserve the sync tree damage
370 // status by pushing the damage status from sync tree property trees to main 362 // status by pushing the damage status from sync tree property trees to main
371 // thread property trees or by moving it onto the layers. 363 // thread property trees or by moving it onto the layers.
372 if (inputs_.root_layer && property_trees_changed_on_active_tree) { 364 if (root_layer_ && property_trees_changed_on_active_tree) {
373 if (property_trees_.sequence_number == 365 if (property_trees_.sequence_number ==
374 tree_impl->property_trees()->sequence_number) 366 tree_impl->property_trees()->sequence_number)
375 tree_impl->property_trees()->PushChangeTrackingTo(&property_trees_); 367 tree_impl->property_trees()->PushChangeTrackingTo(&property_trees_);
376 else 368 else
377 tree_impl->MoveChangeTrackingToLayers(); 369 tree_impl->MoveChangeTrackingToLayers();
378 } 370 }
379 // Setting property trees must happen before pushing the page scale. 371 // Setting property trees must happen before pushing the page scale.
380 tree_impl->SetPropertyTrees(&property_trees_); 372 tree_impl->SetPropertyTrees(&property_trees_);
381 373
382 tree_impl->PushPageScaleFromMainThread(inputs_.page_scale_factor, 374 tree_impl->PushPageScaleFromMainThread(
383 inputs_.min_page_scale_factor, 375 page_scale_factor_, min_page_scale_factor_, max_page_scale_factor_);
384 inputs_.max_page_scale_factor);
385 376
386 tree_impl->set_browser_controls_shrink_blink_size( 377 tree_impl->set_browser_controls_shrink_blink_size(
387 inputs_.browser_controls_shrink_blink_size); 378 browser_controls_shrink_blink_size_);
388 tree_impl->set_top_controls_height(inputs_.top_controls_height); 379 tree_impl->set_top_controls_height(top_controls_height_);
389 tree_impl->set_bottom_controls_height(inputs_.bottom_controls_height); 380 tree_impl->set_bottom_controls_height(bottom_controls_height_);
390 tree_impl->PushBrowserControlsFromMainThread( 381 tree_impl->PushBrowserControlsFromMainThread(top_controls_shown_ratio_);
391 inputs_.top_controls_shown_ratio);
392 tree_impl->elastic_overscroll()->PushFromMainThread(elastic_overscroll_); 382 tree_impl->elastic_overscroll()->PushFromMainThread(elastic_overscroll_);
393 if (tree_impl->IsActiveTree()) 383 if (tree_impl->IsActiveTree())
394 tree_impl->elastic_overscroll()->PushPendingToActive(); 384 tree_impl->elastic_overscroll()->PushPendingToActive();
395 385
396 tree_impl->set_painted_device_scale_factor( 386 tree_impl->set_painted_device_scale_factor(painted_device_scale_factor_);
397 inputs_.painted_device_scale_factor);
398 387
399 tree_impl->SetDeviceColorSpace(inputs_.device_color_space); 388 tree_impl->SetDeviceColorSpace(device_color_space_);
400 389
401 if (inputs_.pending_page_scale_animation) { 390 if (pending_page_scale_animation_) {
402 tree_impl->SetPendingPageScaleAnimation( 391 tree_impl->SetPendingPageScaleAnimation(
403 std::move(inputs_.pending_page_scale_animation)); 392 std::move(pending_page_scale_animation_));
404 } 393 }
405 394
406 DCHECK(!tree_impl->ViewportSizeInvalid()); 395 DCHECK(!tree_impl->ViewportSizeInvalid());
407 396
408 tree_impl->set_has_ever_been_drawn(false); 397 tree_impl->set_has_ever_been_drawn(false);
409 } 398 }
410 399
411 Layer* LayerTree::LayerByElementId(ElementId element_id) const { 400 Layer* LayerTree::LayerByElementId(ElementId element_id) const {
412 ElementLayersMap::const_iterator iter = element_layers_map_.find(element_id); 401 ElementLayersMap::const_iterator iter = element_layers_map_.find(element_id);
413 return iter != element_layers_map_.end() ? iter->second : nullptr; 402 return iter != element_layers_map_.end() ? iter->second : nullptr;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 } 496 }
508 497
509 gfx::ScrollOffset LayerTree::GetScrollOffsetForAnimation( 498 gfx::ScrollOffset LayerTree::GetScrollOffsetForAnimation(
510 ElementId element_id) const { 499 ElementId element_id) const {
511 Layer* layer = LayerByElementId(element_id); 500 Layer* layer = LayerByElementId(element_id);
512 DCHECK(layer); 501 DCHECK(layer);
513 return layer->ScrollOffsetForAnimation(); 502 return layer->ScrollOffsetForAnimation();
514 } 503 }
515 504
516 LayerListIterator<Layer> LayerTree::begin() const { 505 LayerListIterator<Layer> LayerTree::begin() const {
517 return LayerListIterator<Layer>(inputs_.root_layer.get()); 506 return LayerListIterator<Layer>(root_layer_.get());
518 } 507 }
519 508
520 LayerListIterator<Layer> LayerTree::end() const { 509 LayerListIterator<Layer> LayerTree::end() const {
521 return LayerListIterator<Layer>(nullptr); 510 return LayerListIterator<Layer>(nullptr);
522 } 511 }
523 512
524 LayerListReverseIterator<Layer> LayerTree::rbegin() { 513 LayerListReverseIterator<Layer> LayerTree::rbegin() {
525 return LayerListReverseIterator<Layer>(inputs_.root_layer.get()); 514 return LayerListReverseIterator<Layer>(root_layer_.get());
526 } 515 }
527 516
528 LayerListReverseIterator<Layer> LayerTree::rend() { 517 LayerListReverseIterator<Layer> LayerTree::rend() {
529 return LayerListReverseIterator<Layer>(nullptr); 518 return LayerListReverseIterator<Layer>(nullptr);
530 } 519 }
531 520
532 void LayerTree::SetNeedsDisplayOnAllLayers() { 521 void LayerTree::SetNeedsDisplayOnAllLayers() {
533 for (auto* layer : *this) 522 for (auto* layer : *this)
534 layer->SetNeedsDisplay(); 523 layer->SetNeedsDisplay();
535 } 524 }
536 525
537 } // namespace cc 526 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698