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 <set> | 7 #include <set> |
8 | 8 |
9 #include "cc/animation/layer_animation_controller.h" | 9 #include "cc/animation/layer_animation_controller.h" |
10 #include "cc/base/math_util.h" | 10 #include "cc/base/math_util.h" |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 TEST_F(LayerTreeHostCommonTest, TransformsAboutScrollOffset) { | 381 TEST_F(LayerTreeHostCommonTest, TransformsAboutScrollOffset) { |
382 const gfx::Vector2d kScrollOffset(50, 100); | 382 const gfx::Vector2d kScrollOffset(50, 100); |
383 const gfx::Vector2dF kScrollDelta(2.34f, 5.67f); | 383 const gfx::Vector2dF kScrollDelta(2.34f, 5.67f); |
384 const gfx::Vector2d kMaxScrollOffset(200, 200); | 384 const gfx::Vector2d kMaxScrollOffset(200, 200); |
385 const gfx::PointF kScrollLayerPosition(-kScrollOffset.x(), | 385 const gfx::PointF kScrollLayerPosition(-kScrollOffset.x(), |
386 -kScrollOffset.y()); | 386 -kScrollOffset.y()); |
387 const float kPageScale = 0.888f; | 387 const float kPageScale = 0.888f; |
388 const float kDeviceScale = 1.666f; | 388 const float kDeviceScale = 1.666f; |
389 | 389 |
390 FakeImplProxy proxy; | 390 FakeImplProxy proxy; |
391 FakeLayerTreeHostImpl host_impl(&proxy); | 391 TestSharedBitmapManager shared_bitmap_manager; |
| 392 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
392 | 393 |
393 gfx::Transform identity_matrix; | 394 gfx::Transform identity_matrix; |
394 scoped_ptr<LayerImpl> sublayer_scoped_ptr( | 395 scoped_ptr<LayerImpl> sublayer_scoped_ptr( |
395 LayerImpl::Create(host_impl.active_tree(), 1)); | 396 LayerImpl::Create(host_impl.active_tree(), 1)); |
396 LayerImpl* sublayer = sublayer_scoped_ptr.get(); | 397 LayerImpl* sublayer = sublayer_scoped_ptr.get(); |
397 sublayer->SetContentsScale(kPageScale * kDeviceScale, | 398 sublayer->SetContentsScale(kPageScale * kDeviceScale, |
398 kPageScale * kDeviceScale); | 399 kPageScale * kDeviceScale); |
399 SetLayerPropertiesForTesting(sublayer, | 400 SetLayerPropertiesForTesting(sublayer, |
400 identity_matrix, | 401 identity_matrix, |
401 gfx::Point(), | 402 gfx::Point(), |
(...skipping 3632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4034 EXPECT_FALSE(result_layer); | 4035 EXPECT_FALSE(result_layer); |
4035 | 4036 |
4036 test_point = gfx::Point(10, 20); | 4037 test_point = gfx::Point(10, 20); |
4037 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( | 4038 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( |
4038 test_point, render_surface_layer_list); | 4039 test_point, render_surface_layer_list); |
4039 EXPECT_FALSE(result_layer); | 4040 EXPECT_FALSE(result_layer); |
4040 } | 4041 } |
4041 | 4042 |
4042 TEST_F(LayerTreeHostCommonTest, HitTestingForSingleLayer) { | 4043 TEST_F(LayerTreeHostCommonTest, HitTestingForSingleLayer) { |
4043 FakeImplProxy proxy; | 4044 FakeImplProxy proxy; |
4044 FakeLayerTreeHostImpl host_impl(&proxy); | 4045 TestSharedBitmapManager shared_bitmap_manager; |
| 4046 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4045 scoped_ptr<LayerImpl> root = | 4047 scoped_ptr<LayerImpl> root = |
4046 LayerImpl::Create(host_impl.active_tree(), 12345); | 4048 LayerImpl::Create(host_impl.active_tree(), 12345); |
4047 | 4049 |
4048 gfx::Transform identity_matrix; | 4050 gfx::Transform identity_matrix; |
4049 gfx::PointF anchor; | 4051 gfx::PointF anchor; |
4050 gfx::PointF position; | 4052 gfx::PointF position; |
4051 gfx::Size bounds(100, 100); | 4053 gfx::Size bounds(100, 100); |
4052 SetLayerPropertiesForTesting(root.get(), | 4054 SetLayerPropertiesForTesting(root.get(), |
4053 identity_matrix, | 4055 identity_matrix, |
4054 anchor, | 4056 anchor, |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4088 | 4090 |
4089 test_point = gfx::Point(99, 99); | 4091 test_point = gfx::Point(99, 99); |
4090 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( | 4092 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( |
4091 test_point, render_surface_layer_list); | 4093 test_point, render_surface_layer_list); |
4092 ASSERT_TRUE(result_layer); | 4094 ASSERT_TRUE(result_layer); |
4093 EXPECT_EQ(12345, result_layer->id()); | 4095 EXPECT_EQ(12345, result_layer->id()); |
4094 } | 4096 } |
4095 | 4097 |
4096 TEST_F(LayerTreeHostCommonTest, HitTestingForSingleLayerAndHud) { | 4098 TEST_F(LayerTreeHostCommonTest, HitTestingForSingleLayerAndHud) { |
4097 FakeImplProxy proxy; | 4099 FakeImplProxy proxy; |
4098 FakeLayerTreeHostImpl host_impl(&proxy); | 4100 TestSharedBitmapManager shared_bitmap_manager; |
| 4101 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4099 scoped_ptr<LayerImpl> root = | 4102 scoped_ptr<LayerImpl> root = |
4100 LayerImpl::Create(host_impl.active_tree(), 12345); | 4103 LayerImpl::Create(host_impl.active_tree(), 12345); |
4101 scoped_ptr<HeadsUpDisplayLayerImpl> hud = | 4104 scoped_ptr<HeadsUpDisplayLayerImpl> hud = |
4102 HeadsUpDisplayLayerImpl::Create(host_impl.active_tree(), 11111); | 4105 HeadsUpDisplayLayerImpl::Create(host_impl.active_tree(), 11111); |
4103 | 4106 |
4104 gfx::Transform identity_matrix; | 4107 gfx::Transform identity_matrix; |
4105 gfx::PointF anchor; | 4108 gfx::PointF anchor; |
4106 gfx::PointF position; | 4109 gfx::PointF position; |
4107 gfx::Size bounds(100, 100); | 4110 gfx::Size bounds(100, 100); |
4108 SetLayerPropertiesForTesting(root.get(), | 4111 SetLayerPropertiesForTesting(root.get(), |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4159 | 4162 |
4160 test_point = gfx::Point(99, 99); | 4163 test_point = gfx::Point(99, 99); |
4161 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( | 4164 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( |
4162 test_point, render_surface_layer_list); | 4165 test_point, render_surface_layer_list); |
4163 ASSERT_TRUE(result_layer); | 4166 ASSERT_TRUE(result_layer); |
4164 EXPECT_EQ(12345, result_layer->id()); | 4167 EXPECT_EQ(12345, result_layer->id()); |
4165 } | 4168 } |
4166 | 4169 |
4167 TEST_F(LayerTreeHostCommonTest, HitTestingForUninvertibleTransform) { | 4170 TEST_F(LayerTreeHostCommonTest, HitTestingForUninvertibleTransform) { |
4168 FakeImplProxy proxy; | 4171 FakeImplProxy proxy; |
4169 FakeLayerTreeHostImpl host_impl(&proxy); | 4172 TestSharedBitmapManager shared_bitmap_manager; |
| 4173 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4170 scoped_ptr<LayerImpl> root = | 4174 scoped_ptr<LayerImpl> root = |
4171 LayerImpl::Create(host_impl.active_tree(), 12345); | 4175 LayerImpl::Create(host_impl.active_tree(), 12345); |
4172 | 4176 |
4173 gfx::Transform uninvertible_transform; | 4177 gfx::Transform uninvertible_transform; |
4174 uninvertible_transform.matrix().set(0, 0, 0.0); | 4178 uninvertible_transform.matrix().set(0, 0, 0.0); |
4175 uninvertible_transform.matrix().set(1, 1, 0.0); | 4179 uninvertible_transform.matrix().set(1, 1, 0.0); |
4176 uninvertible_transform.matrix().set(2, 2, 0.0); | 4180 uninvertible_transform.matrix().set(2, 2, 0.0); |
4177 uninvertible_transform.matrix().set(3, 3, 0.0); | 4181 uninvertible_transform.matrix().set(3, 3, 0.0); |
4178 ASSERT_FALSE(uninvertible_transform.IsInvertible()); | 4182 ASSERT_FALSE(uninvertible_transform.IsInvertible()); |
4179 | 4183 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4235 EXPECT_FALSE(result_layer); | 4239 EXPECT_FALSE(result_layer); |
4236 | 4240 |
4237 test_point = gfx::Point(-1, -1); | 4241 test_point = gfx::Point(-1, -1); |
4238 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( | 4242 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( |
4239 test_point, render_surface_layer_list); | 4243 test_point, render_surface_layer_list); |
4240 EXPECT_FALSE(result_layer); | 4244 EXPECT_FALSE(result_layer); |
4241 } | 4245 } |
4242 | 4246 |
4243 TEST_F(LayerTreeHostCommonTest, HitTestingForSinglePositionedLayer) { | 4247 TEST_F(LayerTreeHostCommonTest, HitTestingForSinglePositionedLayer) { |
4244 FakeImplProxy proxy; | 4248 FakeImplProxy proxy; |
4245 FakeLayerTreeHostImpl host_impl(&proxy); | 4249 TestSharedBitmapManager shared_bitmap_manager; |
| 4250 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4246 scoped_ptr<LayerImpl> root = | 4251 scoped_ptr<LayerImpl> root = |
4247 LayerImpl::Create(host_impl.active_tree(), 12345); | 4252 LayerImpl::Create(host_impl.active_tree(), 12345); |
4248 | 4253 |
4249 gfx::Transform identity_matrix; | 4254 gfx::Transform identity_matrix; |
4250 gfx::PointF anchor; | 4255 gfx::PointF anchor; |
4251 // this layer is positioned, and hit testing should correctly know where the | 4256 // this layer is positioned, and hit testing should correctly know where the |
4252 // layer is located. | 4257 // layer is located. |
4253 gfx::PointF position(50.f, 50.f); | 4258 gfx::PointF position(50.f, 50.f); |
4254 gfx::Size bounds(100, 100); | 4259 gfx::Size bounds(100, 100); |
4255 SetLayerPropertiesForTesting(root.get(), | 4260 SetLayerPropertiesForTesting(root.get(), |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4293 | 4298 |
4294 test_point = gfx::Point(99, 99); | 4299 test_point = gfx::Point(99, 99); |
4295 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( | 4300 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( |
4296 test_point, render_surface_layer_list); | 4301 test_point, render_surface_layer_list); |
4297 ASSERT_TRUE(result_layer); | 4302 ASSERT_TRUE(result_layer); |
4298 EXPECT_EQ(12345, result_layer->id()); | 4303 EXPECT_EQ(12345, result_layer->id()); |
4299 } | 4304 } |
4300 | 4305 |
4301 TEST_F(LayerTreeHostCommonTest, HitTestingForSingleRotatedLayer) { | 4306 TEST_F(LayerTreeHostCommonTest, HitTestingForSingleRotatedLayer) { |
4302 FakeImplProxy proxy; | 4307 FakeImplProxy proxy; |
4303 FakeLayerTreeHostImpl host_impl(&proxy); | 4308 TestSharedBitmapManager shared_bitmap_manager; |
| 4309 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4304 scoped_ptr<LayerImpl> root = | 4310 scoped_ptr<LayerImpl> root = |
4305 LayerImpl::Create(host_impl.active_tree(), 12345); | 4311 LayerImpl::Create(host_impl.active_tree(), 12345); |
4306 | 4312 |
4307 gfx::Transform identity_matrix; | 4313 gfx::Transform identity_matrix; |
4308 gfx::Transform rotation45_degrees_about_center; | 4314 gfx::Transform rotation45_degrees_about_center; |
4309 rotation45_degrees_about_center.Translate(50.0, 50.0); | 4315 rotation45_degrees_about_center.Translate(50.0, 50.0); |
4310 rotation45_degrees_about_center.RotateAboutZAxis(45.0); | 4316 rotation45_degrees_about_center.RotateAboutZAxis(45.0); |
4311 rotation45_degrees_about_center.Translate(-50.0, -50.0); | 4317 rotation45_degrees_about_center.Translate(-50.0, -50.0); |
4312 gfx::PointF anchor; | 4318 gfx::PointF anchor; |
4313 gfx::PointF position; | 4319 gfx::PointF position; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4359 ASSERT_FALSE(result_layer); | 4365 ASSERT_FALSE(result_layer); |
4360 | 4366 |
4361 test_point = gfx::Point(-1, 50); | 4367 test_point = gfx::Point(-1, 50); |
4362 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( | 4368 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( |
4363 test_point, render_surface_layer_list); | 4369 test_point, render_surface_layer_list); |
4364 ASSERT_FALSE(result_layer); | 4370 ASSERT_FALSE(result_layer); |
4365 } | 4371 } |
4366 | 4372 |
4367 TEST_F(LayerTreeHostCommonTest, HitTestingForSinglePerspectiveLayer) { | 4373 TEST_F(LayerTreeHostCommonTest, HitTestingForSinglePerspectiveLayer) { |
4368 FakeImplProxy proxy; | 4374 FakeImplProxy proxy; |
4369 FakeLayerTreeHostImpl host_impl(&proxy); | 4375 TestSharedBitmapManager shared_bitmap_manager; |
| 4376 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4370 scoped_ptr<LayerImpl> root = | 4377 scoped_ptr<LayerImpl> root = |
4371 LayerImpl::Create(host_impl.active_tree(), 12345); | 4378 LayerImpl::Create(host_impl.active_tree(), 12345); |
4372 | 4379 |
4373 gfx::Transform identity_matrix; | 4380 gfx::Transform identity_matrix; |
4374 | 4381 |
4375 // perspective_projection_about_center * translation_by_z is designed so that | 4382 // perspective_projection_about_center * translation_by_z is designed so that |
4376 // the 100 x 100 layer becomes 50 x 50, and remains centered at (50, 50). | 4383 // the 100 x 100 layer becomes 50 x 50, and remains centered at (50, 50). |
4377 gfx::Transform perspective_projection_about_center; | 4384 gfx::Transform perspective_projection_about_center; |
4378 perspective_projection_about_center.Translate(50.0, 50.0); | 4385 perspective_projection_about_center.Translate(50.0, 50.0); |
4379 perspective_projection_about_center.ApplyPerspectiveDepth(1.0); | 4386 perspective_projection_about_center.ApplyPerspectiveDepth(1.0); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4437 // space. This test makes sure that hit testing works correctly accounts for | 4444 // space. This test makes sure that hit testing works correctly accounts for |
4438 // the contents scale. A contents scale that is not 1 effectively forces a | 4445 // the contents scale. A contents scale that is not 1 effectively forces a |
4439 // non-identity transform between layer's content space and layer's origin | 4446 // non-identity transform between layer's content space and layer's origin |
4440 // space. The hit testing code must take this into account. | 4447 // space. The hit testing code must take this into account. |
4441 // | 4448 // |
4442 // To test this, the layer is positioned at (25, 25), and is size (50, 50). If | 4449 // To test this, the layer is positioned at (25, 25), and is size (50, 50). If |
4443 // contents scale is ignored, then hit testing will mis-interpret the visible | 4450 // contents scale is ignored, then hit testing will mis-interpret the visible |
4444 // content rect as being larger than the actual bounds of the layer. | 4451 // content rect as being larger than the actual bounds of the layer. |
4445 // | 4452 // |
4446 FakeImplProxy proxy; | 4453 FakeImplProxy proxy; |
4447 FakeLayerTreeHostImpl host_impl(&proxy); | 4454 TestSharedBitmapManager shared_bitmap_manager; |
| 4455 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4448 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 4456 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
4449 | 4457 |
4450 gfx::Transform identity_matrix; | 4458 gfx::Transform identity_matrix; |
4451 gfx::PointF anchor; | 4459 gfx::PointF anchor; |
4452 | 4460 |
4453 SetLayerPropertiesForTesting(root.get(), | 4461 SetLayerPropertiesForTesting(root.get(), |
4454 identity_matrix, | 4462 identity_matrix, |
4455 anchor, | 4463 anchor, |
4456 gfx::PointF(), | 4464 gfx::PointF(), |
4457 gfx::Size(100, 100), | 4465 gfx::Size(100, 100), |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4525 } | 4533 } |
4526 | 4534 |
4527 TEST_F(LayerTreeHostCommonTest, HitTestingForSimpleClippedLayer) { | 4535 TEST_F(LayerTreeHostCommonTest, HitTestingForSimpleClippedLayer) { |
4528 // Test that hit-testing will only work for the visible portion of a layer, | 4536 // Test that hit-testing will only work for the visible portion of a layer, |
4529 // and not the entire layer bounds. Here we just test the simple axis-aligned | 4537 // and not the entire layer bounds. Here we just test the simple axis-aligned |
4530 // case. | 4538 // case. |
4531 gfx::Transform identity_matrix; | 4539 gfx::Transform identity_matrix; |
4532 gfx::PointF anchor; | 4540 gfx::PointF anchor; |
4533 | 4541 |
4534 FakeImplProxy proxy; | 4542 FakeImplProxy proxy; |
4535 FakeLayerTreeHostImpl host_impl(&proxy); | 4543 TestSharedBitmapManager shared_bitmap_manager; |
| 4544 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4536 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 4545 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
4537 SetLayerPropertiesForTesting(root.get(), | 4546 SetLayerPropertiesForTesting(root.get(), |
4538 identity_matrix, | 4547 identity_matrix, |
4539 anchor, | 4548 anchor, |
4540 gfx::PointF(), | 4549 gfx::PointF(), |
4541 gfx::Size(100, 100), | 4550 gfx::Size(100, 100), |
4542 true, | 4551 true, |
4543 false); | 4552 false); |
4544 { | 4553 { |
4545 scoped_ptr<LayerImpl> clipping_layer = | 4554 scoped_ptr<LayerImpl> clipping_layer = |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4618 // multiple ancestors that clip in non axis-aligned ways. To pass this test, | 4627 // multiple ancestors that clip in non axis-aligned ways. To pass this test, |
4619 // the hit testing algorithm needs to recognize that multiple parent layers | 4628 // the hit testing algorithm needs to recognize that multiple parent layers |
4620 // may clip the layer, and should not actually hit those clipped areas. | 4629 // may clip the layer, and should not actually hit those clipped areas. |
4621 // | 4630 // |
4622 // The child and grand_child layers are both initialized to clip the | 4631 // The child and grand_child layers are both initialized to clip the |
4623 // rotated_leaf. The child layer is rotated about the top-left corner, so that | 4632 // rotated_leaf. The child layer is rotated about the top-left corner, so that |
4624 // the root + child clips combined create a triangle. The rotated_leaf will | 4633 // the root + child clips combined create a triangle. The rotated_leaf will |
4625 // only be visible where it overlaps this triangle. | 4634 // only be visible where it overlaps this triangle. |
4626 // | 4635 // |
4627 FakeImplProxy proxy; | 4636 FakeImplProxy proxy; |
4628 FakeLayerTreeHostImpl host_impl(&proxy); | 4637 TestSharedBitmapManager shared_bitmap_manager; |
| 4638 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4629 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 123); | 4639 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 123); |
4630 | 4640 |
4631 gfx::Transform identity_matrix; | 4641 gfx::Transform identity_matrix; |
4632 gfx::PointF anchor; | 4642 gfx::PointF anchor; |
4633 gfx::PointF position; | 4643 gfx::PointF position; |
4634 gfx::Size bounds(100, 100); | 4644 gfx::Size bounds(100, 100); |
4635 SetLayerPropertiesForTesting(root.get(), | 4645 SetLayerPropertiesForTesting(root.get(), |
4636 identity_matrix, | 4646 identity_matrix, |
4637 anchor, | 4647 anchor, |
4638 position, | 4648 position, |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4771 EXPECT_EQ(2468, result_layer->id()); | 4781 EXPECT_EQ(2468, result_layer->id()); |
4772 } | 4782 } |
4773 | 4783 |
4774 TEST_F(LayerTreeHostCommonTest, HitTestingForNonClippingIntermediateLayer) { | 4784 TEST_F(LayerTreeHostCommonTest, HitTestingForNonClippingIntermediateLayer) { |
4775 // This test checks that hit testing code does not accidentally clip to layer | 4785 // This test checks that hit testing code does not accidentally clip to layer |
4776 // bounds for a layer that actually does not clip. | 4786 // bounds for a layer that actually does not clip. |
4777 gfx::Transform identity_matrix; | 4787 gfx::Transform identity_matrix; |
4778 gfx::PointF anchor; | 4788 gfx::PointF anchor; |
4779 | 4789 |
4780 FakeImplProxy proxy; | 4790 FakeImplProxy proxy; |
4781 FakeLayerTreeHostImpl host_impl(&proxy); | 4791 TestSharedBitmapManager shared_bitmap_manager; |
| 4792 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4782 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 4793 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
4783 SetLayerPropertiesForTesting(root.get(), | 4794 SetLayerPropertiesForTesting(root.get(), |
4784 identity_matrix, | 4795 identity_matrix, |
4785 anchor, | 4796 anchor, |
4786 gfx::PointF(), | 4797 gfx::PointF(), |
4787 gfx::Size(100, 100), | 4798 gfx::Size(100, 100), |
4788 true, | 4799 true, |
4789 false); | 4800 false); |
4790 { | 4801 { |
4791 scoped_ptr<LayerImpl> intermediate_layer = | 4802 scoped_ptr<LayerImpl> intermediate_layer = |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4855 | 4866 |
4856 test_point = gfx::Point(89, 89); | 4867 test_point = gfx::Point(89, 89); |
4857 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( | 4868 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( |
4858 test_point, render_surface_layer_list); | 4869 test_point, render_surface_layer_list); |
4859 ASSERT_TRUE(result_layer); | 4870 ASSERT_TRUE(result_layer); |
4860 EXPECT_EQ(456, result_layer->id()); | 4871 EXPECT_EQ(456, result_layer->id()); |
4861 } | 4872 } |
4862 | 4873 |
4863 TEST_F(LayerTreeHostCommonTest, HitTestingForMultipleLayers) { | 4874 TEST_F(LayerTreeHostCommonTest, HitTestingForMultipleLayers) { |
4864 FakeImplProxy proxy; | 4875 FakeImplProxy proxy; |
4865 FakeLayerTreeHostImpl host_impl(&proxy); | 4876 TestSharedBitmapManager shared_bitmap_manager; |
| 4877 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
4866 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 4878 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
4867 | 4879 |
4868 gfx::Transform identity_matrix; | 4880 gfx::Transform identity_matrix; |
4869 gfx::PointF anchor; | 4881 gfx::PointF anchor; |
4870 gfx::PointF position; | 4882 gfx::PointF position; |
4871 gfx::Size bounds(100, 100); | 4883 gfx::Size bounds(100, 100); |
4872 SetLayerPropertiesForTesting(root.get(), | 4884 SetLayerPropertiesForTesting(root.get(), |
4873 identity_matrix, | 4885 identity_matrix, |
4874 anchor, | 4886 anchor, |
4875 position, | 4887 position, |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5002 ASSERT_TRUE(result_layer); | 5014 ASSERT_TRUE(result_layer); |
5003 EXPECT_EQ(4, result_layer->id()); | 5015 EXPECT_EQ(4, result_layer->id()); |
5004 } | 5016 } |
5005 | 5017 |
5006 TEST_F(LayerTreeHostCommonTest, HitTestingForMultipleLayerLists) { | 5018 TEST_F(LayerTreeHostCommonTest, HitTestingForMultipleLayerLists) { |
5007 // | 5019 // |
5008 // The geometry is set up similarly to the previous case, but | 5020 // The geometry is set up similarly to the previous case, but |
5009 // all layers are forced to be render surfaces now. | 5021 // all layers are forced to be render surfaces now. |
5010 // | 5022 // |
5011 FakeImplProxy proxy; | 5023 FakeImplProxy proxy; |
5012 FakeLayerTreeHostImpl host_impl(&proxy); | 5024 TestSharedBitmapManager shared_bitmap_manager; |
| 5025 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
5013 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 5026 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
5014 | 5027 |
5015 gfx::Transform identity_matrix; | 5028 gfx::Transform identity_matrix; |
5016 gfx::PointF anchor; | 5029 gfx::PointF anchor; |
5017 gfx::PointF position; | 5030 gfx::PointF position; |
5018 gfx::Size bounds(100, 100); | 5031 gfx::Size bounds(100, 100); |
5019 SetLayerPropertiesForTesting(root.get(), | 5032 SetLayerPropertiesForTesting(root.get(), |
5020 identity_matrix, | 5033 identity_matrix, |
5021 anchor, | 5034 anchor, |
5022 position, | 5035 position, |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5155 // be on top. | 5168 // be on top. |
5156 test_point = gfx::Point(20, 51); | 5169 test_point = gfx::Point(20, 51); |
5157 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( | 5170 result_layer = LayerTreeHostCommon::FindLayerThatIsHitByPoint( |
5158 test_point, render_surface_layer_list); | 5171 test_point, render_surface_layer_list); |
5159 ASSERT_TRUE(result_layer); | 5172 ASSERT_TRUE(result_layer); |
5160 EXPECT_EQ(4, result_layer->id()); | 5173 EXPECT_EQ(4, result_layer->id()); |
5161 } | 5174 } |
5162 | 5175 |
5163 TEST_F(LayerTreeHostCommonTest, HitTestingForEmptyLayers) { | 5176 TEST_F(LayerTreeHostCommonTest, HitTestingForEmptyLayers) { |
5164 FakeImplProxy proxy; | 5177 FakeImplProxy proxy; |
5165 FakeLayerTreeHostImpl host_impl(&proxy); | 5178 TestSharedBitmapManager shared_bitmap_manager; |
| 5179 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
5166 | 5180 |
5167 // Layer 1 - root | 5181 // Layer 1 - root |
5168 scoped_ptr<LayerImpl> root = | 5182 scoped_ptr<LayerImpl> root = |
5169 LayerImpl::Create(host_impl.active_tree(), 1); | 5183 LayerImpl::Create(host_impl.active_tree(), 1); |
5170 gfx::Transform identity_matrix; | 5184 gfx::Transform identity_matrix; |
5171 gfx::PointF anchor; | 5185 gfx::PointF anchor; |
5172 gfx::PointF position; | 5186 gfx::PointF position; |
5173 gfx::Size bounds(100, 100); | 5187 gfx::Size bounds(100, 100); |
5174 SetLayerPropertiesForTesting(root.get(), | 5188 SetLayerPropertiesForTesting(root.get(), |
5175 identity_matrix, | 5189 identity_matrix, |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5289 | 5303 |
5290 test_point = gfx::Point(10, 20); | 5304 test_point = gfx::Point(10, 20); |
5291 result_layer = | 5305 result_layer = |
5292 LayerTreeHostCommon::FindLayerThatIsHitByPointInTouchHandlerRegion( | 5306 LayerTreeHostCommon::FindLayerThatIsHitByPointInTouchHandlerRegion( |
5293 test_point, render_surface_layer_list); | 5307 test_point, render_surface_layer_list); |
5294 EXPECT_FALSE(result_layer); | 5308 EXPECT_FALSE(result_layer); |
5295 } | 5309 } |
5296 | 5310 |
5297 TEST_F(LayerTreeHostCommonTest, HitCheckingTouchHandlerRegionsForSingleLayer) { | 5311 TEST_F(LayerTreeHostCommonTest, HitCheckingTouchHandlerRegionsForSingleLayer) { |
5298 FakeImplProxy proxy; | 5312 FakeImplProxy proxy; |
5299 FakeLayerTreeHostImpl host_impl(&proxy); | 5313 TestSharedBitmapManager shared_bitmap_manager; |
| 5314 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
5300 scoped_ptr<LayerImpl> root = | 5315 scoped_ptr<LayerImpl> root = |
5301 LayerImpl::Create(host_impl.active_tree(), 12345); | 5316 LayerImpl::Create(host_impl.active_tree(), 12345); |
5302 | 5317 |
5303 gfx::Transform identity_matrix; | 5318 gfx::Transform identity_matrix; |
5304 Region touch_handler_region(gfx::Rect(10, 10, 50, 50)); | 5319 Region touch_handler_region(gfx::Rect(10, 10, 50, 50)); |
5305 gfx::PointF anchor; | 5320 gfx::PointF anchor; |
5306 gfx::PointF position; | 5321 gfx::PointF position; |
5307 gfx::Size bounds(100, 100); | 5322 gfx::Size bounds(100, 100); |
5308 SetLayerPropertiesForTesting(root.get(), | 5323 SetLayerPropertiesForTesting(root.get(), |
5309 identity_matrix, | 5324 identity_matrix, |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5373 result_layer = | 5388 result_layer = |
5374 LayerTreeHostCommon::FindLayerThatIsHitByPointInTouchHandlerRegion( | 5389 LayerTreeHostCommon::FindLayerThatIsHitByPointInTouchHandlerRegion( |
5375 test_point, render_surface_layer_list); | 5390 test_point, render_surface_layer_list); |
5376 ASSERT_TRUE(result_layer); | 5391 ASSERT_TRUE(result_layer); |
5377 EXPECT_EQ(12345, result_layer->id()); | 5392 EXPECT_EQ(12345, result_layer->id()); |
5378 } | 5393 } |
5379 | 5394 |
5380 TEST_F(LayerTreeHostCommonTest, | 5395 TEST_F(LayerTreeHostCommonTest, |
5381 HitCheckingTouchHandlerRegionsForUninvertibleTransform) { | 5396 HitCheckingTouchHandlerRegionsForUninvertibleTransform) { |
5382 FakeImplProxy proxy; | 5397 FakeImplProxy proxy; |
5383 FakeLayerTreeHostImpl host_impl(&proxy); | 5398 TestSharedBitmapManager shared_bitmap_manager; |
| 5399 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
5384 scoped_ptr<LayerImpl> root = | 5400 scoped_ptr<LayerImpl> root = |
5385 LayerImpl::Create(host_impl.active_tree(), 12345); | 5401 LayerImpl::Create(host_impl.active_tree(), 12345); |
5386 | 5402 |
5387 gfx::Transform uninvertible_transform; | 5403 gfx::Transform uninvertible_transform; |
5388 uninvertible_transform.matrix().set(0, 0, 0.0); | 5404 uninvertible_transform.matrix().set(0, 0, 0.0); |
5389 uninvertible_transform.matrix().set(1, 1, 0.0); | 5405 uninvertible_transform.matrix().set(1, 1, 0.0); |
5390 uninvertible_transform.matrix().set(2, 2, 0.0); | 5406 uninvertible_transform.matrix().set(2, 2, 0.0); |
5391 uninvertible_transform.matrix().set(3, 3, 0.0); | 5407 uninvertible_transform.matrix().set(3, 3, 0.0); |
5392 ASSERT_FALSE(uninvertible_transform.IsInvertible()); | 5408 ASSERT_FALSE(uninvertible_transform.IsInvertible()); |
5393 | 5409 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5460 test_point = gfx::Point(-1, -1); | 5476 test_point = gfx::Point(-1, -1); |
5461 result_layer = | 5477 result_layer = |
5462 LayerTreeHostCommon::FindLayerThatIsHitByPointInTouchHandlerRegion( | 5478 LayerTreeHostCommon::FindLayerThatIsHitByPointInTouchHandlerRegion( |
5463 test_point, render_surface_layer_list); | 5479 test_point, render_surface_layer_list); |
5464 EXPECT_FALSE(result_layer); | 5480 EXPECT_FALSE(result_layer); |
5465 } | 5481 } |
5466 | 5482 |
5467 TEST_F(LayerTreeHostCommonTest, | 5483 TEST_F(LayerTreeHostCommonTest, |
5468 HitCheckingTouchHandlerRegionsForSinglePositionedLayer) { | 5484 HitCheckingTouchHandlerRegionsForSinglePositionedLayer) { |
5469 FakeImplProxy proxy; | 5485 FakeImplProxy proxy; |
5470 FakeLayerTreeHostImpl host_impl(&proxy); | 5486 TestSharedBitmapManager shared_bitmap_manager; |
| 5487 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
5471 scoped_ptr<LayerImpl> root = | 5488 scoped_ptr<LayerImpl> root = |
5472 LayerImpl::Create(host_impl.active_tree(), 12345); | 5489 LayerImpl::Create(host_impl.active_tree(), 12345); |
5473 | 5490 |
5474 gfx::Transform identity_matrix; | 5491 gfx::Transform identity_matrix; |
5475 Region touch_handler_region(gfx::Rect(10, 10, 50, 50)); | 5492 Region touch_handler_region(gfx::Rect(10, 10, 50, 50)); |
5476 gfx::PointF anchor; | 5493 gfx::PointF anchor; |
5477 // this layer is positioned, and hit testing should correctly know where the | 5494 // this layer is positioned, and hit testing should correctly know where the |
5478 // layer is located. | 5495 // layer is located. |
5479 gfx::PointF position(50.f, 50.f); | 5496 gfx::PointF position(50.f, 50.f); |
5480 gfx::Size bounds(100, 100); | 5497 gfx::Size bounds(100, 100); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5545 // space. This test makes sure that hit testing works correctly accounts for | 5562 // space. This test makes sure that hit testing works correctly accounts for |
5546 // the contents scale. A contents scale that is not 1 effectively forces a | 5563 // the contents scale. A contents scale that is not 1 effectively forces a |
5547 // non-identity transform between layer's content space and layer's origin | 5564 // non-identity transform between layer's content space and layer's origin |
5548 // space. The hit testing code must take this into account. | 5565 // space. The hit testing code must take this into account. |
5549 // | 5566 // |
5550 // To test this, the layer is positioned at (25, 25), and is size (50, 50). If | 5567 // To test this, the layer is positioned at (25, 25), and is size (50, 50). If |
5551 // contents scale is ignored, then hit checking will mis-interpret the visible | 5568 // contents scale is ignored, then hit checking will mis-interpret the visible |
5552 // content rect as being larger than the actual bounds of the layer. | 5569 // content rect as being larger than the actual bounds of the layer. |
5553 // | 5570 // |
5554 FakeImplProxy proxy; | 5571 FakeImplProxy proxy; |
5555 FakeLayerTreeHostImpl host_impl(&proxy); | 5572 TestSharedBitmapManager shared_bitmap_manager; |
| 5573 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
5556 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 5574 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
5557 | 5575 |
5558 gfx::Transform identity_matrix; | 5576 gfx::Transform identity_matrix; |
5559 gfx::PointF anchor; | 5577 gfx::PointF anchor; |
5560 | 5578 |
5561 SetLayerPropertiesForTesting(root.get(), | 5579 SetLayerPropertiesForTesting(root.get(), |
5562 identity_matrix, | 5580 identity_matrix, |
5563 anchor, | 5581 anchor, |
5564 gfx::PointF(), | 5582 gfx::PointF(), |
5565 gfx::Size(100, 100), | 5583 gfx::Size(100, 100), |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5652 ASSERT_TRUE(result_layer); | 5670 ASSERT_TRUE(result_layer); |
5653 EXPECT_EQ(12345, result_layer->id()); | 5671 EXPECT_EQ(12345, result_layer->id()); |
5654 } | 5672 } |
5655 | 5673 |
5656 TEST_F(LayerTreeHostCommonTest, | 5674 TEST_F(LayerTreeHostCommonTest, |
5657 HitCheckingTouchHandlerRegionsForSingleLayerWithDeviceScale) { | 5675 HitCheckingTouchHandlerRegionsForSingleLayerWithDeviceScale) { |
5658 // The layer's device_scale_factor and page_scale_factor should scale the | 5676 // The layer's device_scale_factor and page_scale_factor should scale the |
5659 // content rect and we should be able to hit the touch handler region by | 5677 // content rect and we should be able to hit the touch handler region by |
5660 // scaling the points accordingly. | 5678 // scaling the points accordingly. |
5661 FakeImplProxy proxy; | 5679 FakeImplProxy proxy; |
5662 FakeLayerTreeHostImpl host_impl(&proxy); | 5680 TestSharedBitmapManager shared_bitmap_manager; |
| 5681 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
5663 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 5682 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
5664 | 5683 |
5665 gfx::Transform identity_matrix; | 5684 gfx::Transform identity_matrix; |
5666 gfx::PointF anchor; | 5685 gfx::PointF anchor; |
5667 // Set the bounds of the root layer big enough to fit the child when scaled. | 5686 // Set the bounds of the root layer big enough to fit the child when scaled. |
5668 SetLayerPropertiesForTesting(root.get(), | 5687 SetLayerPropertiesForTesting(root.get(), |
5669 identity_matrix, | 5688 identity_matrix, |
5670 anchor, | 5689 anchor, |
5671 gfx::PointF(), | 5690 gfx::PointF(), |
5672 gfx::Size(100, 100), | 5691 gfx::Size(100, 100), |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5783 | 5802 |
5784 TEST_F(LayerTreeHostCommonTest, | 5803 TEST_F(LayerTreeHostCommonTest, |
5785 HitCheckingTouchHandlerRegionsForSimpleClippedLayer) { | 5804 HitCheckingTouchHandlerRegionsForSimpleClippedLayer) { |
5786 // Test that hit-checking will only work for the visible portion of a layer, | 5805 // Test that hit-checking will only work for the visible portion of a layer, |
5787 // and not the entire layer bounds. Here we just test the simple axis-aligned | 5806 // and not the entire layer bounds. Here we just test the simple axis-aligned |
5788 // case. | 5807 // case. |
5789 gfx::Transform identity_matrix; | 5808 gfx::Transform identity_matrix; |
5790 gfx::PointF anchor; | 5809 gfx::PointF anchor; |
5791 | 5810 |
5792 FakeImplProxy proxy; | 5811 FakeImplProxy proxy; |
5793 FakeLayerTreeHostImpl host_impl(&proxy); | 5812 TestSharedBitmapManager shared_bitmap_manager; |
| 5813 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
5794 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 5814 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
5795 SetLayerPropertiesForTesting(root.get(), | 5815 SetLayerPropertiesForTesting(root.get(), |
5796 identity_matrix, | 5816 identity_matrix, |
5797 anchor, | 5817 anchor, |
5798 gfx::PointF(), | 5818 gfx::PointF(), |
5799 gfx::Size(100, 100), | 5819 gfx::Size(100, 100), |
5800 true, | 5820 true, |
5801 false); | 5821 false); |
5802 { | 5822 { |
5803 scoped_ptr<LayerImpl> clipping_layer = | 5823 scoped_ptr<LayerImpl> clipping_layer = |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5883 ASSERT_TRUE(result_layer); | 5903 ASSERT_TRUE(result_layer); |
5884 EXPECT_EQ(456, result_layer->id()); | 5904 EXPECT_EQ(456, result_layer->id()); |
5885 } | 5905 } |
5886 | 5906 |
5887 TEST_F(LayerTreeHostCommonTest, | 5907 TEST_F(LayerTreeHostCommonTest, |
5888 HitCheckingTouchHandlerOverlappingRegions) { | 5908 HitCheckingTouchHandlerOverlappingRegions) { |
5889 gfx::Transform identity_matrix; | 5909 gfx::Transform identity_matrix; |
5890 gfx::PointF anchor; | 5910 gfx::PointF anchor; |
5891 | 5911 |
5892 FakeImplProxy proxy; | 5912 FakeImplProxy proxy; |
5893 FakeLayerTreeHostImpl host_impl(&proxy); | 5913 TestSharedBitmapManager shared_bitmap_manager; |
| 5914 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
5894 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 5915 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
5895 SetLayerPropertiesForTesting(root.get(), | 5916 SetLayerPropertiesForTesting(root.get(), |
5896 identity_matrix, | 5917 identity_matrix, |
5897 anchor, | 5918 anchor, |
5898 gfx::PointF(), | 5919 gfx::PointF(), |
5899 gfx::Size(100, 100), | 5920 gfx::Size(100, 100), |
5900 true, | 5921 true, |
5901 false); | 5922 false); |
5902 { | 5923 { |
5903 scoped_ptr<LayerImpl> touch_layer = | 5924 scoped_ptr<LayerImpl> touch_layer = |
(...skipping 1677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7581 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(); | 7602 scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(); |
7582 host->SetRootLayer(root); | 7603 host->SetRootLayer(root); |
7583 | 7604 |
7584 ExecuteCalculateDrawProperties(root.get()); | 7605 ExecuteCalculateDrawProperties(root.get()); |
7585 | 7606 |
7586 EXPECT_FALSE(child->render_surface()); | 7607 EXPECT_FALSE(child->render_surface()); |
7587 } | 7608 } |
7588 | 7609 |
7589 TEST_F(LayerTreeHostCommonTest, OpacityAnimatingOnPendingTree) { | 7610 TEST_F(LayerTreeHostCommonTest, OpacityAnimatingOnPendingTree) { |
7590 FakeImplProxy proxy; | 7611 FakeImplProxy proxy; |
7591 FakeLayerTreeHostImpl host_impl(&proxy); | 7612 TestSharedBitmapManager shared_bitmap_manager; |
| 7613 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
7592 host_impl.CreatePendingTree(); | 7614 host_impl.CreatePendingTree(); |
7593 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1); | 7615 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1); |
7594 | 7616 |
7595 const gfx::Transform identity_matrix; | 7617 const gfx::Transform identity_matrix; |
7596 SetLayerPropertiesForTesting(root.get(), | 7618 SetLayerPropertiesForTesting(root.get(), |
7597 identity_matrix, | 7619 identity_matrix, |
7598 gfx::PointF(), | 7620 gfx::PointF(), |
7599 gfx::PointF(), | 7621 gfx::PointF(), |
7600 gfx::Size(100, 100), | 7622 gfx::Size(100, 100), |
7601 true, | 7623 true, |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7780 EXPECT_EQ(can_use_lcd_text_, child_->can_use_lcd_text()); | 7802 EXPECT_EQ(can_use_lcd_text_, child_->can_use_lcd_text()); |
7781 EXPECT_EQ(can_use_lcd_text_, grand_child_->can_use_lcd_text()); | 7803 EXPECT_EQ(can_use_lcd_text_, grand_child_->can_use_lcd_text()); |
7782 } | 7804 } |
7783 | 7805 |
7784 INSTANTIATE_TEST_CASE_P(LayerTreeHostCommonTest, | 7806 INSTANTIATE_TEST_CASE_P(LayerTreeHostCommonTest, |
7785 LCDTextTest, | 7807 LCDTextTest, |
7786 testing::Combine(testing::Bool(), testing::Bool())); | 7808 testing::Combine(testing::Bool(), testing::Bool())); |
7787 | 7809 |
7788 TEST_F(LayerTreeHostCommonTest, SubtreeHidden_SingleLayer) { | 7810 TEST_F(LayerTreeHostCommonTest, SubtreeHidden_SingleLayer) { |
7789 FakeImplProxy proxy; | 7811 FakeImplProxy proxy; |
7790 FakeLayerTreeHostImpl host_impl(&proxy); | 7812 TestSharedBitmapManager shared_bitmap_manager; |
| 7813 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
7791 host_impl.CreatePendingTree(); | 7814 host_impl.CreatePendingTree(); |
7792 const gfx::Transform identity_matrix; | 7815 const gfx::Transform identity_matrix; |
7793 | 7816 |
7794 scoped_refptr<Layer> root = Layer::Create(); | 7817 scoped_refptr<Layer> root = Layer::Create(); |
7795 SetLayerPropertiesForTesting(root.get(), | 7818 SetLayerPropertiesForTesting(root.get(), |
7796 identity_matrix, | 7819 identity_matrix, |
7797 gfx::PointF(), | 7820 gfx::PointF(), |
7798 gfx::PointF(), | 7821 gfx::PointF(), |
7799 gfx::Size(50, 50), | 7822 gfx::Size(50, 50), |
7800 true, | 7823 true, |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7837 // We should have one render surface and two layers. The grand child has | 7860 // We should have one render surface and two layers. The grand child has |
7838 // hidden itself. | 7861 // hidden itself. |
7839 ASSERT_EQ(1u, render_surface_layer_list.size()); | 7862 ASSERT_EQ(1u, render_surface_layer_list.size()); |
7840 ASSERT_EQ(2u, root->render_surface()->layer_list().size()); | 7863 ASSERT_EQ(2u, root->render_surface()->layer_list().size()); |
7841 EXPECT_EQ(root->id(), root->render_surface()->layer_list().at(0)->id()); | 7864 EXPECT_EQ(root->id(), root->render_surface()->layer_list().at(0)->id()); |
7842 EXPECT_EQ(child->id(), root->render_surface()->layer_list().at(1)->id()); | 7865 EXPECT_EQ(child->id(), root->render_surface()->layer_list().at(1)->id()); |
7843 } | 7866 } |
7844 | 7867 |
7845 TEST_F(LayerTreeHostCommonTest, SubtreeHidden_SingleLayerImpl) { | 7868 TEST_F(LayerTreeHostCommonTest, SubtreeHidden_SingleLayerImpl) { |
7846 FakeImplProxy proxy; | 7869 FakeImplProxy proxy; |
7847 FakeLayerTreeHostImpl host_impl(&proxy); | 7870 TestSharedBitmapManager shared_bitmap_manager; |
| 7871 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
7848 host_impl.CreatePendingTree(); | 7872 host_impl.CreatePendingTree(); |
7849 const gfx::Transform identity_matrix; | 7873 const gfx::Transform identity_matrix; |
7850 | 7874 |
7851 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1); | 7875 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1); |
7852 SetLayerPropertiesForTesting(root.get(), | 7876 SetLayerPropertiesForTesting(root.get(), |
7853 identity_matrix, | 7877 identity_matrix, |
7854 gfx::PointF(), | 7878 gfx::PointF(), |
7855 gfx::PointF(), | 7879 gfx::PointF(), |
7856 gfx::Size(50, 50), | 7880 gfx::Size(50, 50), |
7857 true, | 7881 true, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7892 // We should have one render surface and two layers. The grand child has | 7916 // We should have one render surface and two layers. The grand child has |
7893 // hidden itself. | 7917 // hidden itself. |
7894 ASSERT_EQ(1u, render_surface_layer_list.size()); | 7918 ASSERT_EQ(1u, render_surface_layer_list.size()); |
7895 ASSERT_EQ(2u, root->render_surface()->layer_list().size()); | 7919 ASSERT_EQ(2u, root->render_surface()->layer_list().size()); |
7896 EXPECT_EQ(1, root->render_surface()->layer_list().at(0)->id()); | 7920 EXPECT_EQ(1, root->render_surface()->layer_list().at(0)->id()); |
7897 EXPECT_EQ(2, root->render_surface()->layer_list().at(1)->id()); | 7921 EXPECT_EQ(2, root->render_surface()->layer_list().at(1)->id()); |
7898 } | 7922 } |
7899 | 7923 |
7900 TEST_F(LayerTreeHostCommonTest, SubtreeHidden_TwoLayers) { | 7924 TEST_F(LayerTreeHostCommonTest, SubtreeHidden_TwoLayers) { |
7901 FakeImplProxy proxy; | 7925 FakeImplProxy proxy; |
7902 FakeLayerTreeHostImpl host_impl(&proxy); | 7926 TestSharedBitmapManager shared_bitmap_manager; |
| 7927 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
7903 host_impl.CreatePendingTree(); | 7928 host_impl.CreatePendingTree(); |
7904 const gfx::Transform identity_matrix; | 7929 const gfx::Transform identity_matrix; |
7905 | 7930 |
7906 scoped_refptr<Layer> root = Layer::Create(); | 7931 scoped_refptr<Layer> root = Layer::Create(); |
7907 SetLayerPropertiesForTesting(root.get(), | 7932 SetLayerPropertiesForTesting(root.get(), |
7908 identity_matrix, | 7933 identity_matrix, |
7909 gfx::PointF(), | 7934 gfx::PointF(), |
7910 gfx::PointF(), | 7935 gfx::PointF(), |
7911 gfx::Size(50, 50), | 7936 gfx::Size(50, 50), |
7912 true, | 7937 true, |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7948 | 7973 |
7949 // We should have one render surface and one layers. The child has | 7974 // We should have one render surface and one layers. The child has |
7950 // hidden itself and the grand child. | 7975 // hidden itself and the grand child. |
7951 ASSERT_EQ(1u, render_surface_layer_list.size()); | 7976 ASSERT_EQ(1u, render_surface_layer_list.size()); |
7952 ASSERT_EQ(1u, root->render_surface()->layer_list().size()); | 7977 ASSERT_EQ(1u, root->render_surface()->layer_list().size()); |
7953 EXPECT_EQ(root->id(), root->render_surface()->layer_list().at(0)->id()); | 7978 EXPECT_EQ(root->id(), root->render_surface()->layer_list().at(0)->id()); |
7954 } | 7979 } |
7955 | 7980 |
7956 TEST_F(LayerTreeHostCommonTest, SubtreeHidden_TwoLayersImpl) { | 7981 TEST_F(LayerTreeHostCommonTest, SubtreeHidden_TwoLayersImpl) { |
7957 FakeImplProxy proxy; | 7982 FakeImplProxy proxy; |
7958 FakeLayerTreeHostImpl host_impl(&proxy); | 7983 TestSharedBitmapManager shared_bitmap_manager; |
| 7984 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
7959 host_impl.CreatePendingTree(); | 7985 host_impl.CreatePendingTree(); |
7960 const gfx::Transform identity_matrix; | 7986 const gfx::Transform identity_matrix; |
7961 | 7987 |
7962 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1); | 7988 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1); |
7963 SetLayerPropertiesForTesting(root.get(), | 7989 SetLayerPropertiesForTesting(root.get(), |
7964 identity_matrix, | 7990 identity_matrix, |
7965 gfx::PointF(), | 7991 gfx::PointF(), |
7966 gfx::PointF(), | 7992 gfx::PointF(), |
7967 gfx::Size(50, 50), | 7993 gfx::Size(50, 50), |
7968 true, | 7994 true, |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8004 // hidden itself and the grand child. | 8030 // hidden itself and the grand child. |
8005 ASSERT_EQ(1u, render_surface_layer_list.size()); | 8031 ASSERT_EQ(1u, render_surface_layer_list.size()); |
8006 ASSERT_EQ(1u, root->render_surface()->layer_list().size()); | 8032 ASSERT_EQ(1u, root->render_surface()->layer_list().size()); |
8007 EXPECT_EQ(1, root->render_surface()->layer_list().at(0)->id()); | 8033 EXPECT_EQ(1, root->render_surface()->layer_list().at(0)->id()); |
8008 } | 8034 } |
8009 | 8035 |
8010 void EmptyCopyOutputCallback(scoped_ptr<CopyOutputResult> result) {} | 8036 void EmptyCopyOutputCallback(scoped_ptr<CopyOutputResult> result) {} |
8011 | 8037 |
8012 TEST_F(LayerTreeHostCommonTest, SubtreeHiddenWithCopyRequest) { | 8038 TEST_F(LayerTreeHostCommonTest, SubtreeHiddenWithCopyRequest) { |
8013 FakeImplProxy proxy; | 8039 FakeImplProxy proxy; |
8014 FakeLayerTreeHostImpl host_impl(&proxy); | 8040 TestSharedBitmapManager shared_bitmap_manager; |
| 8041 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
8015 host_impl.CreatePendingTree(); | 8042 host_impl.CreatePendingTree(); |
8016 const gfx::Transform identity_matrix; | 8043 const gfx::Transform identity_matrix; |
8017 | 8044 |
8018 scoped_refptr<Layer> root = Layer::Create(); | 8045 scoped_refptr<Layer> root = Layer::Create(); |
8019 SetLayerPropertiesForTesting(root.get(), | 8046 SetLayerPropertiesForTesting(root.get(), |
8020 identity_matrix, | 8047 identity_matrix, |
8021 gfx::PointF(), | 8048 gfx::PointF(), |
8022 gfx::PointF(), | 8049 gfx::PointF(), |
8023 gfx::Size(50, 50), | 8050 gfx::Size(50, 50), |
8024 true, | 8051 true, |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8150 // The copy_layer's render surface should have two contributing layers. | 8177 // The copy_layer's render surface should have two contributing layers. |
8151 ASSERT_EQ(2u, copy_layer->render_surface()->layer_list().size()); | 8178 ASSERT_EQ(2u, copy_layer->render_surface()->layer_list().size()); |
8152 EXPECT_EQ(copy_layer->id(), | 8179 EXPECT_EQ(copy_layer->id(), |
8153 copy_layer->render_surface()->layer_list().at(0)->id()); | 8180 copy_layer->render_surface()->layer_list().at(0)->id()); |
8154 EXPECT_EQ(copy_child->id(), | 8181 EXPECT_EQ(copy_child->id(), |
8155 copy_layer->render_surface()->layer_list().at(1)->id()); | 8182 copy_layer->render_surface()->layer_list().at(1)->id()); |
8156 } | 8183 } |
8157 | 8184 |
8158 TEST_F(LayerTreeHostCommonTest, ClippedOutCopyRequest) { | 8185 TEST_F(LayerTreeHostCommonTest, ClippedOutCopyRequest) { |
8159 FakeImplProxy proxy; | 8186 FakeImplProxy proxy; |
8160 FakeLayerTreeHostImpl host_impl(&proxy); | 8187 TestSharedBitmapManager shared_bitmap_manager; |
| 8188 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
8161 host_impl.CreatePendingTree(); | 8189 host_impl.CreatePendingTree(); |
8162 const gfx::Transform identity_matrix; | 8190 const gfx::Transform identity_matrix; |
8163 | 8191 |
8164 scoped_refptr<Layer> root = Layer::Create(); | 8192 scoped_refptr<Layer> root = Layer::Create(); |
8165 SetLayerPropertiesForTesting(root.get(), | 8193 SetLayerPropertiesForTesting(root.get(), |
8166 identity_matrix, | 8194 identity_matrix, |
8167 gfx::PointF(), | 8195 gfx::PointF(), |
8168 gfx::PointF(), | 8196 gfx::PointF(), |
8169 gfx::Size(50, 50), | 8197 gfx::Size(50, 50), |
8170 true, | 8198 true, |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8224 EXPECT_EQ(root->id(), render_surface_layer_list.at(0)->id()); | 8252 EXPECT_EQ(root->id(), render_surface_layer_list.at(0)->id()); |
8225 | 8253 |
8226 // The root render surface should only have 1 contributing layer, since the | 8254 // The root render surface should only have 1 contributing layer, since the |
8227 // other layers are empty/clipped away. | 8255 // other layers are empty/clipped away. |
8228 ASSERT_EQ(1u, root->render_surface()->layer_list().size()); | 8256 ASSERT_EQ(1u, root->render_surface()->layer_list().size()); |
8229 EXPECT_EQ(root->id(), root->render_surface()->layer_list().at(0)->id()); | 8257 EXPECT_EQ(root->id(), root->render_surface()->layer_list().at(0)->id()); |
8230 } | 8258 } |
8231 | 8259 |
8232 TEST_F(LayerTreeHostCommonTest, VisibleContentRectInsideSurface) { | 8260 TEST_F(LayerTreeHostCommonTest, VisibleContentRectInsideSurface) { |
8233 FakeImplProxy proxy; | 8261 FakeImplProxy proxy; |
8234 FakeLayerTreeHostImpl host_impl(&proxy); | 8262 TestSharedBitmapManager shared_bitmap_manager; |
| 8263 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
8235 host_impl.CreatePendingTree(); | 8264 host_impl.CreatePendingTree(); |
8236 const gfx::Transform identity_matrix; | 8265 const gfx::Transform identity_matrix; |
8237 | 8266 |
8238 scoped_refptr<Layer> root = Layer::Create(); | 8267 scoped_refptr<Layer> root = Layer::Create(); |
8239 SetLayerPropertiesForTesting(root.get(), | 8268 SetLayerPropertiesForTesting(root.get(), |
8240 identity_matrix, | 8269 identity_matrix, |
8241 gfx::PointF(), | 8270 gfx::PointF(), |
8242 gfx::PointF(), | 8271 gfx::PointF(), |
8243 gfx::Size(50, 50), | 8272 gfx::Size(50, 50), |
8244 true, | 8273 true, |
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8834 EXPECT_EQ(gfx::Rect(0, 0, 5, 5).ToString(), | 8863 EXPECT_EQ(gfx::Rect(0, 0, 5, 5).ToString(), |
8835 render_surface2->render_surface()->content_rect().ToString()); | 8864 render_surface2->render_surface()->content_rect().ToString()); |
8836 | 8865 |
8837 // Sanity check our num_unclipped_descendants values. | 8866 // Sanity check our num_unclipped_descendants values. |
8838 EXPECT_EQ(1, render_surface1->num_unclipped_descendants()); | 8867 EXPECT_EQ(1, render_surface1->num_unclipped_descendants()); |
8839 EXPECT_EQ(0, render_surface2->num_unclipped_descendants()); | 8868 EXPECT_EQ(0, render_surface2->num_unclipped_descendants()); |
8840 } | 8869 } |
8841 | 8870 |
8842 TEST_F(LayerTreeHostCommonTest, CanRenderToSeparateSurface) { | 8871 TEST_F(LayerTreeHostCommonTest, CanRenderToSeparateSurface) { |
8843 FakeImplProxy proxy; | 8872 FakeImplProxy proxy; |
8844 FakeLayerTreeHostImpl host_impl(&proxy); | 8873 TestSharedBitmapManager shared_bitmap_manager; |
| 8874 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
8845 scoped_ptr<LayerImpl> root = | 8875 scoped_ptr<LayerImpl> root = |
8846 LayerImpl::Create(host_impl.active_tree(), 12345); | 8876 LayerImpl::Create(host_impl.active_tree(), 12345); |
8847 scoped_ptr<LayerImpl> child1 = | 8877 scoped_ptr<LayerImpl> child1 = |
8848 LayerImpl::Create(host_impl.active_tree(), 123456); | 8878 LayerImpl::Create(host_impl.active_tree(), 123456); |
8849 scoped_ptr<LayerImpl> child2 = | 8879 scoped_ptr<LayerImpl> child2 = |
8850 LayerImpl::Create(host_impl.active_tree(), 1234567); | 8880 LayerImpl::Create(host_impl.active_tree(), 1234567); |
8851 scoped_ptr<LayerImpl> child3 = | 8881 scoped_ptr<LayerImpl> child3 = |
8852 LayerImpl::Create(host_impl.active_tree(), 12345678); | 8882 LayerImpl::Create(host_impl.active_tree(), 12345678); |
8853 | 8883 |
8854 gfx::Transform identity_matrix; | 8884 gfx::Transform identity_matrix; |
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9423 // | 9453 // |
9424 // + root | 9454 // + root |
9425 // + scroll_child | 9455 // + scroll_child |
9426 // + top_content | 9456 // + top_content |
9427 // + bottom_content | 9457 // + bottom_content |
9428 // + scroll_parent_border | 9458 // + scroll_parent_border |
9429 // + scroll_parent_clip | 9459 // + scroll_parent_clip |
9430 // + scroll_parent | 9460 // + scroll_parent |
9431 // | 9461 // |
9432 FakeImplProxy proxy; | 9462 FakeImplProxy proxy; |
9433 FakeLayerTreeHostImpl host_impl(&proxy); | 9463 TestSharedBitmapManager shared_bitmap_manager; |
| 9464 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
9434 host_impl.CreatePendingTree(); | 9465 host_impl.CreatePendingTree(); |
9435 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 9466 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
9436 scoped_ptr<LayerImpl> scroll_parent_border = | 9467 scoped_ptr<LayerImpl> scroll_parent_border = |
9437 LayerImpl::Create(host_impl.active_tree(), 2); | 9468 LayerImpl::Create(host_impl.active_tree(), 2); |
9438 scoped_ptr<LayerImpl> scroll_parent_clip = | 9469 scoped_ptr<LayerImpl> scroll_parent_clip = |
9439 LayerImpl::Create(host_impl.active_tree(), 3); | 9470 LayerImpl::Create(host_impl.active_tree(), 3); |
9440 scoped_ptr<LayerImpl> scroll_parent = | 9471 scoped_ptr<LayerImpl> scroll_parent = |
9441 LayerImpl::Create(host_impl.active_tree(), 4); | 9472 LayerImpl::Create(host_impl.active_tree(), 4); |
9442 scoped_ptr<LayerImpl> scroll_child = | 9473 scoped_ptr<LayerImpl> scroll_child = |
9443 LayerImpl::Create(host_impl.active_tree(), 5); | 9474 LayerImpl::Create(host_impl.active_tree(), 5); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9549 TEST_F(LayerTreeHostCommonTest, ScrollCompensationWithRounding) { | 9580 TEST_F(LayerTreeHostCommonTest, ScrollCompensationWithRounding) { |
9550 // This test verifies that a scrolling layer that gets snapped to | 9581 // This test verifies that a scrolling layer that gets snapped to |
9551 // integer coordinates doesn't move a fixed position child. | 9582 // integer coordinates doesn't move a fixed position child. |
9552 // | 9583 // |
9553 // + root | 9584 // + root |
9554 // + container | 9585 // + container |
9555 // + scroller | 9586 // + scroller |
9556 // + fixed | 9587 // + fixed |
9557 // | 9588 // |
9558 FakeImplProxy proxy; | 9589 FakeImplProxy proxy; |
9559 FakeLayerTreeHostImpl host_impl(&proxy); | 9590 TestSharedBitmapManager shared_bitmap_manager; |
| 9591 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
9560 host_impl.CreatePendingTree(); | 9592 host_impl.CreatePendingTree(); |
9561 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); | 9593 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.active_tree(), 1); |
9562 scoped_ptr<LayerImpl> container = | 9594 scoped_ptr<LayerImpl> container = |
9563 LayerImpl::Create(host_impl.active_tree(), 2); | 9595 LayerImpl::Create(host_impl.active_tree(), 2); |
9564 LayerImpl* container_layer = container.get(); | 9596 LayerImpl* container_layer = container.get(); |
9565 scoped_ptr<LayerImpl> scroller = | 9597 scoped_ptr<LayerImpl> scroller = |
9566 LayerImpl::Create(host_impl.active_tree(), 3); | 9598 LayerImpl::Create(host_impl.active_tree(), 3); |
9567 LayerImpl* scroll_layer = scroller.get(); | 9599 LayerImpl* scroll_layer = scroller.get(); |
9568 scoped_ptr<LayerImpl> fixed = LayerImpl::Create(host_impl.active_tree(), 4); | 9600 scoped_ptr<LayerImpl> fixed = LayerImpl::Create(host_impl.active_tree(), 4); |
9569 LayerImpl* fixed_layer = fixed.get(); | 9601 LayerImpl* fixed_layer = fixed.get(); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9654 fixed_layer->draw_properties().screen_space_transform.To2dTranslation(), | 9686 fixed_layer->draw_properties().screen_space_transform.To2dTranslation(), |
9655 container_offset); | 9687 container_offset); |
9656 EXPECT_VECTOR_EQ(scroll_layer->draw_properties() | 9688 EXPECT_VECTOR_EQ(scroll_layer->draw_properties() |
9657 .screen_space_transform.To2dTranslation(), | 9689 .screen_space_transform.To2dTranslation(), |
9658 container_offset - rounded_scroll_delta); | 9690 container_offset - rounded_scroll_delta); |
9659 } | 9691 } |
9660 } | 9692 } |
9661 | 9693 |
9662 } // namespace | 9694 } // namespace |
9663 } // namespace cc | 9695 } // namespace cc |
OLD | NEW |