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

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 : event_listener_properties_(),
40 needs_meta_info_recomputation_(true),
41 in_paint_layer_contents_(false),
42 mutator_host_(mutator_host), 23 mutator_host_(mutator_host),
43 layer_tree_host_(layer_tree_host) { 24 layer_tree_host_(layer_tree_host) {
44 DCHECK(mutator_host_); 25 DCHECK(mutator_host_);
45 DCHECK(layer_tree_host_); 26 DCHECK(layer_tree_host_);
46 mutator_host_->SetMutatorHostClient(this); 27 mutator_host_->SetMutatorHostClient(this);
47 } 28 }
48 29
49 LayerTree::~LayerTree() { 30 LayerTree::~LayerTree() {
50 mutator_host_->SetMutatorHostClient(nullptr); 31 mutator_host_->SetMutatorHostClient(nullptr);
51 32
52 // We must clear any pointers into the layer tree prior to destroying it. 33 // We must clear any pointers into the layer tree prior to destroying it.
53 RegisterViewportLayers(nullptr, nullptr, nullptr, nullptr); 34 RegisterViewportLayers(nullptr, nullptr, nullptr, nullptr);
54 35
55 if (inputs_.root_layer) { 36 if (root_layer_) {
56 inputs_.root_layer->SetLayerTreeHost(nullptr); 37 root_layer_->SetLayerTreeHost(nullptr);
57 38
58 // The root layer must be destroyed before the layer tree. We've made a 39 // 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 40 // contract with our animation controllers that the animation_host will
60 // outlive them, and we must make good. 41 // outlive them, and we must make good.
61 inputs_.root_layer = nullptr; 42 root_layer_ = nullptr;
62 } 43 }
63 } 44 }
64 45
65 void LayerTree::SetRootLayer(scoped_refptr<Layer> root_layer) { 46 void LayerTree::SetRootLayer(scoped_refptr<Layer> root_layer) {
66 if (inputs_.root_layer.get() == root_layer.get()) 47 if (root_layer_.get() == root_layer.get())
67 return; 48 return;
68 49
69 if (inputs_.root_layer.get()) 50 if (root_layer_.get())
70 inputs_.root_layer->SetLayerTreeHost(nullptr); 51 root_layer_->SetLayerTreeHost(nullptr);
71 inputs_.root_layer = root_layer; 52 root_layer_ = root_layer;
72 if (inputs_.root_layer.get()) { 53 if (root_layer_.get()) {
73 DCHECK(!inputs_.root_layer->parent()); 54 DCHECK(!root_layer_->parent());
74 inputs_.root_layer->SetLayerTreeHost(layer_tree_host_); 55 root_layer_->SetLayerTreeHost(layer_tree_host_);
75 } 56 }
76 57
77 if (hud_layer_.get()) 58 if (hud_layer_.get())
78 hud_layer_->RemoveFromParent(); 59 hud_layer_->RemoveFromParent();
79 60
80 // Reset gpu rasterization tracking. 61 // Reset gpu rasterization tracking.
81 // This flag is sticky until a new tree comes along. 62 // This flag is sticky until a new tree comes along.
82 layer_tree_host_->ResetGpuRasterizationTracking(); 63 layer_tree_host_->ResetGpuRasterizationTracking();
83 64
84 SetNeedsFullTreeSync(); 65 SetNeedsFullTreeSync();
85 } 66 }
86 67
87 void LayerTree::RegisterViewportLayers( 68 void LayerTree::RegisterViewportLayers(
88 scoped_refptr<Layer> overscroll_elasticity_layer, 69 scoped_refptr<Layer> overscroll_elasticity_layer,
89 scoped_refptr<Layer> page_scale_layer, 70 scoped_refptr<Layer> page_scale_layer,
90 scoped_refptr<Layer> inner_viewport_scroll_layer, 71 scoped_refptr<Layer> inner_viewport_scroll_layer,
91 scoped_refptr<Layer> outer_viewport_scroll_layer) { 72 scoped_refptr<Layer> outer_viewport_scroll_layer) {
92 DCHECK(!inner_viewport_scroll_layer || 73 DCHECK(!inner_viewport_scroll_layer ||
93 inner_viewport_scroll_layer != outer_viewport_scroll_layer); 74 inner_viewport_scroll_layer != outer_viewport_scroll_layer);
94 inputs_.overscroll_elasticity_layer = overscroll_elasticity_layer; 75 overscroll_elasticity_layer_ = overscroll_elasticity_layer;
95 inputs_.page_scale_layer = page_scale_layer; 76 page_scale_layer_ = page_scale_layer;
96 inputs_.inner_viewport_scroll_layer = inner_viewport_scroll_layer; 77 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer;
97 inputs_.outer_viewport_scroll_layer = outer_viewport_scroll_layer; 78 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer;
98 } 79 }
99 80
100 void LayerTree::RegisterSelection(const LayerSelection& selection) { 81 void LayerTree::RegisterSelection(const LayerSelection& selection) {
101 if (inputs_.selection == selection) 82 if (selection_ == selection)
102 return; 83 return;
103 84
104 inputs_.selection = selection; 85 selection_ = selection;
105 SetNeedsCommit(); 86 SetNeedsCommit();
106 } 87 }
107 88
108 void LayerTree::SetHaveScrollEventHandlers(bool have_event_handlers) { 89 void LayerTree::SetHaveScrollEventHandlers(bool have_event_handlers) {
109 if (inputs_.have_scroll_event_handlers == have_event_handlers) 90 if (have_scroll_event_handlers_ == have_event_handlers)
110 return; 91 return;
111 92
112 inputs_.have_scroll_event_handlers = have_event_handlers; 93 have_scroll_event_handlers_ = have_event_handlers;
113 SetNeedsCommit(); 94 SetNeedsCommit();
114 } 95 }
115 96
116 void LayerTree::SetEventListenerProperties(EventListenerClass event_class, 97 void LayerTree::SetEventListenerProperties(EventListenerClass event_class,
117 EventListenerProperties properties) { 98 EventListenerProperties properties) {
118 const size_t index = static_cast<size_t>(event_class); 99 const size_t index = static_cast<size_t>(event_class);
119 if (inputs_.event_listener_properties[index] == properties) 100 if (event_listener_properties_[index] == properties)
120 return; 101 return;
121 102
122 inputs_.event_listener_properties[index] = properties; 103 event_listener_properties_[index] = properties;
123 SetNeedsCommit(); 104 SetNeedsCommit();
124 } 105 }
125 106
126 void LayerTree::SetViewportSize(const gfx::Size& device_viewport_size) { 107 void LayerTree::SetViewportSize(const gfx::Size& device_viewport_size) {
127 if (inputs_.device_viewport_size == device_viewport_size) 108 if (device_viewport_size_ == device_viewport_size)
128 return; 109 return;
129 110
130 inputs_.device_viewport_size = device_viewport_size; 111 device_viewport_size_ = device_viewport_size;
131 112
132 SetPropertyTreesNeedRebuild(); 113 SetPropertyTreesNeedRebuild();
133 SetNeedsCommit(); 114 SetNeedsCommit();
134 } 115 }
135 116
136 void LayerTree::SetBrowserControlsHeight(float height, bool shrink) { 117 void LayerTree::SetBrowserControlsHeight(float height, bool shrink) {
137 if (inputs_.top_controls_height == height && 118 if (top_controls_height_ == height &&
138 inputs_.browser_controls_shrink_blink_size == shrink) 119 browser_controls_shrink_blink_size_ == shrink)
139 return; 120 return;
140 121
141 inputs_.top_controls_height = height; 122 top_controls_height_ = height;
142 inputs_.browser_controls_shrink_blink_size = shrink; 123 browser_controls_shrink_blink_size_ = shrink;
143 SetNeedsCommit(); 124 SetNeedsCommit();
144 } 125 }
145 126
146 void LayerTree::SetBrowserControlsShownRatio(float ratio) { 127 void LayerTree::SetBrowserControlsShownRatio(float ratio) {
147 if (inputs_.top_controls_shown_ratio == ratio) 128 if (top_controls_shown_ratio_ == ratio)
148 return; 129 return;
149 130
150 inputs_.top_controls_shown_ratio = ratio; 131 top_controls_shown_ratio_ = ratio;
151 SetNeedsCommit(); 132 SetNeedsCommit();
152 } 133 }
153 134
154 void LayerTree::SetBottomControlsHeight(float height) { 135 void LayerTree::SetBottomControlsHeight(float height) {
155 if (inputs_.bottom_controls_height == height) 136 if (bottom_controls_height_ == height)
156 return; 137 return;
157 138
158 inputs_.bottom_controls_height = height; 139 bottom_controls_height_ = height;
159 SetNeedsCommit(); 140 SetNeedsCommit();
160 } 141 }
161 142
162 void LayerTree::SetPageScaleFactorAndLimits(float page_scale_factor, 143 void LayerTree::SetPageScaleFactorAndLimits(float page_scale_factor,
163 float min_page_scale_factor, 144 float min_page_scale_factor,
164 float max_page_scale_factor) { 145 float max_page_scale_factor) {
165 if (inputs_.page_scale_factor == page_scale_factor && 146 if (page_scale_factor_ == page_scale_factor &&
166 inputs_.min_page_scale_factor == min_page_scale_factor && 147 min_page_scale_factor_ == min_page_scale_factor &&
167 inputs_.max_page_scale_factor == max_page_scale_factor) 148 max_page_scale_factor_ == max_page_scale_factor)
168 return; 149 return;
169 150
170 inputs_.page_scale_factor = page_scale_factor; 151 page_scale_factor_ = page_scale_factor;
171 inputs_.min_page_scale_factor = min_page_scale_factor; 152 min_page_scale_factor_ = min_page_scale_factor;
172 inputs_.max_page_scale_factor = max_page_scale_factor; 153 max_page_scale_factor_ = max_page_scale_factor;
173 SetPropertyTreesNeedRebuild(); 154 SetPropertyTreesNeedRebuild();
174 SetNeedsCommit(); 155 SetNeedsCommit();
175 } 156 }
176 157
177 void LayerTree::StartPageScaleAnimation(const gfx::Vector2d& target_offset, 158 void LayerTree::StartPageScaleAnimation(const gfx::Vector2d& target_offset,
178 bool use_anchor, 159 bool use_anchor,
179 float scale, 160 float scale,
180 base::TimeDelta duration) { 161 base::TimeDelta duration) {
181 inputs_.pending_page_scale_animation.reset(new PendingPageScaleAnimation( 162 pending_page_scale_animation_.reset(new PendingPageScaleAnimation(
182 target_offset, use_anchor, scale, duration)); 163 target_offset, use_anchor, scale, duration));
183 164
184 SetNeedsCommit(); 165 SetNeedsCommit();
185 } 166 }
186 167
187 bool LayerTree::HasPendingPageScaleAnimation() const { 168 bool LayerTree::HasPendingPageScaleAnimation() const {
188 return !!inputs_.pending_page_scale_animation.get(); 169 return !!pending_page_scale_animation_.get();
189 } 170 }
190 171
191 void LayerTree::SetDeviceScaleFactor(float device_scale_factor) { 172 void LayerTree::SetDeviceScaleFactor(float device_scale_factor) {
192 if (inputs_.device_scale_factor == device_scale_factor) 173 if (device_scale_factor_ == device_scale_factor)
193 return; 174 return;
194 inputs_.device_scale_factor = device_scale_factor; 175 device_scale_factor_ = device_scale_factor;
195 176
196 property_trees_.needs_rebuild = true; 177 property_trees_.needs_rebuild = true;
197 SetNeedsCommit(); 178 SetNeedsCommit();
198 } 179 }
199 180
200 void LayerTree::SetPaintedDeviceScaleFactor(float painted_device_scale_factor) { 181 void LayerTree::SetPaintedDeviceScaleFactor(float painted_device_scale_factor) {
201 if (inputs_.painted_device_scale_factor == painted_device_scale_factor) 182 if (painted_device_scale_factor_ == painted_device_scale_factor)
202 return; 183 return;
203 inputs_.painted_device_scale_factor = painted_device_scale_factor; 184 painted_device_scale_factor_ = painted_device_scale_factor;
204 185
205 SetNeedsCommit(); 186 SetNeedsCommit();
206 } 187 }
207 188
208 void LayerTree::SetDeviceColorSpace(const gfx::ColorSpace& device_color_space) { 189 void LayerTree::SetDeviceColorSpace(const gfx::ColorSpace& device_color_space) {
209 if (inputs_.device_color_space == device_color_space) 190 if (device_color_space_ == device_color_space)
210 return; 191 return;
211 inputs_.device_color_space = device_color_space; 192 device_color_space_ = device_color_space;
212 LayerTreeHostCommon::CallFunctionForEveryLayer( 193 LayerTreeHostCommon::CallFunctionForEveryLayer(
213 this, [](Layer* layer) { layer->SetNeedsDisplay(); }); 194 this, [](Layer* layer) { layer->SetNeedsDisplay(); });
214 } 195 }
215 196
216 void LayerTree::RegisterLayer(Layer* layer) { 197 void LayerTree::RegisterLayer(Layer* layer) {
217 DCHECK(!LayerById(layer->id())); 198 DCHECK(!LayerById(layer->id()));
218 DCHECK(!in_paint_layer_contents_); 199 DCHECK(!in_paint_layer_contents_);
219 layer_id_map_[layer->id()] = layer; 200 layer_id_map_[layer->id()] = layer;
220 if (layer->element_id()) { 201 if (layer->element_id()) {
221 mutator_host_->RegisterElement(layer->element_id(), 202 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) != 251 return layers_that_should_push_properties_.find(layer) !=
271 layers_that_should_push_properties_.end(); 252 layers_that_should_push_properties_.end();
272 } 253 }
273 254
274 void LayerTree::SetNeedsMetaInfoRecomputation(bool needs_recomputation) { 255 void LayerTree::SetNeedsMetaInfoRecomputation(bool needs_recomputation) {
275 needs_meta_info_recomputation_ = needs_recomputation; 256 needs_meta_info_recomputation_ = needs_recomputation;
276 } 257 }
277 258
278 void LayerTree::SetPageScaleFromImplSide(float page_scale) { 259 void LayerTree::SetPageScaleFromImplSide(float page_scale) {
279 DCHECK(layer_tree_host_->CommitRequested()); 260 DCHECK(layer_tree_host_->CommitRequested());
280 inputs_.page_scale_factor = page_scale; 261 page_scale_factor_ = page_scale;
281 SetPropertyTreesNeedRebuild(); 262 SetPropertyTreesNeedRebuild();
282 } 263 }
283 264
284 void LayerTree::SetElasticOverscrollFromImplSide( 265 void LayerTree::SetElasticOverscrollFromImplSide(
285 gfx::Vector2dF elastic_overscroll) { 266 gfx::Vector2dF elastic_overscroll) {
286 DCHECK(layer_tree_host_->CommitRequested()); 267 DCHECK(layer_tree_host_->CommitRequested());
287 elastic_overscroll_ = elastic_overscroll; 268 elastic_overscroll_ = elastic_overscroll;
288 } 269 }
289 270
290 void LayerTree::UpdateHudLayer(bool show_hud_info) { 271 void LayerTree::UpdateHudLayer(bool show_hud_info) {
291 if (show_hud_info) { 272 if (show_hud_info) {
292 if (!hud_layer_.get()) { 273 if (!hud_layer_.get()) {
293 hud_layer_ = HeadsUpDisplayLayer::Create(); 274 hud_layer_ = HeadsUpDisplayLayer::Create();
294 } 275 }
295 276
296 if (inputs_.root_layer.get() && !hud_layer_->parent()) 277 if (root_layer_.get() && !hud_layer_->parent())
297 inputs_.root_layer->AddChild(hud_layer_); 278 root_layer_->AddChild(hud_layer_);
298 } else if (hud_layer_.get()) { 279 } else if (hud_layer_.get()) {
299 hud_layer_->RemoveFromParent(); 280 hud_layer_->RemoveFromParent();
300 hud_layer_ = nullptr; 281 hud_layer_ = nullptr;
301 } 282 }
302 } 283 }
303 284
304 void LayerTree::SetNeedsFullTreeSync() { 285 void LayerTree::SetNeedsFullTreeSync() {
305 needs_full_tree_sync_ = true; 286 needs_full_tree_sync_ = true;
306 needs_meta_info_recomputation_ = true; 287 needs_meta_info_recomputation_ = true;
307 288
(...skipping 18 matching lines...) Expand all
326 tree_impl->set_needs_full_tree_sync(needs_full_tree_sync_); 307 tree_impl->set_needs_full_tree_sync(needs_full_tree_sync_);
327 needs_full_tree_sync_ = false; 308 needs_full_tree_sync_ = false;
328 309
329 if (hud_layer_.get()) { 310 if (hud_layer_.get()) {
330 LayerImpl* hud_impl = tree_impl->LayerById(hud_layer_->id()); 311 LayerImpl* hud_impl = tree_impl->LayerById(hud_layer_->id());
331 tree_impl->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl)); 312 tree_impl->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl));
332 } else { 313 } else {
333 tree_impl->set_hud_layer(nullptr); 314 tree_impl->set_hud_layer(nullptr);
334 } 315 }
335 316
336 tree_impl->set_background_color(inputs_.background_color); 317 tree_impl->set_background_color(background_color_);
337 tree_impl->set_has_transparent_background(inputs_.has_transparent_background); 318 tree_impl->set_has_transparent_background(has_transparent_background_);
338 tree_impl->set_have_scroll_event_handlers(inputs_.have_scroll_event_handlers); 319 tree_impl->set_have_scroll_event_handlers(have_scroll_event_handlers_);
339 tree_impl->set_event_listener_properties( 320 tree_impl->set_event_listener_properties(
340 EventListenerClass::kTouchStartOrMove, 321 EventListenerClass::kTouchStartOrMove,
341 event_listener_properties(EventListenerClass::kTouchStartOrMove)); 322 event_listener_properties(EventListenerClass::kTouchStartOrMove));
342 tree_impl->set_event_listener_properties( 323 tree_impl->set_event_listener_properties(
343 EventListenerClass::kMouseWheel, 324 EventListenerClass::kMouseWheel,
344 event_listener_properties(EventListenerClass::kMouseWheel)); 325 event_listener_properties(EventListenerClass::kMouseWheel));
345 tree_impl->set_event_listener_properties( 326 tree_impl->set_event_listener_properties(
346 EventListenerClass::kTouchEndOrCancel, 327 EventListenerClass::kTouchEndOrCancel,
347 event_listener_properties(EventListenerClass::kTouchEndOrCancel)); 328 event_listener_properties(EventListenerClass::kTouchEndOrCancel));
348 329
349 if (inputs_.page_scale_layer && inputs_.inner_viewport_scroll_layer) { 330 if (page_scale_layer_ && inner_viewport_scroll_layer_) {
350 tree_impl->SetViewportLayersFromIds( 331 tree_impl->SetViewportLayersFromIds(
351 inputs_.overscroll_elasticity_layer 332 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id()
352 ? inputs_.overscroll_elasticity_layer->id() 333 : Layer::INVALID_ID,
353 : Layer::INVALID_ID, 334 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(),
354 inputs_.page_scale_layer->id(), 335 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id()
355 inputs_.inner_viewport_scroll_layer->id(), 336 : Layer::INVALID_ID);
356 inputs_.outer_viewport_scroll_layer 337 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 { 338 } else {
362 tree_impl->ClearViewportLayers(); 339 tree_impl->ClearViewportLayers();
363 } 340 }
364 341
365 tree_impl->RegisterSelection(inputs_.selection); 342 tree_impl->RegisterSelection(selection_);
366 343
367 bool property_trees_changed_on_active_tree = 344 bool property_trees_changed_on_active_tree =
368 tree_impl->IsActiveTree() && tree_impl->property_trees()->changed; 345 tree_impl->IsActiveTree() && tree_impl->property_trees()->changed;
369 // Property trees may store damage status. We preserve the sync tree damage 346 // 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 347 // status by pushing the damage status from sync tree property trees to main
371 // thread property trees or by moving it onto the layers. 348 // thread property trees or by moving it onto the layers.
372 if (inputs_.root_layer && property_trees_changed_on_active_tree) { 349 if (root_layer_ && property_trees_changed_on_active_tree) {
373 if (property_trees_.sequence_number == 350 if (property_trees_.sequence_number ==
374 tree_impl->property_trees()->sequence_number) 351 tree_impl->property_trees()->sequence_number)
375 tree_impl->property_trees()->PushChangeTrackingTo(&property_trees_); 352 tree_impl->property_trees()->PushChangeTrackingTo(&property_trees_);
376 else 353 else
377 tree_impl->MoveChangeTrackingToLayers(); 354 tree_impl->MoveChangeTrackingToLayers();
378 } 355 }
379 // Setting property trees must happen before pushing the page scale. 356 // Setting property trees must happen before pushing the page scale.
380 tree_impl->SetPropertyTrees(&property_trees_); 357 tree_impl->SetPropertyTrees(&property_trees_);
381 358
382 tree_impl->PushPageScaleFromMainThread(inputs_.page_scale_factor, 359 tree_impl->PushPageScaleFromMainThread(
383 inputs_.min_page_scale_factor, 360 page_scale_factor_, min_page_scale_factor_, max_page_scale_factor_);
384 inputs_.max_page_scale_factor);
385 361
386 tree_impl->set_browser_controls_shrink_blink_size( 362 tree_impl->set_browser_controls_shrink_blink_size(
387 inputs_.browser_controls_shrink_blink_size); 363 browser_controls_shrink_blink_size_);
388 tree_impl->set_top_controls_height(inputs_.top_controls_height); 364 tree_impl->set_top_controls_height(top_controls_height_);
389 tree_impl->set_bottom_controls_height(inputs_.bottom_controls_height); 365 tree_impl->set_bottom_controls_height(bottom_controls_height_);
390 tree_impl->PushBrowserControlsFromMainThread( 366 tree_impl->PushBrowserControlsFromMainThread(top_controls_shown_ratio_);
391 inputs_.top_controls_shown_ratio);
392 tree_impl->elastic_overscroll()->PushFromMainThread(elastic_overscroll_); 367 tree_impl->elastic_overscroll()->PushFromMainThread(elastic_overscroll_);
393 if (tree_impl->IsActiveTree()) 368 if (tree_impl->IsActiveTree())
394 tree_impl->elastic_overscroll()->PushPendingToActive(); 369 tree_impl->elastic_overscroll()->PushPendingToActive();
395 370
396 tree_impl->set_painted_device_scale_factor( 371 tree_impl->set_painted_device_scale_factor(painted_device_scale_factor_);
397 inputs_.painted_device_scale_factor);
398 372
399 tree_impl->SetDeviceColorSpace(inputs_.device_color_space); 373 tree_impl->SetDeviceColorSpace(device_color_space_);
400 374
401 if (inputs_.pending_page_scale_animation) { 375 if (pending_page_scale_animation_) {
402 tree_impl->SetPendingPageScaleAnimation( 376 tree_impl->SetPendingPageScaleAnimation(
403 std::move(inputs_.pending_page_scale_animation)); 377 std::move(pending_page_scale_animation_));
404 } 378 }
405 379
406 DCHECK(!tree_impl->ViewportSizeInvalid()); 380 DCHECK(!tree_impl->ViewportSizeInvalid());
407 381
408 tree_impl->set_has_ever_been_drawn(false); 382 tree_impl->set_has_ever_been_drawn(false);
409 } 383 }
410 384
411 Layer* LayerTree::LayerByElementId(ElementId element_id) const { 385 Layer* LayerTree::LayerByElementId(ElementId element_id) const {
412 ElementLayersMap::const_iterator iter = element_layers_map_.find(element_id); 386 ElementLayersMap::const_iterator iter = element_layers_map_.find(element_id);
413 return iter != element_layers_map_.end() ? iter->second : nullptr; 387 return iter != element_layers_map_.end() ? iter->second : nullptr;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 } 481 }
508 482
509 gfx::ScrollOffset LayerTree::GetScrollOffsetForAnimation( 483 gfx::ScrollOffset LayerTree::GetScrollOffsetForAnimation(
510 ElementId element_id) const { 484 ElementId element_id) const {
511 Layer* layer = LayerByElementId(element_id); 485 Layer* layer = LayerByElementId(element_id);
512 DCHECK(layer); 486 DCHECK(layer);
513 return layer->ScrollOffsetForAnimation(); 487 return layer->ScrollOffsetForAnimation();
514 } 488 }
515 489
516 LayerListIterator<Layer> LayerTree::begin() const { 490 LayerListIterator<Layer> LayerTree::begin() const {
517 return LayerListIterator<Layer>(inputs_.root_layer.get()); 491 return LayerListIterator<Layer>(root_layer_.get());
518 } 492 }
519 493
520 LayerListIterator<Layer> LayerTree::end() const { 494 LayerListIterator<Layer> LayerTree::end() const {
521 return LayerListIterator<Layer>(nullptr); 495 return LayerListIterator<Layer>(nullptr);
522 } 496 }
523 497
524 LayerListReverseIterator<Layer> LayerTree::rbegin() { 498 LayerListReverseIterator<Layer> LayerTree::rbegin() {
525 return LayerListReverseIterator<Layer>(inputs_.root_layer.get()); 499 return LayerListReverseIterator<Layer>(root_layer_.get());
526 } 500 }
527 501
528 LayerListReverseIterator<Layer> LayerTree::rend() { 502 LayerListReverseIterator<Layer> LayerTree::rend() {
529 return LayerListReverseIterator<Layer>(nullptr); 503 return LayerListReverseIterator<Layer>(nullptr);
530 } 504 }
531 505
532 void LayerTree::SetNeedsDisplayOnAllLayers() { 506 void LayerTree::SetNeedsDisplayOnAllLayers() {
533 for (auto* layer : *this) 507 for (auto* layer : *this)
534 layer->SetNeedsDisplay(); 508 layer->SetNeedsDisplay();
535 } 509 }
536 510
537 } // namespace cc 511 } // 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