| 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 9efcaea63ac3354ee8ca15c1e84dec869a848f8b..17dd4a849574e04fb09a2116df98ac1601adb7d1 100644
|
| --- a/cc/trees/layer_tree_host_common_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_common_unittest.cc
|
| @@ -23,6 +23,8 @@
|
| #include "cc/test/fake_impl_proxy.h"
|
| #include "cc/test/fake_layer_tree_host.h"
|
| #include "cc/test/fake_layer_tree_host_impl.h"
|
| +#include "cc/test/fake_picture_layer.h"
|
| +#include "cc/test/fake_picture_layer_impl.h"
|
| #include "cc/test/geometry_test_utils.h"
|
| #include "cc/test/layer_tree_host_common_test.h"
|
| #include "cc/trees/layer_tree_impl.h"
|
| @@ -60,6 +62,14 @@ class MockContentLayerClient : public ContentLayerClient {
|
| virtual bool FillsBoundsCompletely() const override { return false; }
|
| };
|
|
|
| +scoped_refptr<FakePictureLayer> CreateDrawablePictureLayer(
|
| + ContentLayerClient* delegate) {
|
| + scoped_refptr<FakePictureLayer> to_return =
|
| + FakePictureLayer::Create(delegate);
|
| + to_return->SetIsDrawable(true);
|
| + return to_return;
|
| +}
|
| +
|
| scoped_refptr<ContentLayer> CreateDrawableContentLayer(
|
| ContentLayerClient* delegate) {
|
| scoped_refptr<ContentLayer> to_return = ContentLayer::Create(delegate);
|
| @@ -73,6 +83,11 @@ scoped_refptr<ContentLayer> CreateDrawableContentLayer(
|
| EXPECT_FLOAT_EQ(expected, layer->contents_scale_y()); \
|
| } while (false)
|
|
|
| +#define EXPECT_IDEAL_SCALE_EQ(expected, layer) \
|
| + do { \
|
| + EXPECT_FLOAT_EQ(expected, layer->draw_properties().ideal_contents_scale); \
|
| + } while (false)
|
| +
|
| TEST_F(LayerTreeHostCommonTest, TransformsForNoOpLayer) {
|
| // Sanity check: For layers positioned at zero, with zero size,
|
| // and with identity transforms, then the draw transform,
|
| @@ -3261,13 +3276,13 @@ TEST_F(LayerTreeHostCommonTest, DrawableAndVisibleContentRectsInHighDPI) {
|
| MockContentLayerClient client;
|
|
|
| scoped_refptr<Layer> root = Layer::Create();
|
| - scoped_refptr<ContentLayer> render_surface1 =
|
| - CreateDrawableContentLayer(&client);
|
| - scoped_refptr<ContentLayer> render_surface2 =
|
| - CreateDrawableContentLayer(&client);
|
| - scoped_refptr<ContentLayer> child1 = CreateDrawableContentLayer(&client);
|
| - scoped_refptr<ContentLayer> child2 = CreateDrawableContentLayer(&client);
|
| - scoped_refptr<ContentLayer> child3 = CreateDrawableContentLayer(&client);
|
| + scoped_refptr<FakePictureLayer> render_surface1 =
|
| + CreateDrawablePictureLayer(&client);
|
| + scoped_refptr<FakePictureLayer> render_surface2 =
|
| + CreateDrawablePictureLayer(&client);
|
| + scoped_refptr<FakePictureLayer> child1 = CreateDrawablePictureLayer(&client);
|
| + scoped_refptr<FakePictureLayer> child2 = CreateDrawablePictureLayer(&client);
|
| + scoped_refptr<FakePictureLayer> child3 = CreateDrawablePictureLayer(&client);
|
| root->AddChild(render_surface1);
|
| render_surface1->AddChild(render_surface2);
|
| render_surface2->AddChild(child1);
|
| @@ -3353,15 +3368,15 @@ TEST_F(LayerTreeHostCommonTest, DrawableAndVisibleContentRectsInHighDPI) {
|
| // The root layer does not actually draw content of its own.
|
| EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visible_content_rect());
|
|
|
| - // All layer visible content rects are expressed in content space of each
|
| - // layer, so they are also scaled by the device_scale_factor.
|
| - EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 8),
|
| + // All layer visible content rects are not expressed in content space of each
|
| + // layer, so they are not scaled by the device_scale_factor.
|
| + EXPECT_RECT_EQ(gfx::Rect(0, 0, 3, 4),
|
| render_surface1->visible_content_rect());
|
| - EXPECT_RECT_EQ(gfx::Rect(0, 0, 14, 26),
|
| + EXPECT_RECT_EQ(gfx::Rect(0, 0, 7, 13),
|
| render_surface2->visible_content_rect());
|
| - EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), child1->visible_content_rect());
|
| - EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), child2->visible_content_rect());
|
| - EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), child3->visible_content_rect());
|
| + EXPECT_RECT_EQ(gfx::Rect(0, 0, 50, 50), child1->visible_content_rect());
|
| + EXPECT_RECT_EQ(gfx::Rect(0, 0, 50, 50), child2->visible_content_rect());
|
| + EXPECT_RECT_EQ(gfx::Rect(0, 0, 50, 50), child3->visible_content_rect());
|
| }
|
|
|
| TEST_F(LayerTreeHostCommonTest, BackFaceCullingWithoutPreserves3d) {
|
| @@ -4045,7 +4060,8 @@ TEST_F(LayerTreeHostCommonTest, LayerTransformsInHighDPI) {
|
| MockContentLayerClient delegate;
|
| gfx::Transform identity_matrix;
|
|
|
| - scoped_refptr<ContentLayer> parent = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> parent =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(parent.get(),
|
| identity_matrix,
|
| gfx::Point3F(),
|
| @@ -4054,7 +4070,7 @@ TEST_F(LayerTreeHostCommonTest, LayerTransformsInHighDPI) {
|
| false,
|
| true);
|
|
|
| - scoped_refptr<ContentLayer> child = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> child = CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(child.get(),
|
| identity_matrix,
|
| gfx::Point3F(),
|
| @@ -4063,8 +4079,8 @@ TEST_F(LayerTreeHostCommonTest, LayerTransformsInHighDPI) {
|
| false,
|
| true);
|
|
|
| - scoped_refptr<ContentLayer> child_empty =
|
| - CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> child_empty =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(child_empty.get(),
|
| identity_matrix,
|
| gfx::Point3F(),
|
| @@ -4073,19 +4089,8 @@ TEST_F(LayerTreeHostCommonTest, LayerTransformsInHighDPI) {
|
| false,
|
| true);
|
|
|
| - scoped_refptr<NoScaleContentLayer> child_no_scale =
|
| - CreateNoScaleDrawableContentLayer(&delegate);
|
| - SetLayerPropertiesForTesting(child_no_scale.get(),
|
| - identity_matrix,
|
| - gfx::Point3F(),
|
| - gfx::PointF(2.f, 2.f),
|
| - gfx::Size(10, 10),
|
| - false,
|
| - true);
|
| -
|
| parent->AddChild(child);
|
| parent->AddChild(child_empty);
|
| - parent->AddChild(child_no_scale);
|
|
|
| scoped_ptr<FakeLayerTreeHost> host(CreateFakeLayerTreeHost());
|
| host->SetRootLayer(parent);
|
| @@ -4101,16 +4106,16 @@ TEST_F(LayerTreeHostCommonTest, LayerTransformsInHighDPI) {
|
| inputs.can_adjust_raster_scales = true;
|
| LayerTreeHostCommon::CalculateDrawProperties(&inputs);
|
|
|
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, parent);
|
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, child);
|
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor,
|
| - child_empty);
|
| - EXPECT_CONTENTS_SCALE_EQ(1, child_no_scale);
|
| + EXPECT_IDEAL_SCALE_EQ(device_scale_factor * page_scale_factor, parent);
|
| + EXPECT_IDEAL_SCALE_EQ(device_scale_factor * page_scale_factor, child);
|
| + EXPECT_IDEAL_SCALE_EQ(device_scale_factor * page_scale_factor, child_empty);
|
|
|
| EXPECT_EQ(1u, render_surface_layer_list.size());
|
|
|
| // Verify parent transforms
|
| gfx::Transform expected_parent_transform;
|
| + expected_parent_transform.Scale(device_scale_factor * page_scale_factor,
|
| + device_scale_factor * page_scale_factor);
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_parent_transform,
|
| parent->screen_space_transform());
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_parent_transform,
|
| @@ -4131,9 +4136,9 @@ TEST_F(LayerTreeHostCommonTest, LayerTransformsInHighDPI) {
|
|
|
| // Verify child and child_empty transforms. They should match.
|
| gfx::Transform expected_child_transform;
|
| - expected_child_transform.Translate(
|
| - device_scale_factor * child->position().x(),
|
| - device_scale_factor * child->position().y());
|
| + expected_child_transform.Scale(device_scale_factor, device_scale_factor);
|
| + expected_child_transform.Translate(child->position().x(),
|
| + child->position().y());
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform,
|
| child->draw_transform());
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform,
|
| @@ -4163,17 +4168,6 @@ TEST_F(LayerTreeHostCommonTest, LayerTransformsInHighDPI) {
|
| EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child_screen_space_rect);
|
| EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child_empty_draw_rect);
|
| EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child_empty_screen_space_rect);
|
| -
|
| - // Verify child_no_scale transforms
|
| - gfx::Transform expected_child_no_scale_transform = child->draw_transform();
|
| - // All transforms operate on content rects. The child's content rect
|
| - // incorporates device scale, but the child_no_scale does not; add it here.
|
| - expected_child_no_scale_transform.Scale(device_scale_factor,
|
| - device_scale_factor);
|
| - EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_no_scale_transform,
|
| - child_no_scale->draw_transform());
|
| - EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_no_scale_transform,
|
| - child_no_scale->screen_space_transform());
|
| }
|
|
|
| TEST_F(LayerTreeHostCommonTest, SurfaceLayerTransformsInHighDPI) {
|
| @@ -4189,7 +4183,8 @@ TEST_F(LayerTreeHostCommonTest, SurfaceLayerTransformsInHighDPI) {
|
|
|
| scoped_refptr<Layer> root = Layer::Create();
|
|
|
| - scoped_refptr<ContentLayer> parent = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> parent =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(parent.get(),
|
| identity_matrix,
|
| gfx::Point3F(),
|
| @@ -4198,8 +4193,8 @@ TEST_F(LayerTreeHostCommonTest, SurfaceLayerTransformsInHighDPI) {
|
| false,
|
| true);
|
|
|
| - scoped_refptr<ContentLayer> perspective_surface =
|
| - CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> perspective_surface =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(perspective_surface.get(),
|
| perspective_matrix * scale_small_matrix,
|
| gfx::Point3F(),
|
| @@ -4208,8 +4203,8 @@ TEST_F(LayerTreeHostCommonTest, SurfaceLayerTransformsInHighDPI) {
|
| false,
|
| true);
|
|
|
| - scoped_refptr<ContentLayer> scale_surface =
|
| - CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> scale_surface =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(scale_surface.get(),
|
| scale_small_matrix,
|
| gfx::Point3F(),
|
| @@ -4240,32 +4235,37 @@ TEST_F(LayerTreeHostCommonTest, SurfaceLayerTransformsInHighDPI) {
|
| inputs.can_adjust_raster_scales = true;
|
| LayerTreeHostCommon::CalculateDrawProperties(&inputs);
|
|
|
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, parent);
|
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor,
|
| - perspective_surface);
|
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor,
|
| - scale_surface);
|
| + EXPECT_IDEAL_SCALE_EQ(device_scale_factor * page_scale_factor, parent);
|
| + EXPECT_IDEAL_SCALE_EQ(device_scale_factor * page_scale_factor,
|
| + perspective_surface);
|
| + // Ideal scale is the max 2d scale component of the combined transform up to
|
| + // the nearest render target. Here this includes the layer transform as well
|
| + // as the device and page scale factors.
|
| + gfx::Transform transform = scale_small_matrix;
|
| + transform.Scale(device_scale_factor * page_scale_factor,
|
| + device_scale_factor * page_scale_factor);
|
| + gfx::Vector2dF scales =
|
| + MathUtil::ComputeTransform2dScaleComponents(transform, 0.f);
|
| + float max_2d_scale = std::max(scales.x(), scales.y());
|
| + EXPECT_IDEAL_SCALE_EQ(max_2d_scale, scale_surface);
|
| +
|
| + // The ideal scale will draw 1:1 with its render target space along
|
| + // the larger-scale axis.
|
| + gfx::Vector2dF target_space_transform_scales =
|
| + MathUtil::ComputeTransform2dScaleComponents(
|
| + scale_surface->draw_properties().target_space_transform, 0.f);
|
| + EXPECT_FLOAT_EQ(max_2d_scale,
|
| + std::max(target_space_transform_scales.x(),
|
| + target_space_transform_scales.y()));
|
|
|
| EXPECT_EQ(3u, render_surface_layer_list.size());
|
|
|
| gfx::Transform expected_parent_draw_transform;
|
| + expected_parent_draw_transform.Scale(device_scale_factor * page_scale_factor,
|
| + device_scale_factor * page_scale_factor);
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_parent_draw_transform,
|
| parent->draw_transform());
|
|
|
| - // The scaled surface is rendered at its appropriate scale, and drawn 1:1
|
| - // into its target.
|
| - gfx::Transform expected_scale_surface_draw_transform;
|
| - expected_scale_surface_draw_transform.Translate(
|
| - device_scale_factor * page_scale_factor * scale_surface->position().x(),
|
| - device_scale_factor * page_scale_factor * scale_surface->position().y());
|
| - EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| - expected_scale_surface_draw_transform,
|
| - scale_surface->render_surface()->draw_transform());
|
| - gfx::Transform expected_scale_surface_layer_draw_transform =
|
| - scale_small_matrix;
|
| - EXPECT_TRANSFORMATION_MATRIX_EQ(expected_scale_surface_layer_draw_transform,
|
| - scale_surface->draw_transform());
|
| -
|
| // The scale for the perspective surface is not known, so it is rendered 1:1
|
| // with the screen, and then scaled during drawing.
|
| gfx::Transform expected_perspective_surface_draw_transform;
|
| @@ -4279,6 +4279,9 @@ TEST_F(LayerTreeHostCommonTest, SurfaceLayerTransformsInHighDPI) {
|
| expected_perspective_surface_draw_transform.PreconcatTransform(
|
| scale_small_matrix);
|
| gfx::Transform expected_perspective_surface_layer_draw_transform;
|
| + expected_perspective_surface_layer_draw_transform.Scale(
|
| + device_scale_factor * page_scale_factor,
|
| + device_scale_factor * page_scale_factor);
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| expected_perspective_surface_draw_transform,
|
| perspective_surface->render_surface()->draw_transform());
|
| @@ -4287,6 +4290,7 @@ TEST_F(LayerTreeHostCommonTest, SurfaceLayerTransformsInHighDPI) {
|
| perspective_surface->draw_transform());
|
| }
|
|
|
| +// TODO(sohanjg): Remove this test when ContentLayer is removed.
|
| TEST_F(LayerTreeHostCommonTest,
|
| LayerTransformsInHighDPIAccurateScaleZeroChildPosition) {
|
| // Verify draw and screen space transforms of layers not in a surface.
|
| @@ -4402,6 +4406,7 @@ TEST_F(LayerTreeHostCommonTest,
|
| child_no_scale->screen_space_transform());
|
| }
|
|
|
| +// TODO(sohanjg): Remove this test when ContentLayer is removed.
|
| TEST_F(LayerTreeHostCommonTest, ContentsScale) {
|
| MockContentLayerClient delegate;
|
| gfx::Transform identity_matrix;
|
| @@ -4585,8 +4590,9 @@ TEST_F(LayerTreeHostCommonTest, ContentsScale) {
|
| }
|
| }
|
|
|
| +// TODO(sohanjg): Remove this test when ContentLayer is removed.
|
| TEST_F(LayerTreeHostCommonTest,
|
| - ContentsScale_LayerTransformsDontAffectContentsScale) {
|
| + ContentsScale_LayerTransformsDontAffectContentsScale) {
|
| MockContentLayerClient delegate;
|
| gfx::Transform identity_matrix;
|
|
|
| @@ -4690,7 +4696,7 @@ TEST_F(LayerTreeHostCommonTest,
|
| child_no_scale->draw_transform().matrix().get(1, 1));
|
| }
|
|
|
| -TEST_F(LayerTreeHostCommonTest, SmallContentsScale) {
|
| +TEST_F(LayerTreeHostCommonTest, SmallIdealScale) {
|
| MockContentLayerClient delegate;
|
| gfx::Transform identity_matrix;
|
|
|
| @@ -4705,7 +4711,8 @@ TEST_F(LayerTreeHostCommonTest, SmallContentsScale) {
|
| scoped_refptr<Layer> root = Layer::Create();
|
| root->SetBounds(gfx::Size(100, 100));
|
|
|
| - scoped_refptr<ContentLayer> parent = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> parent =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(parent.get(),
|
| parent_scale_matrix,
|
| gfx::Point3F(),
|
| @@ -4714,8 +4721,8 @@ TEST_F(LayerTreeHostCommonTest, SmallContentsScale) {
|
| false,
|
| true);
|
|
|
| - scoped_refptr<ContentLayer> child_scale =
|
| - CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> child_scale =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(child_scale.get(),
|
| child_scale_matrix,
|
| gfx::Point3F(),
|
| @@ -4744,38 +4751,16 @@ TEST_F(LayerTreeHostCommonTest, SmallContentsScale) {
|
| inputs.can_adjust_raster_scales = true;
|
| LayerTreeHostCommon::CalculateDrawProperties(&inputs);
|
|
|
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor *
|
| - initial_parent_scale,
|
| - parent);
|
| - // The child's scale is < 1, so we should not save and use that scale
|
| - // factor.
|
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor * 1,
|
| - child_scale);
|
| - }
|
| -
|
| - // When chilld's total scale becomes >= 1, we should save and use that scale
|
| - // factor.
|
| - child_scale_matrix.MakeIdentity();
|
| - SkMScalar final_child_scale = 0.75;
|
| - child_scale_matrix.Scale(final_child_scale, final_child_scale);
|
| - child_scale->SetTransform(child_scale_matrix);
|
| -
|
| - {
|
| - RenderSurfaceLayerList render_surface_layer_list;
|
| - LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs(
|
| - root.get(), root->bounds(), &render_surface_layer_list);
|
| - inputs.device_scale_factor = device_scale_factor;
|
| - inputs.page_scale_factor = page_scale_factor;
|
| - inputs.page_scale_application_layer = root.get();
|
| - inputs.can_adjust_raster_scales = true;
|
| - LayerTreeHostCommon::CalculateDrawProperties(&inputs);
|
| + // The ideal scale is able to go below 1.
|
| + float expected_ideal_scale =
|
| + device_scale_factor * page_scale_factor * initial_parent_scale;
|
| + EXPECT_LT(expected_ideal_scale, 1.f);
|
| + EXPECT_IDEAL_SCALE_EQ(expected_ideal_scale, parent);
|
|
|
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor *
|
| - initial_parent_scale,
|
| - parent);
|
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor *
|
| - initial_parent_scale * final_child_scale,
|
| - child_scale);
|
| + expected_ideal_scale = device_scale_factor * page_scale_factor *
|
| + initial_parent_scale * initial_child_scale;
|
| + EXPECT_LT(expected_ideal_scale, 1.f);
|
| + EXPECT_IDEAL_SCALE_EQ(expected_ideal_scale, child_scale);
|
| }
|
| }
|
|
|
| @@ -4979,8 +4964,9 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForSurfaces) {
|
| surface_no_scale_child_no_scale->draw_transform().matrix().get(1, 1));
|
| }
|
|
|
| +// TODO(sohanjg): Remove this test when ContentLayer is removed.
|
| TEST_F(LayerTreeHostCommonTest,
|
| - ContentsScaleForSurfaces_LayerTransformsDontAffectContentsScale) {
|
| + ContentsScaleForSurfaces_LayerTransformsDontAffectContentsScale) {
|
| MockContentLayerClient delegate;
|
| gfx::Transform identity_matrix;
|
|
|
| @@ -5182,7 +5168,7 @@ TEST_F(LayerTreeHostCommonTest,
|
| surface_no_scale_child_no_scale->draw_transform().matrix().get(1, 1));
|
| }
|
|
|
| -TEST_F(LayerTreeHostCommonTest, ContentsScaleForAnimatingLayer) {
|
| +TEST_F(LayerTreeHostCommonTest, IdealScaleForAnimatingLayer) {
|
| MockContentLayerClient delegate;
|
| gfx::Transform identity_matrix;
|
|
|
| @@ -5197,7 +5183,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForAnimatingLayer) {
|
| scoped_refptr<Layer> root = Layer::Create();
|
| root->SetBounds(gfx::Size(100, 100));
|
|
|
| - scoped_refptr<ContentLayer> parent = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> parent =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(parent.get(),
|
| parent_scale_matrix,
|
| gfx::Point3F(),
|
| @@ -5206,8 +5193,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForAnimatingLayer) {
|
| false,
|
| true);
|
|
|
| - scoped_refptr<ContentLayer> child_scale =
|
| - CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> child_scale =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(child_scale.get(),
|
| child_scale_matrix,
|
| gfx::Point3F(),
|
| @@ -5223,10 +5210,6 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForAnimatingLayer) {
|
| scoped_ptr<FakeLayerTreeHost> host(CreateFakeLayerTreeHost());
|
| host->SetRootLayer(root);
|
|
|
| - // Now put an animating transform on child.
|
| - int animation_id = AddAnimatedTransformToController(
|
| - child_scale->layer_animation_controller(), 10.0, 30, 0);
|
| -
|
| {
|
| RenderSurfaceLayerList render_surface_layer_list;
|
| LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs(
|
| @@ -5234,30 +5217,15 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForAnimatingLayer) {
|
| inputs.can_adjust_raster_scales = true;
|
| LayerTreeHostCommon::CalculateDrawProperties(&inputs);
|
|
|
| - EXPECT_CONTENTS_SCALE_EQ(initial_parent_scale, parent);
|
| - // The layers with animating transforms should not compute a contents scale
|
| - // other than 1 until they finish animating.
|
| - EXPECT_CONTENTS_SCALE_EQ(1, child_scale);
|
| - }
|
| -
|
| - // Remove the animation, now it can save a raster scale.
|
| - child_scale->layer_animation_controller()->RemoveAnimation(animation_id);
|
| -
|
| - {
|
| - RenderSurfaceLayerList render_surface_layer_list;
|
| - LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs(
|
| - root.get(), root->bounds(), &render_surface_layer_list);
|
| - inputs.can_adjust_raster_scales = true;
|
| - LayerTreeHostCommon::CalculateDrawProperties(&inputs);
|
| -
|
| - EXPECT_CONTENTS_SCALE_EQ(initial_parent_scale, parent);
|
| - // The layers with animating transforms should not compute a contents scale
|
| - // other than 1 until they finish animating.
|
| - EXPECT_CONTENTS_SCALE_EQ(initial_parent_scale * initial_child_scale,
|
| - child_scale);
|
| + EXPECT_IDEAL_SCALE_EQ(initial_parent_scale, parent);
|
| + // Animating layers compute ideal scale in the same way as when
|
| + // they are static.
|
| + EXPECT_IDEAL_SCALE_EQ(initial_child_scale * initial_parent_scale,
|
| + child_scale);
|
| }
|
| }
|
|
|
| +// TODO(sohanjg): Remove this test when ContentLayer is removed.
|
| TEST_F(LayerTreeHostCommonTest,
|
| ChangeInContentBoundsOrScaleTriggersPushProperties) {
|
| MockContentLayerClient delegate;
|
| @@ -5314,7 +5282,8 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfaceTransformsInHighDPI) {
|
| MockContentLayerClient delegate;
|
| gfx::Transform identity_matrix;
|
|
|
| - scoped_refptr<ContentLayer> parent = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> parent =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(parent.get(),
|
| identity_matrix,
|
| gfx::Point3F(),
|
| @@ -5323,7 +5292,7 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfaceTransformsInHighDPI) {
|
| false,
|
| true);
|
|
|
| - scoped_refptr<ContentLayer> child = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> child = CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(child.get(),
|
| identity_matrix,
|
| gfx::Point3F(),
|
| @@ -5334,7 +5303,8 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfaceTransformsInHighDPI) {
|
|
|
| gfx::Transform replica_transform;
|
| replica_transform.Scale(1.0, -1.0);
|
| - scoped_refptr<ContentLayer> replica = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> replica =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(replica.get(),
|
| replica_transform,
|
| gfx::Point3F(),
|
| @@ -5345,8 +5315,8 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfaceTransformsInHighDPI) {
|
|
|
| // This layer should end up in the same surface as child, with the same draw
|
| // and screen space transforms.
|
| - scoped_refptr<ContentLayer> duplicate_child_non_owner =
|
| - CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> duplicate_child_non_owner =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(duplicate_child_non_owner.get(),
|
| identity_matrix,
|
| gfx::Point3F(),
|
| @@ -5376,19 +5346,22 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfaceTransformsInHighDPI) {
|
| EXPECT_EQ(2u, render_surface_layer_list.size());
|
|
|
| gfx::Transform expected_parent_transform;
|
| + expected_parent_transform.Scale(device_scale_factor, device_scale_factor);
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_parent_transform,
|
| parent->screen_space_transform());
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_parent_transform,
|
| parent->draw_transform());
|
|
|
| gfx::Transform expected_draw_transform;
|
| + expected_draw_transform.Scale(device_scale_factor, device_scale_factor);
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_draw_transform,
|
| child->draw_transform());
|
|
|
| gfx::Transform expected_screen_space_transform;
|
| - expected_screen_space_transform.Translate(
|
| - device_scale_factor * child->position().x(),
|
| - device_scale_factor * child->position().y());
|
| + expected_screen_space_transform.Scale(device_scale_factor,
|
| + device_scale_factor);
|
| + expected_screen_space_transform.Translate(child->position().x(),
|
| + child->position().y());
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_screen_space_transform,
|
| child->screen_space_transform());
|
|
|
| @@ -5449,7 +5422,8 @@ TEST_F(LayerTreeHostCommonTest,
|
| MockContentLayerClient delegate;
|
| gfx::Transform identity_matrix;
|
|
|
| - scoped_refptr<ContentLayer> parent = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> parent =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(parent.get(),
|
| identity_matrix,
|
| gfx::Point3F(),
|
| @@ -5458,7 +5432,7 @@ TEST_F(LayerTreeHostCommonTest,
|
| false,
|
| true);
|
|
|
| - scoped_refptr<ContentLayer> child = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> child = CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(child.get(),
|
| identity_matrix,
|
| gfx::Point3F(),
|
| @@ -5469,7 +5443,8 @@ TEST_F(LayerTreeHostCommonTest,
|
|
|
| gfx::Transform replica_transform;
|
| replica_transform.Scale(1.0, -1.0);
|
| - scoped_refptr<ContentLayer> replica = CreateDrawableContentLayer(&delegate);
|
| + scoped_refptr<FakePictureLayer> replica =
|
| + CreateDrawablePictureLayer(&delegate);
|
| SetLayerPropertiesForTesting(replica.get(),
|
| replica_transform,
|
| gfx::Point3F(),
|
| @@ -5478,20 +5453,7 @@ TEST_F(LayerTreeHostCommonTest,
|
| false,
|
| true);
|
|
|
| - // This layer should end up in the same surface as child, with the same draw
|
| - // and screen space transforms.
|
| - scoped_refptr<ContentLayer> duplicate_child_non_owner =
|
| - CreateDrawableContentLayer(&delegate);
|
| - SetLayerPropertiesForTesting(duplicate_child_non_owner.get(),
|
| - identity_matrix,
|
| - gfx::Point3F(),
|
| - gfx::PointF(),
|
| - gfx::Size(13, 11),
|
| - false,
|
| - true);
|
| -
|
| parent->AddChild(child);
|
| - child->AddChild(duplicate_child_non_owner);
|
| child->SetReplicaLayer(replica.get());
|
|
|
| scoped_ptr<FakeLayerTreeHost> host(CreateFakeLayerTreeHost());
|
| @@ -5511,22 +5473,6 @@ TEST_F(LayerTreeHostCommonTest,
|
| EXPECT_EQ(2u, render_surface_layer_list.size());
|
|
|
| gfx::Transform identity_transform;
|
| -
|
| - EXPECT_TRANSFORMATION_MATRIX_EQ(identity_transform,
|
| - parent->screen_space_transform());
|
| - EXPECT_TRANSFORMATION_MATRIX_EQ(identity_transform, parent->draw_transform());
|
| - EXPECT_TRANSFORMATION_MATRIX_EQ(identity_transform, child->draw_transform());
|
| - EXPECT_TRANSFORMATION_MATRIX_EQ(identity_transform,
|
| - child->screen_space_transform());
|
| - EXPECT_TRANSFORMATION_MATRIX_EQ(identity_transform,
|
| - duplicate_child_non_owner->draw_transform());
|
| - EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| - identity_transform, duplicate_child_non_owner->screen_space_transform());
|
| - EXPECT_RECT_EQ(child->drawable_content_rect(),
|
| - duplicate_child_non_owner->drawable_content_rect());
|
| - EXPECT_EQ(child->content_bounds(),
|
| - duplicate_child_non_owner->content_bounds());
|
| -
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(identity_transform,
|
| child->render_surface()->draw_transform());
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(identity_transform,
|
|
|