| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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_impl.h" | 5 #include "cc/layers/layer_impl.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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 clip_tree_index_(ClipTree::kInvalidNodeId), | 73 clip_tree_index_(ClipTree::kInvalidNodeId), |
| 74 scroll_tree_index_(ScrollTree::kInvalidNodeId), | 74 scroll_tree_index_(ScrollTree::kInvalidNodeId), |
| 75 current_draw_mode_(DRAW_MODE_NONE), | 75 current_draw_mode_(DRAW_MODE_NONE), |
| 76 mutable_properties_(MutableProperty::kNone), | 76 mutable_properties_(MutableProperty::kNone), |
| 77 debug_info_(nullptr), | 77 debug_info_(nullptr), |
| 78 has_will_change_transform_hint_(false), | 78 has_will_change_transform_hint_(false), |
| 79 needs_push_properties_(false), | 79 needs_push_properties_(false), |
| 80 scrollbars_hidden_(false), | 80 scrollbars_hidden_(false), |
| 81 needs_show_scrollbars_(false), | 81 needs_show_scrollbars_(false), |
| 82 raster_even_if_not_drawn_(false), | 82 raster_even_if_not_drawn_(false), |
| 83 has_transform_node_(false) { | 83 has_transform_node_(false), |
| 84 scroll_boundary_behavior_( |
| 85 ScrollBoundaryBehavior::kScrollBoundaryBehaviorTypeAuto) { |
| 84 DCHECK_GT(layer_id_, 0); | 86 DCHECK_GT(layer_id_, 0); |
| 85 | 87 |
| 86 DCHECK(layer_tree_impl_); | 88 DCHECK(layer_tree_impl_); |
| 87 layer_tree_impl_->RegisterLayer(this); | 89 layer_tree_impl_->RegisterLayer(this); |
| 88 layer_tree_impl_->AddToElementMap(this); | 90 layer_tree_impl_->AddToElementMap(this); |
| 89 | 91 |
| 90 SetNeedsPushProperties(); | 92 SetNeedsPushProperties(); |
| 91 } | 93 } |
| 92 | 94 |
| 93 LayerImpl::~LayerImpl() { | 95 LayerImpl::~LayerImpl() { |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 | 332 |
| 331 if (layer_property_changed_) { | 333 if (layer_property_changed_) { |
| 332 layer->layer_tree_impl()->set_needs_update_draw_properties(); | 334 layer->layer_tree_impl()->set_needs_update_draw_properties(); |
| 333 layer->layer_property_changed_ = true; | 335 layer->layer_property_changed_ = true; |
| 334 } | 336 } |
| 335 | 337 |
| 336 layer->SetBounds(bounds_); | 338 layer->SetBounds(bounds_); |
| 337 if (scrollable_) | 339 if (scrollable_) |
| 338 layer->SetScrollable(scroll_container_bounds_); | 340 layer->SetScrollable(scroll_container_bounds_); |
| 339 layer->SetMutableProperties(mutable_properties_); | 341 layer->SetMutableProperties(mutable_properties_); |
| 342 layer->SetScrollBoundaryBehavior(scroll_boundary_behavior_); |
| 340 | 343 |
| 341 // If the main thread commits multiple times before the impl thread actually | 344 // If the main thread commits multiple times before the impl thread actually |
| 342 // draws, then damage tracking will become incorrect if we simply clobber the | 345 // draws, then damage tracking will become incorrect if we simply clobber the |
| 343 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e. | 346 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e. |
| 344 // union) any update changes that have occurred on the main thread. | 347 // union) any update changes that have occurred on the main thread. |
| 345 update_rect_.Union(layer->update_rect()); | 348 update_rect_.Union(layer->update_rect()); |
| 346 layer->SetUpdateRect(update_rect_); | 349 layer->SetUpdateRect(update_rect_); |
| 347 | 350 |
| 348 if (owned_debug_info_) | 351 if (owned_debug_info_) |
| 349 layer->SetDebugInfo(std::move(owned_debug_info_)); | 352 layer->SetDebugInfo(std::move(owned_debug_info_)); |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 756 | 759 |
| 757 gfx::Vector2dF LayerImpl::ClampScrollToMaxScrollOffset() { | 760 gfx::Vector2dF LayerImpl::ClampScrollToMaxScrollOffset() { |
| 758 gfx::ScrollOffset old_offset = CurrentScrollOffset(); | 761 gfx::ScrollOffset old_offset = CurrentScrollOffset(); |
| 759 gfx::ScrollOffset clamped_offset = ClampScrollOffsetToLimits(old_offset); | 762 gfx::ScrollOffset clamped_offset = ClampScrollOffsetToLimits(old_offset); |
| 760 gfx::Vector2dF delta = clamped_offset.DeltaFrom(old_offset); | 763 gfx::Vector2dF delta = clamped_offset.DeltaFrom(old_offset); |
| 761 if (!delta.IsZero()) | 764 if (!delta.IsZero()) |
| 762 ScrollBy(delta); | 765 ScrollBy(delta); |
| 763 return delta; | 766 return delta; |
| 764 } | 767 } |
| 765 | 768 |
| 769 void LayerImpl::SetScrollBoundaryBehavior( |
| 770 const ScrollBoundaryBehavior& behavior) { |
| 771 if (scroll_boundary_behavior_ == behavior) |
| 772 return; |
| 773 scroll_boundary_behavior_ = behavior; |
| 774 NoteLayerPropertyChanged(); |
| 775 } |
| 776 |
| 766 void LayerImpl::SetNeedsPushProperties() { | 777 void LayerImpl::SetNeedsPushProperties() { |
| 767 // There's no need to push layer properties on the active tree. | 778 // There's no need to push layer properties on the active tree. |
| 768 if (!needs_push_properties_ && !layer_tree_impl()->IsActiveTree()) { | 779 if (!needs_push_properties_ && !layer_tree_impl()->IsActiveTree()) { |
| 769 needs_push_properties_ = true; | 780 needs_push_properties_ = true; |
| 770 layer_tree_impl()->AddLayerShouldPushProperties(this); | 781 layer_tree_impl()->AddLayerShouldPushProperties(this); |
| 771 } | 782 } |
| 772 } | 783 } |
| 773 | 784 |
| 774 void LayerImpl::GetAllPrioritizedTilesForTracing( | 785 void LayerImpl::GetAllPrioritizedTilesForTracing( |
| 775 std::vector<PrioritizedTile>* prioritized_tiles) const { | 786 std::vector<PrioritizedTile>* prioritized_tiles) const { |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 995 | 1006 |
| 996 const bool has_valid_scroll_node = | 1007 const bool has_valid_scroll_node = |
| 997 !!GetScrollTree().Node(scroll_tree_index()); | 1008 !!GetScrollTree().Node(scroll_tree_index()); |
| 998 DCHECK(has_valid_scroll_node); | 1009 DCHECK(has_valid_scroll_node); |
| 999 | 1010 |
| 1000 return has_valid_transform_node && has_valid_effect_node && | 1011 return has_valid_transform_node && has_valid_effect_node && |
| 1001 has_valid_clip_node && has_valid_scroll_node; | 1012 has_valid_clip_node && has_valid_scroll_node; |
| 1002 } | 1013 } |
| 1003 | 1014 |
| 1004 } // namespace cc | 1015 } // namespace cc |
| OLD | NEW |