OLD | NEW |
1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 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/layers/layer.h" | 5 #include "cc/layers/layer.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 scroll_clip_layer_id(INVALID_ID), | 60 scroll_clip_layer_id(INVALID_ID), |
61 user_scrollable_horizontal(true), | 61 user_scrollable_horizontal(true), |
62 user_scrollable_vertical(true), | 62 user_scrollable_vertical(true), |
63 main_thread_scrolling_reasons( | 63 main_thread_scrolling_reasons( |
64 MainThreadScrollingReason::kNotScrollingOnMain), | 64 MainThreadScrollingReason::kNotScrollingOnMain), |
65 is_container_for_fixed_position_layers(false), | 65 is_container_for_fixed_position_layers(false), |
66 mutable_properties(MutableProperty::kNone), | 66 mutable_properties(MutableProperty::kNone), |
67 scroll_parent(nullptr), | 67 scroll_parent(nullptr), |
68 clip_parent(nullptr), | 68 clip_parent(nullptr), |
69 has_will_change_transform_hint(false), | 69 has_will_change_transform_hint(false), |
70 has_preferred_raster_scale(false), | 70 has_preferred_raster_bounds(false), |
71 hide_layer_and_subtree(false), | 71 hide_layer_and_subtree(false), |
72 client(nullptr), | 72 client(nullptr) {} |
73 preferred_raster_scale(1.0) {} | |
74 | 73 |
75 Layer::Inputs::~Inputs() {} | 74 Layer::Inputs::~Inputs() {} |
76 | 75 |
77 scoped_refptr<Layer> Layer::Create() { | 76 scoped_refptr<Layer> Layer::Create() { |
78 return make_scoped_refptr(new Layer()); | 77 return make_scoped_refptr(new Layer()); |
79 } | 78 } |
80 | 79 |
81 Layer::Layer() | 80 Layer::Layer() |
82 : ignore_set_needs_commit_(false), | 81 : ignore_set_needs_commit_(false), |
83 parent_(nullptr), | 82 parent_(nullptr), |
(...skipping 1093 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1177 ->scroll_tree.SetScrollOffsetClobberActiveValue(layer->id()); | 1176 ->scroll_tree.SetScrollOffsetClobberActiveValue(layer->id()); |
1178 | 1177 |
1179 // If the main thread commits multiple times before the impl thread actually | 1178 // If the main thread commits multiple times before the impl thread actually |
1180 // draws, then damage tracking will become incorrect if we simply clobber the | 1179 // draws, then damage tracking will become incorrect if we simply clobber the |
1181 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e. | 1180 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e. |
1182 // union) any update changes that have occurred on the main thread. | 1181 // union) any update changes that have occurred on the main thread. |
1183 inputs_.update_rect.Union(layer->update_rect()); | 1182 inputs_.update_rect.Union(layer->update_rect()); |
1184 layer->SetUpdateRect(inputs_.update_rect); | 1183 layer->SetUpdateRect(inputs_.update_rect); |
1185 | 1184 |
1186 layer->SetHasWillChangeTransformHint(has_will_change_transform_hint()); | 1185 layer->SetHasWillChangeTransformHint(has_will_change_transform_hint()); |
1187 if (has_preferred_raster_scale()) | 1186 if (has_preferred_raster_bounds()) |
1188 layer->SetPreferredRasterScale(preferred_raster_scale()); | 1187 layer->SetPreferredRasterBounds(preferred_raster_bounds()); |
1189 else | 1188 else |
1190 layer->ClearPreferredRasterScale(); | 1189 layer->ClearPreferredRasterBounds(); |
1191 layer->SetNeedsPushProperties(); | 1190 layer->SetNeedsPushProperties(); |
1192 | 1191 |
1193 // Reset any state that should be cleared for the next update. | 1192 // Reset any state that should be cleared for the next update. |
1194 subtree_property_changed_ = false; | 1193 subtree_property_changed_ = false; |
1195 inputs_.update_rect = gfx::Rect(); | 1194 inputs_.update_rect = gfx::Rect(); |
1196 | 1195 |
1197 layer_tree_->RemoveLayerShouldPushProperties(this); | 1196 layer_tree_->RemoveLayerShouldPushProperties(this); |
1198 } | 1197 } |
1199 | 1198 |
1200 void Layer::TakeCopyRequests( | 1199 void Layer::TakeCopyRequests( |
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1759 : false; | 1758 : false; |
1760 } | 1759 } |
1761 | 1760 |
1762 void Layer::SetHasWillChangeTransformHint(bool has_will_change) { | 1761 void Layer::SetHasWillChangeTransformHint(bool has_will_change) { |
1763 if (inputs_.has_will_change_transform_hint == has_will_change) | 1762 if (inputs_.has_will_change_transform_hint == has_will_change) |
1764 return; | 1763 return; |
1765 inputs_.has_will_change_transform_hint = has_will_change; | 1764 inputs_.has_will_change_transform_hint = has_will_change; |
1766 SetNeedsCommit(); | 1765 SetNeedsCommit(); |
1767 } | 1766 } |
1768 | 1767 |
1769 void Layer::SetPreferredRasterScale(float preferred_raster_scale) { | 1768 void Layer::SetPreferredRasterBounds(const gfx::Size& preferred_raster_bounds) { |
1770 if (inputs_.has_preferred_raster_scale && | 1769 if (inputs_.has_preferred_raster_bounds && |
1771 inputs_.preferred_raster_scale == preferred_raster_scale) | 1770 inputs_.preferred_raster_bounds == preferred_raster_bounds) |
1772 return; | 1771 return; |
1773 | 1772 |
1774 inputs_.has_preferred_raster_scale = true; | 1773 inputs_.has_preferred_raster_bounds = true; |
1775 inputs_.preferred_raster_scale = preferred_raster_scale; | 1774 inputs_.preferred_raster_bounds = preferred_raster_bounds; |
1776 SetNeedsCommit(); | 1775 SetNeedsCommit(); |
1777 } | 1776 } |
1778 | 1777 |
1779 void Layer::ClearPreferredRasterScale() { | 1778 void Layer::ClearPreferredRasterBounds() { |
1780 if (!inputs_.has_preferred_raster_scale) | 1779 if (!inputs_.has_preferred_raster_bounds) |
1781 return; | 1780 return; |
1782 inputs_.has_preferred_raster_scale = false; | 1781 inputs_.has_preferred_raster_bounds = false; |
1783 inputs_.preferred_raster_scale = 1.0f; | 1782 inputs_.preferred_raster_bounds = gfx::Size(); |
1784 SetNeedsCommit(); | 1783 SetNeedsCommit(); |
1785 } | 1784 } |
1786 | 1785 |
1787 AnimationHost* Layer::GetAnimationHost() const { | 1786 AnimationHost* Layer::GetAnimationHost() const { |
1788 return layer_tree_ ? layer_tree_->animation_host() : nullptr; | 1787 return layer_tree_ ? layer_tree_->animation_host() : nullptr; |
1789 } | 1788 } |
1790 | 1789 |
1791 ElementListType Layer::GetElementTypeForAnimation() const { | 1790 ElementListType Layer::GetElementTypeForAnimation() const { |
1792 return ElementListType::ACTIVE; | 1791 return ElementListType::ACTIVE; |
1793 } | 1792 } |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1886 | 1885 |
1887 LayerTree* Layer::GetLayerTree() const { | 1886 LayerTree* Layer::GetLayerTree() const { |
1888 return layer_tree_; | 1887 return layer_tree_; |
1889 } | 1888 } |
1890 | 1889 |
1891 void Layer::SetLayerIdForTesting(int id) { | 1890 void Layer::SetLayerIdForTesting(int id) { |
1892 inputs_.layer_id = id; | 1891 inputs_.layer_id = id; |
1893 } | 1892 } |
1894 | 1893 |
1895 } // namespace cc | 1894 } // namespace cc |
OLD | NEW |