| 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_host_common.h" | 5 #include "cc/trees/layer_tree_host_common.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 #include "cc/test/fake_layer_tree_host.h" | 35 #include "cc/test/fake_layer_tree_host.h" |
| 36 #include "cc/test/fake_layer_tree_host_impl.h" | 36 #include "cc/test/fake_layer_tree_host_impl.h" |
| 37 #include "cc/test/fake_picture_layer.h" | 37 #include "cc/test/fake_picture_layer.h" |
| 38 #include "cc/test/fake_picture_layer_impl.h" | 38 #include "cc/test/fake_picture_layer_impl.h" |
| 39 #include "cc/test/geometry_test_utils.h" | 39 #include "cc/test/geometry_test_utils.h" |
| 40 #include "cc/test/layer_test_common.h" | 40 #include "cc/test/layer_test_common.h" |
| 41 #include "cc/test/test_task_graph_runner.h" | 41 #include "cc/test/test_task_graph_runner.h" |
| 42 #include "cc/trees/clip_node.h" | 42 #include "cc/trees/clip_node.h" |
| 43 #include "cc/trees/draw_property_utils.h" | 43 #include "cc/trees/draw_property_utils.h" |
| 44 #include "cc/trees/effect_node.h" | 44 #include "cc/trees/effect_node.h" |
| 45 #include "cc/trees/layer_tree_impl.h" | |
| 46 #include "cc/trees/property_tree_builder.h" | 45 #include "cc/trees/property_tree_builder.h" |
| 47 #include "cc/trees/scroll_node.h" | 46 #include "cc/trees/scroll_node.h" |
| 48 #include "cc/trees/single_thread_proxy.h" | 47 #include "cc/trees/single_thread_proxy.h" |
| 49 #include "cc/trees/task_runner_provider.h" | 48 #include "cc/trees/task_runner_provider.h" |
| 50 #include "cc/trees/transform_node.h" | 49 #include "cc/trees/transform_node.h" |
| 51 #include "testing/gtest/include/gtest/gtest.h" | 50 #include "testing/gtest/include/gtest/gtest.h" |
| 52 #include "third_party/skia/include/core/SkImageFilter.h" | 51 #include "third_party/skia/include/core/SkImageFilter.h" |
| 53 #include "third_party/skia/include/effects/SkOffsetImageFilter.h" | 52 #include "third_party/skia/include/effects/SkOffsetImageFilter.h" |
| 54 #include "third_party/skia/include/effects/SkXfermodeImageFilter.h" | 53 #include "third_party/skia/include/effects/SkXfermodeImageFilter.h" |
| 55 #include "ui/gfx/geometry/quad_f.h" | 54 #include "ui/gfx/geometry/quad_f.h" |
| (...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 MathUtil::Round(kTranslateY * page_scale * kDeviceScale + | 595 MathUtil::Round(kTranslateY * page_scale * kDeviceScale + |
| 597 sub_layer_screen_position.y() * page_scale * | 596 sub_layer_screen_position.y() * page_scale * |
| 598 kDeviceScale)); | 597 kDeviceScale)); |
| 599 expected_transform.Scale(page_scale * kDeviceScale, | 598 expected_transform.Scale(page_scale * kDeviceScale, |
| 600 page_scale * kDeviceScale); | 599 page_scale * kDeviceScale); |
| 601 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform, | 600 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform, |
| 602 sublayer->DrawTransform()); | 601 sublayer->DrawTransform()); |
| 603 | 602 |
| 604 // Test that page scale is updated even when we don't rebuild property trees. | 603 // Test that page scale is updated even when we don't rebuild property trees. |
| 605 page_scale = 1.888f; | 604 page_scale = 1.888f; |
| 606 root_layer->layer_tree_impl()->SetViewportLayersFromIds( | 605 |
| 607 Layer::INVALID_ID, scroll_layer->test_properties()->parent->id(), | 606 LayerTreeImpl::ViewportLayerIds viewport_ids; |
| 608 Layer::INVALID_ID, Layer::INVALID_ID, Layer::INVALID_ID, | 607 viewport_ids.page_scale = scroll_layer->test_properties()->parent->id(); |
| 609 Layer::INVALID_ID); | 608 root_layer->layer_tree_impl()->SetViewportLayersFromIds(viewport_ids); |
| 610 root_layer->layer_tree_impl()->SetPageScaleOnActiveTree(page_scale); | 609 root_layer->layer_tree_impl()->SetPageScaleOnActiveTree(page_scale); |
| 611 EXPECT_FALSE(root_layer->layer_tree_impl()->property_trees()->needs_rebuild); | 610 EXPECT_FALSE(root_layer->layer_tree_impl()->property_trees()->needs_rebuild); |
| 612 ExecuteCalculateDrawProperties(root_layer, kDeviceScale, page_scale, | 611 ExecuteCalculateDrawProperties(root_layer, kDeviceScale, page_scale, |
| 613 scroll_layer->test_properties()->parent, | 612 scroll_layer->test_properties()->parent, |
| 614 nullptr, nullptr); | 613 nullptr, nullptr); |
| 615 | 614 |
| 616 expected_transform.MakeIdentity(); | 615 expected_transform.MakeIdentity(); |
| 617 expected_transform.Translate( | 616 expected_transform.Translate( |
| 618 MathUtil::Round(kTranslateX * page_scale * kDeviceScale + | 617 MathUtil::Round(kTranslateX * page_scale * kDeviceScale + |
| 619 sub_layer_screen_position.x() * page_scale * | 618 sub_layer_screen_position.x() * page_scale * |
| (...skipping 3483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4103 | 4102 |
| 4104 LayerImpl* scale_surface = AddChild<LayerImpl>(parent); | 4103 LayerImpl* scale_surface = AddChild<LayerImpl>(parent); |
| 4105 scale_surface->SetPosition(gfx::PointF(2.f, 2.f)); | 4104 scale_surface->SetPosition(gfx::PointF(2.f, 2.f)); |
| 4106 scale_surface->SetBounds(gfx::Size(10, 10)); | 4105 scale_surface->SetBounds(gfx::Size(10, 10)); |
| 4107 scale_surface->test_properties()->transform = scale_small_matrix; | 4106 scale_surface->test_properties()->transform = scale_small_matrix; |
| 4108 scale_surface->SetDrawsContent(true); | 4107 scale_surface->SetDrawsContent(true); |
| 4109 scale_surface->test_properties()->force_render_surface = true; | 4108 scale_surface->test_properties()->force_render_surface = true; |
| 4110 | 4109 |
| 4111 float device_scale_factor = 2.5f; | 4110 float device_scale_factor = 2.5f; |
| 4112 float page_scale_factor = 3.f; | 4111 float page_scale_factor = 3.f; |
| 4113 root->layer_tree_impl()->SetViewportLayersFromIds( | 4112 LayerTreeImpl::ViewportLayerIds viewport_ids; |
| 4114 Layer::INVALID_ID, page_scale->id(), Layer::INVALID_ID, Layer::INVALID_ID, | 4113 viewport_ids.page_scale = page_scale->id(); |
| 4115 Layer::INVALID_ID, Layer::INVALID_ID); | 4114 root->layer_tree_impl()->SetViewportLayersFromIds(viewport_ids); |
| 4116 root->layer_tree_impl()->BuildLayerListAndPropertyTreesForTesting(); | 4115 root->layer_tree_impl()->BuildLayerListAndPropertyTreesForTesting(); |
| 4117 root->layer_tree_impl()->SetPageScaleOnActiveTree(page_scale_factor); | 4116 root->layer_tree_impl()->SetPageScaleOnActiveTree(page_scale_factor); |
| 4118 ExecuteCalculateDrawProperties(root, device_scale_factor, page_scale_factor, | 4117 ExecuteCalculateDrawProperties(root, device_scale_factor, page_scale_factor, |
| 4119 root, nullptr, nullptr); | 4118 root, nullptr, nullptr); |
| 4120 | 4119 |
| 4121 EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor, | 4120 EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor, |
| 4122 parent->GetIdealContentsScale()); | 4121 parent->GetIdealContentsScale()); |
| 4123 EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor, | 4122 EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor, |
| 4124 perspective_surface->GetIdealContentsScale()); | 4123 perspective_surface->GetIdealContentsScale()); |
| 4125 // Ideal scale is the max 2d scale component of the combined transform up to | 4124 // Ideal scale is the max 2d scale component of the combined transform up to |
| (...skipping 3992 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8118 host_impl.SetViewportSize(device_viewport_size); | 8117 host_impl.SetViewportSize(device_viewport_size); |
| 8119 host_impl.active_tree()->SetRootLayerForTesting( | 8118 host_impl.active_tree()->SetRootLayerForTesting( |
| 8120 LayerImpl::Create(host_impl.active_tree(), 1)); | 8119 LayerImpl::Create(host_impl.active_tree(), 1)); |
| 8121 | 8120 |
| 8122 LayerImpl* root = host_impl.active_tree()->root_layer_for_testing(); | 8121 LayerImpl* root = host_impl.active_tree()->root_layer_for_testing(); |
| 8123 root->SetBounds(root_size); | 8122 root->SetBounds(root_size); |
| 8124 root->SetMasksToBounds(true); | 8123 root->SetMasksToBounds(true); |
| 8125 | 8124 |
| 8126 // Make root the inner viewport scroll layer. This ensures the later call to | 8125 // Make root the inner viewport scroll layer. This ensures the later call to |
| 8127 // |SetViewportBoundsDelta| will be on a viewport layer. | 8126 // |SetViewportBoundsDelta| will be on a viewport layer. |
| 8128 host_impl.active_tree()->SetViewportLayersFromIds( | 8127 LayerTreeImpl::ViewportLayerIds viewport_ids; |
| 8129 Layer::INVALID_ID, Layer::INVALID_ID, Layer::INVALID_ID, | 8128 viewport_ids.inner_viewport_scroll = root->id(); |
| 8130 Layer::INVALID_ID, root->id(), Layer::INVALID_ID); | 8129 host_impl.active_tree()->SetViewportLayersFromIds(viewport_ids); |
| 8131 | 8130 |
| 8132 root->test_properties()->AddChild( | 8131 root->test_properties()->AddChild( |
| 8133 LayerImpl::Create(host_impl.active_tree(), 2)); | 8132 LayerImpl::Create(host_impl.active_tree(), 2)); |
| 8134 | 8133 |
| 8135 LayerImpl* sublayer = root->test_properties()->children[0]; | 8134 LayerImpl* sublayer = root->test_properties()->children[0]; |
| 8136 sublayer->SetBounds(sublayer_size); | 8135 sublayer->SetBounds(sublayer_size); |
| 8137 sublayer->SetDrawsContent(true); | 8136 sublayer->SetDrawsContent(true); |
| 8138 | 8137 |
| 8139 host_impl.active_tree()->BuildPropertyTreesForTesting(); | 8138 host_impl.active_tree()->BuildPropertyTreesForTesting(); |
| 8140 | 8139 |
| (...skipping 2014 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10155 | 10154 |
| 10156 // Check child layer draw properties. | 10155 // Check child layer draw properties. |
| 10157 EXPECT_EQ(gfx::Rect(10, 10), child->visible_layer_rect()); | 10156 EXPECT_EQ(gfx::Rect(10, 10), child->visible_layer_rect()); |
| 10158 EXPECT_EQ(gfx::Transform(), child->DrawTransform()); | 10157 EXPECT_EQ(gfx::Transform(), child->DrawTransform()); |
| 10159 EXPECT_EQ(gfx::Rect(10, 10), child->clip_rect()); | 10158 EXPECT_EQ(gfx::Rect(10, 10), child->clip_rect()); |
| 10160 EXPECT_EQ(gfx::Rect(10, 10), child->drawable_content_rect()); | 10159 EXPECT_EQ(gfx::Rect(10, 10), child->drawable_content_rect()); |
| 10161 } | 10160 } |
| 10162 | 10161 |
| 10163 } // namespace | 10162 } // namespace |
| 10164 } // namespace cc | 10163 } // namespace cc |
| OLD | NEW |