| Index: cc/trees/layer_tree_host_common_unittest.cc
|
| diff --git a/cc/trees/layer_tree_host_common_unittest.cc b/cc/trees/layer_tree_host_common_unittest.cc
|
| index 287f3a9b286f737a59ef03bef7289f19ba414b5a..3188781ed3e70ea9800b23c3ea72d4c8c7f825c7 100644
|
| --- a/cc/trees/layer_tree_host_common_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_common_unittest.cc
|
| @@ -3524,6 +3524,49 @@ TEST_F(LayerTreeHostCommonTest, OcclusionBySiblingOfTarget) {
|
| EXPECT_TRUE(expected_occlusion.IsEqual(actual_occlusion));
|
| }
|
|
|
| +TEST_F(LayerTreeHostCommonTest, TextureLayerSnapping) {
|
| + FakeImplTaskRunnerProvider task_runner_provider;
|
| + TestSharedBitmapManager shared_bitmap_manager;
|
| + TestTaskGraphRunner task_graph_runner;
|
| + std::unique_ptr<CompositorFrameSink> compositor_frame_sink =
|
| + FakeCompositorFrameSink::Create3d();
|
| + FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager,
|
| + &task_graph_runner);
|
| +
|
| + std::unique_ptr<LayerImpl> root =
|
| + LayerImpl::Create(host_impl.active_tree(), 1);
|
| + std::unique_ptr<TextureLayerImpl> child =
|
| + TextureLayerImpl::Create(host_impl.active_tree(), 2);
|
| +
|
| + LayerImpl* child_ptr = child.get();
|
| +
|
| + root->SetBounds(gfx::Size(100, 100));
|
| + child->SetBounds(gfx::Size(100, 100));
|
| + child->SetDrawsContent(true);
|
| + gfx::Transform fractional_translate;
|
| + fractional_translate.Translate(10.5f, 20.3f);
|
| + child->test_properties()->transform = fractional_translate;
|
| +
|
| + host_impl.SetViewportSize(root->bounds());
|
| +
|
| + root->test_properties()->AddChild(std::move(child));
|
| + host_impl.active_tree()->SetRootLayerForTesting(std::move(root));
|
| + host_impl.SetVisible(true);
|
| + host_impl.InitializeRenderer(compositor_frame_sink.get());
|
| + host_impl.active_tree()->BuildLayerListAndPropertyTreesForTesting();
|
| + bool update_lcd_text = false;
|
| + host_impl.active_tree()->UpdateDrawProperties(update_lcd_text);
|
| +
|
| + EXPECT_NE(child_ptr->ScreenSpaceTransform(), fractional_translate);
|
| + fractional_translate.RoundTranslationComponents();
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(child_ptr->ScreenSpaceTransform(),
|
| + fractional_translate);
|
| + gfx::RectF layer_bounds_in_screen_space =
|
| + MathUtil::MapClippedRect(child_ptr->ScreenSpaceTransform(),
|
| + gfx::RectF(gfx::SizeF(child_ptr->bounds())));
|
| + EXPECT_EQ(layer_bounds_in_screen_space, gfx::RectF(11.f, 20.f, 100.f, 100.f));
|
| +}
|
| +
|
| TEST_F(LayerTreeHostCommonTest,
|
| OcclusionForLayerWithUninvertibleDrawTransform) {
|
| FakeImplTaskRunnerProvider task_runner_provider;
|
|
|