Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2349)

Side by Side Diff: cc/trees/layer_tree_host_common_unittest.cc

Issue 465853004: Moving RenderSurface creation outside of CalcDrawProps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "cc/animation/layer_animation_controller.h" 10 #include "cc/animation/layer_animation_controller.h"
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 LayerImpl::Create(host_impl.active_tree(), 1)); 317 LayerImpl::Create(host_impl.active_tree(), 1));
318 LayerImpl* sublayer = sublayer_scoped_ptr.get(); 318 LayerImpl* sublayer = sublayer_scoped_ptr.get();
319 sublayer->SetContentsScale(kPageScale * kDeviceScale, 319 sublayer->SetContentsScale(kPageScale * kDeviceScale,
320 kPageScale * kDeviceScale); 320 kPageScale * kDeviceScale);
321 SetLayerPropertiesForTesting(sublayer, 321 SetLayerPropertiesForTesting(sublayer,
322 identity_matrix, 322 identity_matrix,
323 gfx::Point3F(), 323 gfx::Point3F(),
324 gfx::PointF(), 324 gfx::PointF(),
325 gfx::Size(500, 500), 325 gfx::Size(500, 500),
326 true, 326 true,
327 false,
327 false); 328 false);
328 329
329 scoped_ptr<LayerImpl> scroll_layer_scoped_ptr( 330 scoped_ptr<LayerImpl> scroll_layer_scoped_ptr(
330 LayerImpl::Create(host_impl.active_tree(), 2)); 331 LayerImpl::Create(host_impl.active_tree(), 2));
331 LayerImpl* scroll_layer = scroll_layer_scoped_ptr.get(); 332 LayerImpl* scroll_layer = scroll_layer_scoped_ptr.get();
332 SetLayerPropertiesForTesting(scroll_layer, 333 SetLayerPropertiesForTesting(scroll_layer,
333 identity_matrix, 334 identity_matrix,
334 gfx::Point3F(), 335 gfx::Point3F(),
335 gfx::PointF(), 336 gfx::PointF(),
336 gfx::Size(10, 20), 337 gfx::Size(10, 20),
337 true, 338 true,
339 false,
338 false); 340 false);
339 scoped_ptr<LayerImpl> clip_layer_scoped_ptr( 341 scoped_ptr<LayerImpl> clip_layer_scoped_ptr(
340 LayerImpl::Create(host_impl.active_tree(), 4)); 342 LayerImpl::Create(host_impl.active_tree(), 4));
341 LayerImpl* clip_layer = clip_layer_scoped_ptr.get(); 343 LayerImpl* clip_layer = clip_layer_scoped_ptr.get();
342 344
343 scroll_layer->SetScrollClipLayer(clip_layer->id()); 345 scroll_layer->SetScrollClipLayer(clip_layer->id());
344 clip_layer->SetBounds( 346 clip_layer->SetBounds(
345 gfx::Size(scroll_layer->bounds().width() + kMaxScrollOffset.x(), 347 gfx::Size(scroll_layer->bounds().width() + kMaxScrollOffset.x(),
346 scroll_layer->bounds().height() + kMaxScrollOffset.y())); 348 scroll_layer->bounds().height() + kMaxScrollOffset.y()));
347 scroll_layer->SetScrollClipLayer(clip_layer->id()); 349 scroll_layer->SetScrollClipLayer(clip_layer->id());
348 scroll_layer->SetScrollDelta(kScrollDelta); 350 scroll_layer->SetScrollDelta(kScrollDelta);
349 gfx::Transform impl_transform; 351 gfx::Transform impl_transform;
350 scroll_layer->AddChild(sublayer_scoped_ptr.Pass()); 352 scroll_layer->AddChild(sublayer_scoped_ptr.Pass());
351 LayerImpl* scroll_layer_raw_ptr = scroll_layer_scoped_ptr.get(); 353 LayerImpl* scroll_layer_raw_ptr = scroll_layer_scoped_ptr.get();
352 clip_layer->AddChild(scroll_layer_scoped_ptr.Pass()); 354 clip_layer->AddChild(scroll_layer_scoped_ptr.Pass());
353 scroll_layer_raw_ptr->SetScrollOffset(kScrollOffset); 355 scroll_layer_raw_ptr->SetScrollOffset(kScrollOffset);
354 356
355 scoped_ptr<LayerImpl> root(LayerImpl::Create(host_impl.active_tree(), 3)); 357 scoped_ptr<LayerImpl> root(LayerImpl::Create(host_impl.active_tree(), 3));
356 SetLayerPropertiesForTesting(root.get(), 358 SetLayerPropertiesForTesting(root.get(),
357 identity_matrix, 359 identity_matrix,
358 gfx::Point3F(), 360 gfx::Point3F(),
359 gfx::PointF(), 361 gfx::PointF(),
360 gfx::Size(3, 4), 362 gfx::Size(3, 4),
361 true, 363 true,
364 false,
362 false); 365 false);
363 root->AddChild(clip_layer_scoped_ptr.Pass()); 366 root->AddChild(clip_layer_scoped_ptr.Pass());
367 root->SetHasRenderSurface(true);
364 368
365 ExecuteCalculateDrawProperties( 369 ExecuteCalculateDrawProperties(
366 root.get(), kDeviceScale, kPageScale, scroll_layer->parent()); 370 root.get(), kDeviceScale, kPageScale, scroll_layer->parent());
367 gfx::Transform expected_transform = identity_matrix; 371 gfx::Transform expected_transform = identity_matrix;
368 gfx::PointF sub_layer_screen_position = kScrollLayerPosition - kScrollDelta; 372 gfx::PointF sub_layer_screen_position = kScrollLayerPosition - kScrollDelta;
369 sub_layer_screen_position.Scale(kPageScale * kDeviceScale); 373 sub_layer_screen_position.Scale(kPageScale * kDeviceScale);
370 expected_transform.Translate(MathUtil::Round(sub_layer_screen_position.x()), 374 expected_transform.Translate(MathUtil::Round(sub_layer_screen_position.x()),
371 MathUtil::Round(sub_layer_screen_position.y())); 375 MathUtil::Round(sub_layer_screen_position.y()));
372 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform, 376 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform,
373 sublayer->draw_transform()); 377 sublayer->draw_transform());
374 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform, 378 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform,
375 sublayer->screen_space_transform()); 379 sublayer->screen_space_transform());
376 380
377 gfx::Transform arbitrary_translate; 381 gfx::Transform arbitrary_translate;
378 const float kTranslateX = 10.6f; 382 const float kTranslateX = 10.6f;
379 const float kTranslateY = 20.6f; 383 const float kTranslateY = 20.6f;
380 arbitrary_translate.Translate(kTranslateX, kTranslateY); 384 arbitrary_translate.Translate(kTranslateX, kTranslateY);
381 SetLayerPropertiesForTesting(scroll_layer, 385 SetLayerPropertiesForTesting(scroll_layer,
382 arbitrary_translate, 386 arbitrary_translate,
383 gfx::Point3F(), 387 gfx::Point3F(),
384 gfx::PointF(), 388 gfx::PointF(),
385 gfx::Size(10, 20), 389 gfx::Size(10, 20),
386 true, 390 true,
391 false,
387 false); 392 false);
388 ExecuteCalculateDrawProperties( 393 ExecuteCalculateDrawProperties(
389 root.get(), kDeviceScale, kPageScale, scroll_layer->parent()); 394 root.get(), kDeviceScale, kPageScale, scroll_layer->parent());
390 expected_transform.MakeIdentity(); 395 expected_transform.MakeIdentity();
391 expected_transform.Translate( 396 expected_transform.Translate(
392 MathUtil::Round(kTranslateX * kPageScale * kDeviceScale + 397 MathUtil::Round(kTranslateX * kPageScale * kDeviceScale +
393 sub_layer_screen_position.x()), 398 sub_layer_screen_position.x()),
394 MathUtil::Round(kTranslateY * kPageScale * kDeviceScale + 399 MathUtil::Round(kTranslateY * kPageScale * kDeviceScale +
395 sub_layer_screen_position.y())); 400 sub_layer_screen_position.y()));
396 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform, 401 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_transform,
(...skipping 3350 matching lines...) Expand 10 before | Expand all | Expand 10 after
3747 gfx::Size(100, 100), 3752 gfx::Size(100, 100),
3748 true, 3753 true,
3749 true); 3754 true);
3750 3755
3751 RenderSurfaceLayerList render_surface_layer_list; 3756 RenderSurfaceLayerList render_surface_layer_list;
3752 LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs( 3757 LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs(
3753 parent.get(), parent->bounds(), &render_surface_layer_list); 3758 parent.get(), parent->bounds(), &render_surface_layer_list);
3754 inputs.can_adjust_raster_scales = true; 3759 inputs.can_adjust_raster_scales = true;
3755 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 3760 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
3756 3761
3757 // Verify which render surfaces were created. 3762 // Verify which render surfaces were created and used.
3758 EXPECT_FALSE(front_facing_child->render_surface()); 3763 EXPECT_FALSE(front_facing_child->render_surface());
3759 EXPECT_FALSE(back_facing_child->render_surface()); 3764 EXPECT_FALSE(back_facing_child->render_surface());
3760 EXPECT_TRUE(front_facing_surface->render_surface()); 3765 EXPECT_TRUE(front_facing_surface->render_surface());
3761 EXPECT_FALSE(back_facing_surface->render_surface()); 3766 EXPECT_NE(back_facing_surface->render_target(), back_facing_surface);
3767 // We expect that a render_surface was created but not used.
3768 EXPECT_TRUE(back_facing_surface->render_surface());
3762 EXPECT_FALSE(front_facing_child_of_front_facing_surface->render_surface()); 3769 EXPECT_FALSE(front_facing_child_of_front_facing_surface->render_surface());
3763 EXPECT_FALSE(back_facing_child_of_front_facing_surface->render_surface()); 3770 EXPECT_FALSE(back_facing_child_of_front_facing_surface->render_surface());
3764 EXPECT_FALSE(front_facing_child_of_back_facing_surface->render_surface()); 3771 EXPECT_FALSE(front_facing_child_of_back_facing_surface->render_surface());
3765 EXPECT_FALSE(back_facing_child_of_back_facing_surface->render_surface()); 3772 EXPECT_FALSE(back_facing_child_of_back_facing_surface->render_surface());
3766 3773
3767 // Verify the render_surface_layer_list. The back-facing surface should be 3774 // Verify the render_surface_layer_list. The back-facing surface should be
3768 // culled. 3775 // culled.
3769 ASSERT_EQ(2u, render_surface_layer_list.size()); 3776 ASSERT_EQ(2u, render_surface_layer_list.size());
3770 EXPECT_EQ(parent->id(), render_surface_layer_list.at(0)->id()); 3777 EXPECT_EQ(parent->id(), render_surface_layer_list.at(0)->id());
3771 EXPECT_EQ(front_facing_surface->id(), render_surface_layer_list.at(1)->id()); 3778 EXPECT_EQ(front_facing_surface->id(), render_surface_layer_list.at(1)->id());
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
4015 4022
4016 front_facing_surface->Set3dSortingContextId(1); 4023 front_facing_surface->Set3dSortingContextId(1);
4017 back_facing_surface->Set3dSortingContextId(1); 4024 back_facing_surface->Set3dSortingContextId(1);
4018 4025
4019 RenderSurfaceLayerList render_surface_layer_list; 4026 RenderSurfaceLayerList render_surface_layer_list;
4020 LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs( 4027 LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs(
4021 parent.get(), parent->bounds(), &render_surface_layer_list); 4028 parent.get(), parent->bounds(), &render_surface_layer_list);
4022 inputs.can_adjust_raster_scales = true; 4029 inputs.can_adjust_raster_scales = true;
4023 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 4030 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
4024 4031
4025 // Verify which render surfaces were created. 4032 // Verify which render surfaces were created and used.
4026 EXPECT_TRUE(front_facing_surface->render_surface()); 4033 EXPECT_TRUE(front_facing_surface->render_surface());
4027 EXPECT_FALSE( 4034
4028 back_facing_surface->render_surface()); // because it should be culled 4035 // We expect the render surface to have been created, but remain unused.
4036 EXPECT_TRUE(back_facing_surface->render_surface());
4037 EXPECT_NE(back_facing_surface->render_target(),
4038 back_facing_surface); // because it should be culled
4029 EXPECT_FALSE(child1->render_surface()); 4039 EXPECT_FALSE(child1->render_surface());
4030 EXPECT_FALSE(child2->render_surface()); 4040 EXPECT_FALSE(child2->render_surface());
4031 4041
4032 // Verify the render_surface_layer_list. The back-facing surface should be 4042 // Verify the render_surface_layer_list. The back-facing surface should be
4033 // culled. 4043 // culled.
4034 ASSERT_EQ(2u, render_surface_layer_list.size()); 4044 ASSERT_EQ(2u, render_surface_layer_list.size());
4035 EXPECT_EQ(parent->id(), render_surface_layer_list.at(0)->id()); 4045 EXPECT_EQ(parent->id(), render_surface_layer_list.at(0)->id());
4036 EXPECT_EQ(front_facing_surface->id(), render_surface_layer_list.at(1)->id()); 4046 EXPECT_EQ(front_facing_surface->id(), render_surface_layer_list.at(1)->id());
4037 4047
4038 // Verify root surface's layer list. 4048 // Verify root surface's layer list.
(...skipping 1566 matching lines...) Expand 10 before | Expand all | Expand 10 after
5605 host_impl.CreatePendingTree(); 5615 host_impl.CreatePendingTree();
5606 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1); 5616 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1);
5607 5617
5608 const gfx::Transform identity_matrix; 5618 const gfx::Transform identity_matrix;
5609 SetLayerPropertiesForTesting(root.get(), 5619 SetLayerPropertiesForTesting(root.get(),
5610 identity_matrix, 5620 identity_matrix,
5611 gfx::Point3F(), 5621 gfx::Point3F(),
5612 gfx::PointF(), 5622 gfx::PointF(),
5613 gfx::Size(100, 100), 5623 gfx::Size(100, 100),
5614 true, 5624 true,
5625 false,
5615 false); 5626 false);
5616 root->SetDrawsContent(true); 5627 root->SetDrawsContent(true);
5617 5628
5618 scoped_ptr<LayerImpl> child = LayerImpl::Create(host_impl.pending_tree(), 2); 5629 scoped_ptr<LayerImpl> child = LayerImpl::Create(host_impl.pending_tree(), 2);
5619 SetLayerPropertiesForTesting(child.get(), 5630 SetLayerPropertiesForTesting(child.get(),
5620 identity_matrix, 5631 identity_matrix,
5621 gfx::Point3F(), 5632 gfx::Point3F(),
5622 gfx::PointF(), 5633 gfx::PointF(),
5623 gfx::Size(50, 50), 5634 gfx::Size(50, 50),
5624 true, 5635 true,
5636 false,
5625 false); 5637 false);
5626 child->SetDrawsContent(true); 5638 child->SetDrawsContent(true);
5627 child->SetOpacity(0.0f); 5639 child->SetOpacity(0.0f);
5628 5640
5629 // Add opacity animation. 5641 // Add opacity animation.
5630 AddOpacityTransitionToController( 5642 AddOpacityTransitionToController(
5631 child->layer_animation_controller(), 10.0, 0.0f, 1.0f, false); 5643 child->layer_animation_controller(), 10.0, 0.0f, 1.0f, false);
5632 5644
5633 root->AddChild(child.Pass()); 5645 root->AddChild(child.Pass());
5646 root->SetHasRenderSurface(true);
5634 5647
5635 LayerImplList render_surface_layer_list; 5648 LayerImplList render_surface_layer_list;
5636 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( 5649 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs(
5637 root.get(), root->bounds(), &render_surface_layer_list); 5650 root.get(), root->bounds(), &render_surface_layer_list);
5638 inputs.can_adjust_raster_scales = true; 5651 inputs.can_adjust_raster_scales = true;
5639 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 5652 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
5640 5653
5641 // We should have one render surface and two layers. The child 5654 // We should have one render surface and two layers. The child
5642 // layer should be included even though it is transparent. 5655 // layer should be included even though it is transparent.
5643 ASSERT_EQ(1u, render_surface_layer_list.size()); 5656 ASSERT_EQ(1u, render_surface_layer_list.size());
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
5863 host_impl.CreatePendingTree(); 5876 host_impl.CreatePendingTree();
5864 const gfx::Transform identity_matrix; 5877 const gfx::Transform identity_matrix;
5865 5878
5866 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1); 5879 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1);
5867 SetLayerPropertiesForTesting(root.get(), 5880 SetLayerPropertiesForTesting(root.get(),
5868 identity_matrix, 5881 identity_matrix,
5869 gfx::Point3F(), 5882 gfx::Point3F(),
5870 gfx::PointF(), 5883 gfx::PointF(),
5871 gfx::Size(50, 50), 5884 gfx::Size(50, 50),
5872 true, 5885 true,
5886 false,
5873 false); 5887 false);
5874 root->SetDrawsContent(true); 5888 root->SetDrawsContent(true);
5875 5889
5876 scoped_ptr<LayerImpl> child = LayerImpl::Create(host_impl.pending_tree(), 2); 5890 scoped_ptr<LayerImpl> child = LayerImpl::Create(host_impl.pending_tree(), 2);
5877 SetLayerPropertiesForTesting(child.get(), 5891 SetLayerPropertiesForTesting(child.get(),
5878 identity_matrix, 5892 identity_matrix,
5879 gfx::Point3F(), 5893 gfx::Point3F(),
5880 gfx::PointF(), 5894 gfx::PointF(),
5881 gfx::Size(40, 40), 5895 gfx::Size(40, 40),
5882 true, 5896 true,
5897 false,
5883 false); 5898 false);
5884 child->SetDrawsContent(true); 5899 child->SetDrawsContent(true);
5885 5900
5886 scoped_ptr<LayerImpl> grand_child = 5901 scoped_ptr<LayerImpl> grand_child =
5887 LayerImpl::Create(host_impl.pending_tree(), 3); 5902 LayerImpl::Create(host_impl.pending_tree(), 3);
5888 SetLayerPropertiesForTesting(grand_child.get(), 5903 SetLayerPropertiesForTesting(grand_child.get(),
5889 identity_matrix, 5904 identity_matrix,
5890 gfx::Point3F(), 5905 gfx::Point3F(),
5891 gfx::PointF(), 5906 gfx::PointF(),
5892 gfx::Size(30, 30), 5907 gfx::Size(30, 30),
5893 true, 5908 true,
5909 false,
5894 false); 5910 false);
5895 grand_child->SetDrawsContent(true); 5911 grand_child->SetDrawsContent(true);
5896 grand_child->SetHideLayerAndSubtree(true); 5912 grand_child->SetHideLayerAndSubtree(true);
5897 5913
5898 child->AddChild(grand_child.Pass()); 5914 child->AddChild(grand_child.Pass());
5899 root->AddChild(child.Pass()); 5915 root->AddChild(child.Pass());
5916 root->SetHasRenderSurface(true);
5900 5917
5901 LayerImplList render_surface_layer_list; 5918 LayerImplList render_surface_layer_list;
5902 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( 5919 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs(
5903 root.get(), root->bounds(), &render_surface_layer_list); 5920 root.get(), root->bounds(), &render_surface_layer_list);
5904 inputs.can_adjust_raster_scales = true; 5921 inputs.can_adjust_raster_scales = true;
5905 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 5922 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
5906 5923
5907 // We should have one render surface and two layers. The grand child has 5924 // We should have one render surface and two layers. The grand child has
5908 // hidden itself. 5925 // hidden itself.
5909 ASSERT_EQ(1u, render_surface_layer_list.size()); 5926 ASSERT_EQ(1u, render_surface_layer_list.size());
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
5976 host_impl.CreatePendingTree(); 5993 host_impl.CreatePendingTree();
5977 const gfx::Transform identity_matrix; 5994 const gfx::Transform identity_matrix;
5978 5995
5979 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1); 5996 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl.pending_tree(), 1);
5980 SetLayerPropertiesForTesting(root.get(), 5997 SetLayerPropertiesForTesting(root.get(),
5981 identity_matrix, 5998 identity_matrix,
5982 gfx::Point3F(), 5999 gfx::Point3F(),
5983 gfx::PointF(), 6000 gfx::PointF(),
5984 gfx::Size(50, 50), 6001 gfx::Size(50, 50),
5985 true, 6002 true,
5986 false); 6003 false,
6004 true);
5987 root->SetDrawsContent(true); 6005 root->SetDrawsContent(true);
5988 6006
5989 scoped_ptr<LayerImpl> child = LayerImpl::Create(host_impl.pending_tree(), 2); 6007 scoped_ptr<LayerImpl> child = LayerImpl::Create(host_impl.pending_tree(), 2);
5990 SetLayerPropertiesForTesting(child.get(), 6008 SetLayerPropertiesForTesting(child.get(),
5991 identity_matrix, 6009 identity_matrix,
5992 gfx::Point3F(), 6010 gfx::Point3F(),
5993 gfx::PointF(), 6011 gfx::PointF(),
5994 gfx::Size(40, 40), 6012 gfx::Size(40, 40),
5995 true, 6013 true,
6014 false,
5996 false); 6015 false);
5997 child->SetDrawsContent(true); 6016 child->SetDrawsContent(true);
5998 child->SetHideLayerAndSubtree(true); 6017 child->SetHideLayerAndSubtree(true);
5999 6018
6000 scoped_ptr<LayerImpl> grand_child = 6019 scoped_ptr<LayerImpl> grand_child =
6001 LayerImpl::Create(host_impl.pending_tree(), 3); 6020 LayerImpl::Create(host_impl.pending_tree(), 3);
6002 SetLayerPropertiesForTesting(grand_child.get(), 6021 SetLayerPropertiesForTesting(grand_child.get(),
6003 identity_matrix, 6022 identity_matrix,
6004 gfx::Point3F(), 6023 gfx::Point3F(),
6005 gfx::PointF(), 6024 gfx::PointF(),
6006 gfx::Size(30, 30), 6025 gfx::Size(30, 30),
6007 true, 6026 true,
6027 false,
6008 false); 6028 false);
6009 grand_child->SetDrawsContent(true); 6029 grand_child->SetDrawsContent(true);
6010 6030
6011 child->AddChild(grand_child.Pass()); 6031 child->AddChild(grand_child.Pass());
6012 root->AddChild(child.Pass()); 6032 root->AddChild(child.Pass());
6013 6033
6014 LayerImplList render_surface_layer_list; 6034 LayerImplList render_surface_layer_list;
6015 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( 6035 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs(
6016 root.get(), root->bounds(), &render_surface_layer_list); 6036 root.get(), root->bounds(), &render_surface_layer_list);
6017 inputs.can_adjust_raster_scales = true; 6037 inputs.can_adjust_raster_scales = true;
(...skipping 857 matching lines...) Expand 10 before | Expand all | Expand 10 after
6875 gfx::Transform identity_matrix; 6895 gfx::Transform identity_matrix;
6876 gfx::Point3F transform_origin; 6896 gfx::Point3F transform_origin;
6877 gfx::PointF position; 6897 gfx::PointF position;
6878 gfx::Size bounds(100, 100); 6898 gfx::Size bounds(100, 100);
6879 SetLayerPropertiesForTesting(root.get(), 6899 SetLayerPropertiesForTesting(root.get(),
6880 identity_matrix, 6900 identity_matrix,
6881 transform_origin, 6901 transform_origin,
6882 position, 6902 position,
6883 bounds, 6903 bounds,
6884 true, 6904 true,
6885 false); 6905 false,
6906 true);
6886 root->SetDrawsContent(true); 6907 root->SetDrawsContent(true);
6887 6908
6888 // This layer structure normally forces render surface due to preserves3d 6909 // This layer structure normally forces render surface due to preserves3d
6889 // behavior. 6910 // behavior.
6890 SetLayerPropertiesForTesting(child1.get(), 6911 SetLayerPropertiesForTesting(child1.get(),
6891 identity_matrix, 6912 identity_matrix,
6892 transform_origin, 6913 transform_origin,
6893 position, 6914 position,
6894 bounds, 6915 bounds,
6895 false, 6916 false,
6917 true,
6896 true); 6918 true);
6897 child1->SetDrawsContent(true); 6919 child1->SetDrawsContent(true);
6898 SetLayerPropertiesForTesting(child2.get(), 6920 SetLayerPropertiesForTesting(child2.get(),
6899 identity_matrix, 6921 identity_matrix,
6900 transform_origin, 6922 transform_origin,
6901 position, 6923 position,
6902 bounds, 6924 bounds,
6903 true, 6925 true,
6926 false,
6904 false); 6927 false);
6905 child2->SetDrawsContent(true); 6928 child2->SetDrawsContent(true);
6906 SetLayerPropertiesForTesting(child3.get(), 6929 SetLayerPropertiesForTesting(child3.get(),
6907 identity_matrix, 6930 identity_matrix,
6908 transform_origin, 6931 transform_origin,
6909 position, 6932 position,
6910 bounds, 6933 bounds,
6911 true, 6934 true,
6935 false,
6912 false); 6936 false);
6913 child3->SetDrawsContent(true); 6937 child3->SetDrawsContent(true);
6914 6938
6915 child2->Set3dSortingContextId(1); 6939 child2->Set3dSortingContextId(1);
6916 child3->Set3dSortingContextId(1); 6940 child3->Set3dSortingContextId(1);
6917 6941
6918 child2->AddChild(child3.Pass()); 6942 child2->AddChild(child3.Pass());
6919 child1->AddChild(child2.Pass()); 6943 child1->AddChild(child2.Pass());
6920 root->AddChild(child1.Pass()); 6944 root->AddChild(child1.Pass());
6921 6945
(...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after
7550 top_transform.Translate3d(0.0, 0.0, 5.0); 7574 top_transform.Translate3d(0.0, 0.0, 5.0);
7551 gfx::Transform bottom_transform; 7575 gfx::Transform bottom_transform;
7552 bottom_transform.Translate3d(0.0, 0.0, 3.0); 7576 bottom_transform.Translate3d(0.0, 0.0, 3.0);
7553 7577
7554 SetLayerPropertiesForTesting(root.get(), 7578 SetLayerPropertiesForTesting(root.get(),
7555 identity_transform, 7579 identity_transform,
7556 gfx::Point3F(), 7580 gfx::Point3F(),
7557 gfx::PointF(), 7581 gfx::PointF(),
7558 gfx::Size(50, 50), 7582 gfx::Size(50, 50),
7559 true, 7583 true,
7560 false); 7584 false,
7585 true);
7561 SetLayerPropertiesForTesting(scroll_parent_border.get(), 7586 SetLayerPropertiesForTesting(scroll_parent_border.get(),
7562 identity_transform, 7587 identity_transform,
7563 gfx::Point3F(), 7588 gfx::Point3F(),
7564 gfx::PointF(), 7589 gfx::PointF(),
7565 gfx::Size(40, 40), 7590 gfx::Size(40, 40),
7566 true, 7591 true,
7592 false,
7567 false); 7593 false);
7568 SetLayerPropertiesForTesting(scroll_parent_clip.get(), 7594 SetLayerPropertiesForTesting(scroll_parent_clip.get(),
7569 identity_transform, 7595 identity_transform,
7570 gfx::Point3F(), 7596 gfx::Point3F(),
7571 gfx::PointF(), 7597 gfx::PointF(),
7572 gfx::Size(30, 30), 7598 gfx::Size(30, 30),
7573 true, 7599 true,
7600 false,
7574 false); 7601 false);
7575 SetLayerPropertiesForTesting(scroll_parent.get(), 7602 SetLayerPropertiesForTesting(scroll_parent.get(),
7576 identity_transform, 7603 identity_transform,
7577 gfx::Point3F(), 7604 gfx::Point3F(),
7578 gfx::PointF(), 7605 gfx::PointF(),
7579 gfx::Size(50, 50), 7606 gfx::Size(50, 50),
7580 true, 7607 true,
7608 false,
7581 false); 7609 false);
7582 SetLayerPropertiesForTesting(scroll_child.get(), 7610 SetLayerPropertiesForTesting(scroll_child.get(),
7583 identity_transform, 7611 identity_transform,
7584 gfx::Point3F(), 7612 gfx::Point3F(),
7585 gfx::PointF(), 7613 gfx::PointF(),
7586 gfx::Size(50, 50), 7614 gfx::Size(50, 50),
7587 true, 7615 true,
7616 false,
7588 false); 7617 false);
7589 SetLayerPropertiesForTesting(top_content.get(), 7618 SetLayerPropertiesForTesting(top_content.get(),
7590 top_transform, 7619 top_transform,
7591 gfx::Point3F(), 7620 gfx::Point3F(),
7592 gfx::PointF(), 7621 gfx::PointF(),
7593 gfx::Size(50, 50), 7622 gfx::Size(50, 50),
7594 false, 7623 false,
7624 true,
7595 true); 7625 true);
7596 SetLayerPropertiesForTesting(bottom_content.get(), 7626 SetLayerPropertiesForTesting(bottom_content.get(),
7597 bottom_transform, 7627 bottom_transform,
7598 gfx::Point3F(), 7628 gfx::Point3F(),
7599 gfx::PointF(), 7629 gfx::PointF(),
7600 gfx::Size(50, 50), 7630 gfx::Size(50, 50),
7601 false, 7631 false,
7632 true,
7602 true); 7633 true);
7603 7634
7604 scroll_child->SetShouldFlattenTransform(false); 7635 scroll_child->SetShouldFlattenTransform(false);
7605 scroll_child->Set3dSortingContextId(1); 7636 scroll_child->Set3dSortingContextId(1);
7606 7637
7607 scroll_child->AddChild(top_content.Pass()); 7638 scroll_child->AddChild(top_content.Pass());
7608 scroll_child->AddChild(bottom_content.Pass()); 7639 scroll_child->AddChild(bottom_content.Pass());
7609 root->AddChild(scroll_child.Pass()); 7640 root->AddChild(scroll_child.Pass());
7610 7641
7611 scroll_parent_clip->AddChild(scroll_parent.Pass()); 7642 scroll_parent_clip->AddChild(scroll_parent.Pass());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
7668 gfx::Transform container_transform; 7699 gfx::Transform container_transform;
7669 container_transform.Translate3d(10.0, 20.0, 0.0); 7700 container_transform.Translate3d(10.0, 20.0, 0.0);
7670 gfx::Vector2dF container_offset = container_transform.To2dTranslation(); 7701 gfx::Vector2dF container_offset = container_transform.To2dTranslation();
7671 7702
7672 SetLayerPropertiesForTesting(root.get(), 7703 SetLayerPropertiesForTesting(root.get(),
7673 identity_transform, 7704 identity_transform,
7674 gfx::Point3F(), 7705 gfx::Point3F(),
7675 gfx::PointF(), 7706 gfx::PointF(),
7676 gfx::Size(50, 50), 7707 gfx::Size(50, 50),
7677 true, 7708 true,
7678 false); 7709 false,
7710 true);
7679 SetLayerPropertiesForTesting(container.get(), 7711 SetLayerPropertiesForTesting(container.get(),
7680 container_transform, 7712 container_transform,
7681 gfx::Point3F(), 7713 gfx::Point3F(),
7682 gfx::PointF(), 7714 gfx::PointF(),
7683 gfx::Size(40, 40), 7715 gfx::Size(40, 40),
7684 true, 7716 true,
7717 false,
7685 false); 7718 false);
7686 SetLayerPropertiesForTesting(scroller.get(), 7719 SetLayerPropertiesForTesting(scroller.get(),
7687 identity_transform, 7720 identity_transform,
7688 gfx::Point3F(), 7721 gfx::Point3F(),
7689 gfx::PointF(), 7722 gfx::PointF(),
7690 gfx::Size(30, 30), 7723 gfx::Size(30, 30),
7691 true, 7724 true,
7725 false,
7692 false); 7726 false);
7693 SetLayerPropertiesForTesting(fixed.get(), 7727 SetLayerPropertiesForTesting(fixed.get(),
7694 identity_transform, 7728 identity_transform,
7695 gfx::Point3F(), 7729 gfx::Point3F(),
7696 gfx::PointF(), 7730 gfx::PointF(),
7697 gfx::Size(50, 50), 7731 gfx::Size(50, 50),
7698 true, 7732 true,
7733 false,
7699 false); 7734 false);
7700 7735
7701 scroller->AddChild(fixed.Pass()); 7736 scroller->AddChild(fixed.Pass());
7702 container->AddChild(scroller.Pass()); 7737 container->AddChild(scroller.Pass());
7703 root->AddChild(container.Pass()); 7738 root->AddChild(container.Pass());
7704 7739
7705 // Rounded to integers already. 7740 // Rounded to integers already.
7706 { 7741 {
7707 gfx::Vector2dF scroll_delta(3.0, 5.0); 7742 gfx::Vector2dF scroll_delta(3.0, 5.0);
7708 scroll_layer->SetScrollDelta(scroll_delta); 7743 scroll_layer->SetScrollDelta(scroll_delta);
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
7832 child->AddChild(grand_child.Pass()); 7867 child->AddChild(grand_child.Pass());
7833 parent->AddChild(child.Pass()); 7868 parent->AddChild(child.Pass());
7834 grand_parent->AddChild(parent.Pass()); 7869 grand_parent->AddChild(parent.Pass());
7835 7870
7836 SetLayerPropertiesForTesting(grand_parent.get(), 7871 SetLayerPropertiesForTesting(grand_parent.get(),
7837 identity_matrix, 7872 identity_matrix,
7838 gfx::Point3F(), 7873 gfx::Point3F(),
7839 gfx::PointF(), 7874 gfx::PointF(),
7840 gfx::Size(1, 2), 7875 gfx::Size(1, 2),
7841 true, 7876 true,
7842 false); 7877 false,
7878 true);
7843 SetLayerPropertiesForTesting(parent_raw, 7879 SetLayerPropertiesForTesting(parent_raw,
7844 identity_matrix, 7880 identity_matrix,
7845 gfx::Point3F(), 7881 gfx::Point3F(),
7846 gfx::PointF(), 7882 gfx::PointF(),
7847 gfx::Size(1, 2), 7883 gfx::Size(1, 2),
7848 true, 7884 true,
7885 false,
7849 false); 7886 false);
7850 SetLayerPropertiesForTesting(child_raw, 7887 SetLayerPropertiesForTesting(child_raw,
7851 identity_matrix, 7888 identity_matrix,
7852 gfx::Point3F(), 7889 gfx::Point3F(),
7853 gfx::PointF(), 7890 gfx::PointF(),
7854 gfx::Size(1, 2), 7891 gfx::Size(1, 2),
7855 true, 7892 true,
7893 false,
7856 false); 7894 false);
7895
7857 SetLayerPropertiesForTesting(grand_child_raw, 7896 SetLayerPropertiesForTesting(grand_child_raw,
7858 identity_matrix, 7897 identity_matrix,
7859 gfx::Point3F(), 7898 gfx::Point3F(),
7860 gfx::PointF(), 7899 gfx::PointF(),
7861 gfx::Size(1, 2), 7900 gfx::Size(1, 2),
7862 true, 7901 true,
7902 false,
7863 false); 7903 false);
7864 7904
7865 ExecuteCalculateDrawProperties(grand_parent.get()); 7905 ExecuteCalculateDrawProperties(grand_parent.get());
7866 7906
7867 // No layers have animations. 7907 // No layers have animations.
7868 EXPECT_EQ(0.f, 7908 EXPECT_EQ(0.f,
7869 grand_parent->draw_properties().maximum_animation_contents_scale); 7909 grand_parent->draw_properties().maximum_animation_contents_scale);
7870 EXPECT_EQ(0.f, 7910 EXPECT_EQ(0.f,
7871 parent_raw->draw_properties().maximum_animation_contents_scale); 7911 parent_raw->draw_properties().maximum_animation_contents_scale);
7872 EXPECT_EQ(0.f, child_raw->draw_properties().maximum_animation_contents_scale); 7912 EXPECT_EQ(0.f, child_raw->draw_properties().maximum_animation_contents_scale);
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
8068 child->AddChild(grand_child2.Pass()); 8108 child->AddChild(grand_child2.Pass());
8069 parent->AddChild(child.Pass()); 8109 parent->AddChild(child.Pass());
8070 grand_parent->AddChild(parent.Pass()); 8110 grand_parent->AddChild(parent.Pass());
8071 8111
8072 SetLayerPropertiesForTesting(grand_parent_raw, 8112 SetLayerPropertiesForTesting(grand_parent_raw,
8073 identity_matrix, 8113 identity_matrix,
8074 gfx::Point3F(), 8114 gfx::Point3F(),
8075 gfx::PointF(), 8115 gfx::PointF(),
8076 gfx::Size(1, 2), 8116 gfx::Size(1, 2),
8077 true, 8117 true,
8078 false); 8118 false,
8119 true);
8079 SetLayerPropertiesForTesting(parent_raw, 8120 SetLayerPropertiesForTesting(parent_raw,
8080 identity_matrix, 8121 identity_matrix,
8081 gfx::Point3F(), 8122 gfx::Point3F(),
8082 gfx::PointF(), 8123 gfx::PointF(),
8083 gfx::Size(1, 2), 8124 gfx::Size(1, 2),
8084 true, 8125 true,
8126 false,
8085 false); 8127 false);
8128
8086 SetLayerPropertiesForTesting(child_raw, 8129 SetLayerPropertiesForTesting(child_raw,
8087 identity_matrix, 8130 identity_matrix,
8088 gfx::Point3F(), 8131 gfx::Point3F(),
8089 gfx::PointF(), 8132 gfx::PointF(),
8090 gfx::Size(1, 2), 8133 gfx::Size(1, 2),
8091 true, 8134 true,
8135 false,
8092 false); 8136 false);
8137
8093 SetLayerPropertiesForTesting(grand_child1_raw, 8138 SetLayerPropertiesForTesting(grand_child1_raw,
8094 identity_matrix, 8139 identity_matrix,
8095 gfx::Point3F(), 8140 gfx::Point3F(),
8096 gfx::PointF(), 8141 gfx::PointF(),
8097 gfx::Size(1, 2), 8142 gfx::Size(1, 2),
8098 true, 8143 true,
8144 false,
8099 false); 8145 false);
8146
8100 SetLayerPropertiesForTesting(grand_child2_raw, 8147 SetLayerPropertiesForTesting(grand_child2_raw,
8101 identity_matrix, 8148 identity_matrix,
8102 gfx::Point3F(), 8149 gfx::Point3F(),
8103 gfx::PointF(), 8150 gfx::PointF(),
8104 gfx::Size(1, 2), 8151 gfx::Size(1, 2),
8105 true, 8152 true,
8153 false,
8106 false); 8154 false);
8107 8155
8108 // Start with nothing being drawn. 8156 // Start with nothing being drawn.
8109 ExecuteCalculateDrawProperties(grand_parent_raw); 8157 ExecuteCalculateDrawProperties(grand_parent_raw);
8110 int member_id = render_surface_layer_list_count(); 8158 int member_id = render_surface_layer_list_count();
8111 8159
8112 EXPECT_NE(member_id, membership_id(grand_parent_raw)); 8160 EXPECT_NE(member_id, membership_id(grand_parent_raw));
8113 EXPECT_NE(member_id, membership_id(parent_raw)); 8161 EXPECT_NE(member_id, membership_id(parent_raw));
8114 EXPECT_NE(member_id, membership_id(child_raw)); 8162 EXPECT_NE(member_id, membership_id(child_raw));
8115 EXPECT_NE(member_id, membership_id(grand_child1_raw)); 8163 EXPECT_NE(member_id, membership_id(grand_child1_raw));
8116 EXPECT_NE(member_id, membership_id(grand_child2_raw)); 8164 EXPECT_NE(member_id, membership_id(grand_child2_raw));
8117 8165
8118 std::set<LayerImpl*> expected; 8166 std::set<LayerImpl*> expected;
8119 std::set<LayerImpl*> actual; 8167 std::set<LayerImpl*> actual;
8120 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); 8168 GatherDrawnLayers(render_surface_layer_list_impl(), &actual);
8121 EXPECT_EQ(expected, actual); 8169 EXPECT_EQ(expected, actual);
8122 8170
8123 // If we force render surface, but none of the layers are in the layer list, 8171 // If we force render surface, but none of the layers are in the layer list,
8124 // then this layer should not appear in RSLL. 8172 // then this layer should not appear in RSLL.
8125 grand_child1_raw->SetForceRenderSurface(true); 8173 grand_child1_raw->SetHasRenderSurface(true);
8126 8174
8127 ExecuteCalculateDrawProperties(grand_parent_raw); 8175 ExecuteCalculateDrawProperties(grand_parent_raw);
8128 member_id = render_surface_layer_list_count(); 8176 member_id = render_surface_layer_list_count();
8129 8177
8130 EXPECT_NE(member_id, membership_id(grand_parent_raw)); 8178 EXPECT_NE(member_id, membership_id(grand_parent_raw));
8131 EXPECT_NE(member_id, membership_id(parent_raw)); 8179 EXPECT_NE(member_id, membership_id(parent_raw));
8132 EXPECT_NE(member_id, membership_id(child_raw)); 8180 EXPECT_NE(member_id, membership_id(child_raw));
8133 EXPECT_NE(member_id, membership_id(grand_child1_raw)); 8181 EXPECT_NE(member_id, membership_id(grand_child1_raw));
8134 EXPECT_NE(member_id, membership_id(grand_child2_raw)); 8182 EXPECT_NE(member_id, membership_id(grand_child2_raw));
8135 8183
(...skipping 18 matching lines...) Expand all
8154 expected.clear(); 8202 expected.clear();
8155 expected.insert(grand_child1_raw); 8203 expected.insert(grand_child1_raw);
8156 8204
8157 actual.clear(); 8205 actual.clear();
8158 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); 8206 GatherDrawnLayers(render_surface_layer_list_impl(), &actual);
8159 EXPECT_EQ(expected, actual); 8207 EXPECT_EQ(expected, actual);
8160 8208
8161 // Now child is forced to have a render surface, and one if its children draws 8209 // Now child is forced to have a render surface, and one if its children draws
8162 // content. 8210 // content.
8163 grand_child1_raw->SetDrawsContent(false); 8211 grand_child1_raw->SetDrawsContent(false);
8164 grand_child1_raw->SetForceRenderSurface(false); 8212 grand_child1_raw->SetHasRenderSurface(false);
8165 child_raw->SetForceRenderSurface(true); 8213 child_raw->SetHasRenderSurface(true);
8166 grand_child2_raw->SetDrawsContent(true); 8214 grand_child2_raw->SetDrawsContent(true);
8167 8215
8168 ExecuteCalculateDrawProperties(grand_parent_raw); 8216 ExecuteCalculateDrawProperties(grand_parent_raw);
8169 member_id = render_surface_layer_list_count(); 8217 member_id = render_surface_layer_list_count();
8170 8218
8171 EXPECT_NE(member_id, membership_id(grand_parent_raw)); 8219 EXPECT_NE(member_id, membership_id(grand_parent_raw));
8172 EXPECT_NE(member_id, membership_id(parent_raw)); 8220 EXPECT_NE(member_id, membership_id(parent_raw));
8173 EXPECT_NE(member_id, membership_id(child_raw)); 8221 EXPECT_NE(member_id, membership_id(child_raw));
8174 EXPECT_NE(member_id, membership_id(grand_child1_raw)); 8222 EXPECT_NE(member_id, membership_id(grand_child1_raw));
8175 EXPECT_EQ(member_id, membership_id(grand_child2_raw)); 8223 EXPECT_EQ(member_id, membership_id(grand_child2_raw));
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
8322 scale_transform_child2; 8370 scale_transform_child2;
8323 scale_transform_child1.Scale(2, 3); 8371 scale_transform_child1.Scale(2, 3);
8324 scale_transform_child2.Scale(4, 5); 8372 scale_transform_child2.Scale(4, 5);
8325 8373
8326 SetLayerPropertiesForTesting(root_layer, 8374 SetLayerPropertiesForTesting(root_layer,
8327 identity_matrix, 8375 identity_matrix,
8328 gfx::Point3F(), 8376 gfx::Point3F(),
8329 gfx::PointF(), 8377 gfx::PointF(),
8330 gfx::Size(1, 1), 8378 gfx::Size(1, 1),
8331 true, 8379 true,
8332 false); 8380 false,
8381 true);
8333 SetLayerPropertiesForTesting(child1_layer, 8382 SetLayerPropertiesForTesting(child1_layer,
8334 scale_transform_child1, 8383 scale_transform_child1,
8335 gfx::Point3F(), 8384 gfx::Point3F(),
8336 gfx::PointF(), 8385 gfx::PointF(),
8337 gfx::Size(), 8386 gfx::Size(),
8338 true, 8387 true,
8388 false,
8339 false); 8389 false);
8340 8390
8341 child1_layer->SetMaskLayer( 8391 child1_layer->SetMaskLayer(
8342 LayerImpl::Create(host_impl.active_tree(), 4).Pass()); 8392 LayerImpl::Create(host_impl.active_tree(), 4).Pass());
8343 8393
8344 scoped_ptr<LayerImpl> replica_layer = 8394 scoped_ptr<LayerImpl> replica_layer =
8345 LayerImpl::Create(host_impl.active_tree(), 5); 8395 LayerImpl::Create(host_impl.active_tree(), 5);
8346 replica_layer->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 6)); 8396 replica_layer->SetMaskLayer(LayerImpl::Create(host_impl.active_tree(), 6));
8347 child1_layer->SetReplicaLayer(replica_layer.Pass()); 8397 child1_layer->SetReplicaLayer(replica_layer.Pass());
8348 8398
8349 ExecuteCalculateDrawProperties(root_layer); 8399 ExecuteCalculateDrawProperties(root_layer);
8350 8400
8351 TransformOperations scale; 8401 TransformOperations scale;
8352 scale.AppendScale(5.f, 8.f, 3.f); 8402 scale.AppendScale(5.f, 8.f, 3.f);
8353 8403
8354 AddAnimatedTransformToLayer(child2_layer, 1.0, TransformOperations(), scale); 8404 AddAnimatedTransformToLayer(child2_layer, 1.0, TransformOperations(), scale);
8355 SetLayerPropertiesForTesting(child2_layer, 8405 SetLayerPropertiesForTesting(child2_layer,
8356 scale_transform_child2, 8406 scale_transform_child2,
8357 gfx::Point3F(), 8407 gfx::Point3F(),
8358 gfx::PointF(), 8408 gfx::PointF(),
8359 gfx::Size(), 8409 gfx::Size(),
8360 true, 8410 true,
8411 false,
8361 false); 8412 false);
8362 8413
8363 ExecuteCalculateDrawProperties(root_layer); 8414 ExecuteCalculateDrawProperties(root_layer);
8364 8415
8365 EXPECT_FLOAT_EQ(1.f, root_layer->draw_properties().ideal_contents_scale); 8416 EXPECT_FLOAT_EQ(1.f, root_layer->draw_properties().ideal_contents_scale);
8366 EXPECT_FLOAT_EQ(3.f, child1_layer->draw_properties().ideal_contents_scale); 8417 EXPECT_FLOAT_EQ(3.f, child1_layer->draw_properties().ideal_contents_scale);
8367 EXPECT_FLOAT_EQ( 8418 EXPECT_FLOAT_EQ(
8368 3.f, child1_layer->mask_layer()->draw_properties().ideal_contents_scale); 8419 3.f, child1_layer->mask_layer()->draw_properties().ideal_contents_scale);
8369 EXPECT_FLOAT_EQ(3.f, 8420 EXPECT_FLOAT_EQ(3.f,
8370 child1_layer->replica_layer() 8421 child1_layer->replica_layer()
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
8587 // by the viewport. 8638 // by the viewport.
8588 EXPECT_EQ(gfx::Rect(768 / 2, 582 / 2), root->visible_content_rect()); 8639 EXPECT_EQ(gfx::Rect(768 / 2, 582 / 2), root->visible_content_rect());
8589 8640
8590 // Layers drawing to a child render surface should still have their visible 8641 // Layers drawing to a child render surface should still have their visible
8591 // content rect clipped by the viewport. 8642 // content rect clipped by the viewport.
8592 EXPECT_EQ(gfx::Rect(768 / 2, 582 / 2), content->visible_content_rect()); 8643 EXPECT_EQ(gfx::Rect(768 / 2, 582 / 2), content->visible_content_rect());
8593 } 8644 }
8594 8645
8595 } // namespace 8646 } // namespace
8596 } // namespace cc 8647 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698