OLD | NEW |
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() | 21 LayerTree::Inputs::Inputs() |
22 : top_controls_height(0.f), | 22 : top_controls_height(0.f), |
23 top_controls_shown_ratio(0.f), | 23 top_controls_shown_ratio(0.f), |
24 browser_controls_shrink_blink_size(false), | 24 browser_controls_shrink_blink_size(false), |
25 bottom_controls_height(0.f), | 25 bottom_controls_height(0.f), |
26 device_scale_factor(1.f), | 26 device_scale_factor(1.f), |
27 painted_device_scale_factor(1.f), | 27 painted_device_scale_factor(1.f), |
28 page_scale_factor(1.f), | 28 page_scale_factor(1.f), |
| 29 subframe_page_scale_factor(1.f), |
29 min_page_scale_factor(1.f), | 30 min_page_scale_factor(1.f), |
30 max_page_scale_factor(1.f), | 31 max_page_scale_factor(1.f), |
31 background_color(SK_ColorWHITE), | 32 background_color(SK_ColorWHITE), |
32 has_transparent_background(false), | 33 has_transparent_background(false), |
33 have_scroll_event_handlers(false), | 34 have_scroll_event_handlers(false), |
34 event_listener_properties() {} | 35 event_listener_properties() {} |
35 | 36 |
36 LayerTree::Inputs::~Inputs() = default; | 37 LayerTree::Inputs::~Inputs() = default; |
37 | 38 |
38 LayerTree::LayerTree(MutatorHost* mutator_host, LayerTreeHost* layer_tree_host) | 39 LayerTree::LayerTree(MutatorHost* mutator_host, LayerTreeHost* layer_tree_host) |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 inputs_.max_page_scale_factor == max_page_scale_factor) | 168 inputs_.max_page_scale_factor == max_page_scale_factor) |
168 return; | 169 return; |
169 | 170 |
170 inputs_.page_scale_factor = page_scale_factor; | 171 inputs_.page_scale_factor = page_scale_factor; |
171 inputs_.min_page_scale_factor = min_page_scale_factor; | 172 inputs_.min_page_scale_factor = min_page_scale_factor; |
172 inputs_.max_page_scale_factor = max_page_scale_factor; | 173 inputs_.max_page_scale_factor = max_page_scale_factor; |
173 SetPropertyTreesNeedRebuild(); | 174 SetPropertyTreesNeedRebuild(); |
174 SetNeedsCommit(); | 175 SetNeedsCommit(); |
175 } | 176 } |
176 | 177 |
| 178 void LayerTree::SetSubframePageScaleFactor(float subframe_page_scale_factor) { |
| 179 if (inputs_.subframe_page_scale_factor == subframe_page_scale_factor) |
| 180 return; |
| 181 |
| 182 inputs_.subframe_page_scale_factor = subframe_page_scale_factor; |
| 183 SetNeedsDisplayOnAllLayers(); |
| 184 } |
| 185 |
177 void LayerTree::StartPageScaleAnimation(const gfx::Vector2d& target_offset, | 186 void LayerTree::StartPageScaleAnimation(const gfx::Vector2d& target_offset, |
178 bool use_anchor, | 187 bool use_anchor, |
179 float scale, | 188 float scale, |
180 base::TimeDelta duration) { | 189 base::TimeDelta duration) { |
181 inputs_.pending_page_scale_animation.reset(new PendingPageScaleAnimation( | 190 inputs_.pending_page_scale_animation.reset(new PendingPageScaleAnimation( |
182 target_offset, use_anchor, scale, duration)); | 191 target_offset, use_anchor, scale, duration)); |
183 | 192 |
184 SetNeedsCommit(); | 193 SetNeedsCommit(); |
185 } | 194 } |
186 | 195 |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 if (inputs_.root_layer && property_trees_changed_on_active_tree) { | 381 if (inputs_.root_layer && property_trees_changed_on_active_tree) { |
373 if (property_trees_.sequence_number == | 382 if (property_trees_.sequence_number == |
374 tree_impl->property_trees()->sequence_number) | 383 tree_impl->property_trees()->sequence_number) |
375 tree_impl->property_trees()->PushChangeTrackingTo(&property_trees_); | 384 tree_impl->property_trees()->PushChangeTrackingTo(&property_trees_); |
376 else | 385 else |
377 tree_impl->MoveChangeTrackingToLayers(); | 386 tree_impl->MoveChangeTrackingToLayers(); |
378 } | 387 } |
379 // Setting property trees must happen before pushing the page scale. | 388 // Setting property trees must happen before pushing the page scale. |
380 tree_impl->SetPropertyTrees(&property_trees_); | 389 tree_impl->SetPropertyTrees(&property_trees_); |
381 | 390 |
382 tree_impl->PushPageScaleFromMainThread(inputs_.page_scale_factor, | 391 tree_impl->PushPageScaleFromMainThread( |
383 inputs_.min_page_scale_factor, | 392 inputs_.page_scale_factor, inputs_.subframe_page_scale_factor, |
384 inputs_.max_page_scale_factor); | 393 inputs_.min_page_scale_factor, inputs_.max_page_scale_factor); |
385 | 394 |
386 tree_impl->set_browser_controls_shrink_blink_size( | 395 tree_impl->set_browser_controls_shrink_blink_size( |
387 inputs_.browser_controls_shrink_blink_size); | 396 inputs_.browser_controls_shrink_blink_size); |
388 tree_impl->set_top_controls_height(inputs_.top_controls_height); | 397 tree_impl->set_top_controls_height(inputs_.top_controls_height); |
389 tree_impl->set_bottom_controls_height(inputs_.bottom_controls_height); | 398 tree_impl->set_bottom_controls_height(inputs_.bottom_controls_height); |
390 tree_impl->PushBrowserControlsFromMainThread( | 399 tree_impl->PushBrowserControlsFromMainThread( |
391 inputs_.top_controls_shown_ratio); | 400 inputs_.top_controls_shown_ratio); |
392 tree_impl->elastic_overscroll()->PushFromMainThread(elastic_overscroll_); | 401 tree_impl->elastic_overscroll()->PushFromMainThread(elastic_overscroll_); |
393 if (tree_impl->IsActiveTree()) | 402 if (tree_impl->IsActiveTree()) |
394 tree_impl->elastic_overscroll()->PushPendingToActive(); | 403 tree_impl->elastic_overscroll()->PushPendingToActive(); |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
528 LayerListReverseIterator<Layer> LayerTree::rend() { | 537 LayerListReverseIterator<Layer> LayerTree::rend() { |
529 return LayerListReverseIterator<Layer>(nullptr); | 538 return LayerListReverseIterator<Layer>(nullptr); |
530 } | 539 } |
531 | 540 |
532 void LayerTree::SetNeedsDisplayOnAllLayers() { | 541 void LayerTree::SetNeedsDisplayOnAllLayers() { |
533 for (auto* layer : *this) | 542 for (auto* layer : *this) |
534 layer->SetNeedsDisplay(); | 543 layer->SetNeedsDisplay(); |
535 } | 544 } |
536 | 545 |
537 } // namespace cc | 546 } // namespace cc |
OLD | NEW |