| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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_impl.h" | 5 #include "cc/trees/layer_tree_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 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 std::unique_ptr<OwnedLayerImplList> ret = std::move(layers_); | 361 std::unique_ptr<OwnedLayerImplList> ret = std::move(layers_); |
| 362 layers_.reset(new OwnedLayerImplList); | 362 layers_.reset(new OwnedLayerImplList); |
| 363 return ret; | 363 return ret; |
| 364 } | 364 } |
| 365 | 365 |
| 366 static void UpdateClipTreeForBoundsDeltaOnLayer(LayerImpl* layer, | 366 static void UpdateClipTreeForBoundsDeltaOnLayer(LayerImpl* layer, |
| 367 ClipTree* clip_tree) { | 367 ClipTree* clip_tree) { |
| 368 if (layer && layer->masks_to_bounds()) { | 368 if (layer && layer->masks_to_bounds()) { |
| 369 ClipNode* clip_node = clip_tree->Node(layer->clip_tree_index()); | 369 ClipNode* clip_node = clip_tree->Node(layer->clip_tree_index()); |
| 370 if (clip_node) { | 370 if (clip_node) { |
| 371 DCHECK_EQ(layer->id(), clip_node->owner_id); | 371 DCHECK_EQ(layer->id(), clip_node->owning_layer_id); |
| 372 gfx::SizeF bounds = gfx::SizeF(layer->bounds()); | 372 gfx::SizeF bounds = gfx::SizeF(layer->bounds()); |
| 373 if (clip_node->clip.size() != bounds) { | 373 if (clip_node->clip.size() != bounds) { |
| 374 clip_node->clip.set_size(bounds); | 374 clip_node->clip.set_size(bounds); |
| 375 clip_tree->set_needs_update(true); | 375 clip_tree->set_needs_update(true); |
| 376 } | 376 } |
| 377 } | 377 } |
| 378 } | 378 } |
| 379 } | 379 } |
| 380 | 380 |
| 381 void LayerTreeImpl::SetPropertyTrees(PropertyTrees* property_trees) { | 381 void LayerTreeImpl::SetPropertyTrees(PropertyTrees* property_trees) { |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 LayerImpl* LayerTreeImpl::OuterViewportContainerLayer() const { | 592 LayerImpl* LayerTreeImpl::OuterViewportContainerLayer() const { |
| 593 return OuterViewportScrollLayer() | 593 return OuterViewportScrollLayer() |
| 594 ? OuterViewportScrollLayer()->scroll_clip_layer() | 594 ? OuterViewportScrollLayer()->scroll_clip_layer() |
| 595 : NULL; | 595 : NULL; |
| 596 } | 596 } |
| 597 | 597 |
| 598 LayerImpl* LayerTreeImpl::CurrentlyScrollingLayer() const { | 598 LayerImpl* LayerTreeImpl::CurrentlyScrollingLayer() const { |
| 599 DCHECK(IsActiveTree()); | 599 DCHECK(IsActiveTree()); |
| 600 const ScrollNode* scroll_node = | 600 const ScrollNode* scroll_node = |
| 601 property_trees_.scroll_tree.CurrentlyScrollingNode(); | 601 property_trees_.scroll_tree.CurrentlyScrollingNode(); |
| 602 return LayerById(scroll_node ? scroll_node->owner_id : Layer::INVALID_ID); | 602 return LayerById(scroll_node ? scroll_node->owning_layer_id |
| 603 : Layer::INVALID_ID); |
| 603 } | 604 } |
| 604 | 605 |
| 605 int LayerTreeImpl::LastScrolledLayerId() const { | 606 int LayerTreeImpl::LastScrolledLayerId() const { |
| 606 return last_scrolled_layer_id_; | 607 return last_scrolled_layer_id_; |
| 607 } | 608 } |
| 608 | 609 |
| 609 void LayerTreeImpl::SetCurrentlyScrollingLayer(LayerImpl* layer) { | 610 void LayerTreeImpl::SetCurrentlyScrollingLayer(LayerImpl* layer) { |
| 610 ScrollTree& scroll_tree = property_trees()->scroll_tree; | 611 ScrollTree& scroll_tree = property_trees()->scroll_tree; |
| 611 ScrollNode* scroll_node = scroll_tree.CurrentlyScrollingNode(); | 612 ScrollNode* scroll_node = scroll_tree.CurrentlyScrollingNode(); |
| 612 int old_id = scroll_node ? scroll_node->owner_id : Layer::INVALID_ID; | 613 int old_id = scroll_node ? scroll_node->owning_layer_id : Layer::INVALID_ID; |
| 613 int new_id = layer ? layer->id() : Layer::INVALID_ID; | 614 int new_id = layer ? layer->id() : Layer::INVALID_ID; |
| 614 int new_scroll_node_id = layer ? layer->scroll_tree_index() : -1; | 615 int new_scroll_node_id = layer ? layer->scroll_tree_index() : -1; |
| 615 if (layer) | 616 if (layer) |
| 616 last_scrolled_layer_id_ = new_id; | 617 last_scrolled_layer_id_ = new_id; |
| 617 | 618 |
| 618 if (old_id == new_id) | 619 if (old_id == new_id) |
| 619 return; | 620 return; |
| 620 | 621 |
| 621 ScrollbarAnimationController* old_animation_controller = | 622 ScrollbarAnimationController* old_animation_controller = |
| 622 layer_tree_host_impl_->ScrollbarAnimationControllerForId(old_id); | 623 layer_tree_host_impl_->ScrollbarAnimationControllerForId(old_id); |
| (...skipping 1163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1786 | 1787 |
| 1787 for (const ClipNode* clip_node = clip_tree.Node(layer->clip_tree_index()); | 1788 for (const ClipNode* clip_node = clip_tree.Node(layer->clip_tree_index()); |
| 1788 clip_node->id > 1; clip_node = clip_tree.parent(clip_node)) { | 1789 clip_node->id > 1; clip_node = clip_tree.parent(clip_node)) { |
| 1789 if (clip_node->clip_type == ClipNode::ClipType::APPLIES_LOCAL_CLIP) { | 1790 if (clip_node->clip_type == ClipNode::ClipType::APPLIES_LOCAL_CLIP) { |
| 1790 const TransformNode* transform_node = | 1791 const TransformNode* transform_node = |
| 1791 transform_tree.Node(clip_node->target_transform_id); | 1792 transform_tree.Node(clip_node->target_transform_id); |
| 1792 gfx::Rect combined_clip_in_target_space = | 1793 gfx::Rect combined_clip_in_target_space = |
| 1793 gfx::ToEnclosingRect(clip_node->combined_clip_in_target_space); | 1794 gfx::ToEnclosingRect(clip_node->combined_clip_in_target_space); |
| 1794 | 1795 |
| 1795 const LayerImpl* target_layer = | 1796 const LayerImpl* target_layer = |
| 1796 layer->layer_tree_impl()->LayerById(transform_node->owner_id); | 1797 layer->layer_tree_impl()->LayerById(transform_node->owning_layer_id); |
| 1797 DCHECK(transform_node->id == 0 || target_layer->render_surface() || | 1798 DCHECK(transform_node->id == 0 || target_layer->render_surface() || |
| 1798 layer->layer_tree_impl()->is_in_resourceless_software_draw_mode()); | 1799 layer->layer_tree_impl()->is_in_resourceless_software_draw_mode()); |
| 1799 gfx::Transform surface_screen_space_transform = | 1800 gfx::Transform surface_screen_space_transform = |
| 1800 transform_node->id == 0 || | 1801 transform_node->id == 0 || |
| 1801 (layer->layer_tree_impl() | 1802 (layer->layer_tree_impl() |
| 1802 ->is_in_resourceless_software_draw_mode()) | 1803 ->is_in_resourceless_software_draw_mode()) |
| 1803 ? gfx::Transform() | 1804 ? gfx::Transform() |
| 1804 : SurfaceScreenSpaceTransform(target_layer); | 1805 : SurfaceScreenSpaceTransform(target_layer); |
| 1805 if (!PointHitsRect(screen_space_point, surface_screen_space_transform, | 1806 if (!PointHitsRect(screen_space_point, surface_screen_space_transform, |
| 1806 combined_clip_in_target_space, NULL)) { | 1807 combined_clip_in_target_space, NULL)) { |
| 1807 return true; | 1808 return true; |
| 1808 } | 1809 } |
| 1809 } | 1810 } |
| 1810 const LayerImpl* clip_node_owner = | 1811 const LayerImpl* clip_node_owner = |
| 1811 layer->layer_tree_impl()->LayerById(clip_node->owner_id); | 1812 layer->layer_tree_impl()->LayerById(clip_node->owning_layer_id); |
| 1812 if (clip_node_owner->render_surface() && | 1813 if (clip_node_owner->render_surface() && |
| 1813 !PointHitsRect( | 1814 !PointHitsRect( |
| 1814 screen_space_point, SurfaceScreenSpaceTransform(clip_node_owner), | 1815 screen_space_point, SurfaceScreenSpaceTransform(clip_node_owner), |
| 1815 clip_node_owner->render_surface()->content_rect(), NULL)) { | 1816 clip_node_owner->render_surface()->content_rect(), NULL)) { |
| 1816 return true; | 1817 return true; |
| 1817 } | 1818 } |
| 1818 } | 1819 } |
| 1819 return false; | 1820 return false; |
| 1820 } | 1821 } |
| 1821 | 1822 |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2079 | 2080 |
| 2080 void LayerTreeImpl::ResetAllChangeTracking() { | 2081 void LayerTreeImpl::ResetAllChangeTracking() { |
| 2081 layers_that_should_push_properties_.clear(); | 2082 layers_that_should_push_properties_.clear(); |
| 2082 // Iterate over all layers, including masks. | 2083 // Iterate over all layers, including masks. |
| 2083 for (auto& layer : *layers_) | 2084 for (auto& layer : *layers_) |
| 2084 layer->ResetChangeTracking(); | 2085 layer->ResetChangeTracking(); |
| 2085 property_trees_.ResetAllChangeTracking(); | 2086 property_trees_.ResetAllChangeTracking(); |
| 2086 } | 2087 } |
| 2087 | 2088 |
| 2088 } // namespace cc | 2089 } // namespace cc |
| OLD | NEW |