Chromium Code Reviews| 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 4f682fef0b73a54772413f8a31b6dff1399de677..cb94159202077baee1f9689628841394ec3de07c 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,9 +62,10 @@ class MockContentLayerClient : public ContentLayerClient { |
| virtual bool FillsBoundsCompletely() const OVERRIDE { return false; } |
| }; |
| -scoped_refptr<ContentLayer> CreateDrawableContentLayer( |
| +scoped_refptr<FakePictureLayer> CreateDrawablePictureLayer( |
| ContentLayerClient* delegate) { |
| - scoped_refptr<ContentLayer> to_return = ContentLayer::Create(delegate); |
| + scoped_refptr<FakePictureLayer> to_return = |
| + FakePictureLayer::Create(delegate); |
| to_return->SetIsDrawable(true); |
| return to_return; |
| } |
| @@ -3261,13 +3264,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 +3356,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 also 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) { |
| @@ -4009,6 +4012,37 @@ TEST_F(LayerTreeHostCommonTest, |
| ->render_surface()->layer_list().at(1)->id()); |
| } |
| +class NoScalePictureLayer : public PictureLayer { |
| + public: |
| + static scoped_refptr<NoScalePictureLayer> Create(ContentLayerClient* client) { |
| + return make_scoped_refptr(new NoScalePictureLayer(client)); |
| + } |
| + |
| + virtual void CalculateContentsScale(float ideal_contents_scale, |
| + float* contents_scale_x, |
| + float* contents_scale_y, |
| + gfx::Size* contentBounds) OVERRIDE { |
| + // Skip over the ContentLayer's method to the base Layer class. |
| + Layer::CalculateContentsScale(ideal_contents_scale, |
| + contents_scale_x, |
| + contents_scale_y, |
| + contentBounds); |
| + } |
| + |
| + private: |
| + explicit NoScalePictureLayer(ContentLayerClient* client) |
| + : PictureLayer(client) {} |
| + virtual ~NoScalePictureLayer() {} |
| +}; |
| + |
| +scoped_refptr<NoScalePictureLayer> CreateNoScaleDrawablePictureLayer( |
| + ContentLayerClient* delegate) { |
| + scoped_refptr<NoScalePictureLayer> to_return = |
| + NoScalePictureLayer::Create(delegate); |
| + to_return->SetIsDrawable(true); |
| + return to_return; |
| +} |
| + |
| class NoScaleContentLayer : public ContentLayer { |
| public: |
| static scoped_refptr<NoScaleContentLayer> Create(ContentLayerClient* client) { |
| @@ -4045,7 +4079,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 +4089,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 +4098,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,8 +4108,8 @@ TEST_F(LayerTreeHostCommonTest, LayerTransformsInHighDPI) { |
| false, |
| true); |
| - scoped_refptr<NoScaleContentLayer> child_no_scale = |
| - CreateNoScaleDrawableContentLayer(&delegate); |
| + scoped_refptr<NoScalePictureLayer> child_no_scale = |
| + CreateNoScaleDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(child_no_scale.get(), |
| identity_matrix, |
| gfx::Point3F(), |
| @@ -4101,16 +4136,17 @@ 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, parent); |
| + EXPECT_CONTENTS_SCALE_EQ(1, child); |
| + EXPECT_CONTENTS_SCALE_EQ(1, child_empty); |
| EXPECT_CONTENTS_SCALE_EQ(1, child_no_scale); |
| 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, |
| @@ -4134,6 +4170,7 @@ TEST_F(LayerTreeHostCommonTest, LayerTransformsInHighDPI) { |
| 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); |
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| child->draw_transform()); |
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| @@ -4167,9 +4204,8 @@ TEST_F(LayerTreeHostCommonTest, LayerTransformsInHighDPI) { |
| // 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); |
| + // incorporates device scale, the child_no_scale also does. |
| + |
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_no_scale_transform, |
| child_no_scale->draw_transform()); |
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_no_scale_transform, |
| @@ -4189,7 +4225,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 +4235,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 +4245,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,15 +4277,15 @@ 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_CONTENTS_SCALE_EQ(1, parent); |
| + EXPECT_CONTENTS_SCALE_EQ(1, perspective_surface); |
| + EXPECT_CONTENTS_SCALE_EQ(1, scale_surface); |
| 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()); |
| @@ -4263,6 +4300,9 @@ TEST_F(LayerTreeHostCommonTest, SurfaceLayerTransformsInHighDPI) { |
| scale_surface->render_surface()->draw_transform()); |
| gfx::Transform expected_scale_surface_layer_draw_transform = |
| scale_small_matrix; |
| + expected_scale_surface_layer_draw_transform.Scale( |
| + device_scale_factor * page_scale_factor, |
| + device_scale_factor * page_scale_factor); |
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_scale_surface_layer_draw_transform, |
| scale_surface->draw_transform()); |
| @@ -4279,6 +4319,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()); |
| @@ -4293,7 +4336,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(), |
| @@ -4302,7 +4346,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(), |
| @@ -4311,8 +4355,8 @@ TEST_F(LayerTreeHostCommonTest, |
| false, |
| true); |
| - scoped_refptr<NoScaleContentLayer> child_no_scale = |
| - CreateNoScaleDrawableContentLayer(&delegate); |
| + scoped_refptr<NoScalePictureLayer> child_no_scale = |
| + CreateNoScaleDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(child_no_scale.get(), |
| identity_matrix, |
| gfx::Point3F(), |
| @@ -4339,14 +4383,16 @@ TEST_F(LayerTreeHostCommonTest, |
| 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(1, parent); |
|
danakj
2014/09/17 14:55:58
we should check the layer's ideal_contents_scale i
|
| + EXPECT_CONTENTS_SCALE_EQ(1, child); |
| EXPECT_CONTENTS_SCALE_EQ(1, child_no_scale); |
| 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, |
| @@ -4362,14 +4408,15 @@ TEST_F(LayerTreeHostCommonTest, |
| gfx::RectF expected_parent_draw_rect(parent->bounds()); |
| expected_parent_draw_rect.Scale(device_scale_factor); |
| - expected_parent_draw_rect.set_width(ceil(expected_parent_draw_rect.width())); |
| - expected_parent_draw_rect.set_height( |
| - ceil(expected_parent_draw_rect.height())); |
| + expected_parent_draw_rect.set_width((expected_parent_draw_rect.width())); |
| + expected_parent_draw_rect.set_height((expected_parent_draw_rect.height())); |
| EXPECT_FLOAT_RECT_EQ(expected_parent_draw_rect, parent_draw_rect); |
| EXPECT_FLOAT_RECT_EQ(expected_parent_draw_rect, parent_screen_space_rect); |
| // Verify child transforms |
| gfx::Transform expected_child_transform; |
| + expected_child_transform.Scale(device_scale_factor * page_scale_factor, |
| + device_scale_factor * page_scale_factor); |
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| child->draw_transform()); |
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| @@ -4385,17 +4432,15 @@ TEST_F(LayerTreeHostCommonTest, |
| gfx::RectF expected_child_draw_rect(child->bounds()); |
| expected_child_draw_rect.Scale(device_scale_factor); |
| - expected_child_draw_rect.set_width(ceil(expected_child_draw_rect.width())); |
| - expected_child_draw_rect.set_height(ceil(expected_child_draw_rect.height())); |
| + expected_child_draw_rect.set_width((expected_child_draw_rect.width())); |
| + expected_child_draw_rect.set_height((expected_child_draw_rect.height())); |
| EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child_draw_rect); |
| EXPECT_FLOAT_RECT_EQ(expected_child_draw_rect, child_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); |
| + // incorporates device scale, the child_no_scale also does. |
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_no_scale_transform, |
| child_no_scale->draw_transform()); |
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_no_scale_transform, |
| @@ -4417,7 +4462,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScale) { |
| 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(), |
| @@ -4426,8 +4472,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScale) { |
| 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(), |
| @@ -4436,8 +4482,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScale) { |
| false, |
| true); |
| - scoped_refptr<ContentLayer> child_empty = |
| - CreateDrawableContentLayer(&delegate); |
| + scoped_refptr<FakePictureLayer> child_empty = |
| + CreateDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(child_empty.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -4446,8 +4492,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScale) { |
| false, |
| true); |
| - scoped_refptr<NoScaleContentLayer> child_no_scale = |
| - CreateNoScaleDrawableContentLayer(&delegate); |
| + scoped_refptr<NoScalePictureLayer> child_no_scale = |
| + CreateNoScaleDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(child_no_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -4478,26 +4524,34 @@ TEST_F(LayerTreeHostCommonTest, ContentsScale) { |
| inputs.can_adjust_raster_scales = true; |
| LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
| - 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 * initial_child_scale, |
| - child_scale); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor * |
| - initial_parent_scale * initial_child_scale, |
| - child_empty); |
| + // Picturelayer's content scale is 1.f |
| + EXPECT_CONTENTS_SCALE_EQ(1, parent); |
| + EXPECT_CONTENTS_SCALE_EQ(1, child_scale); |
| + EXPECT_CONTENTS_SCALE_EQ(1, child_empty); |
| EXPECT_CONTENTS_SCALE_EQ(1, child_no_scale); |
| - // The parent is scaled up and shouldn't need to scale during draw. The |
| - // child that can scale its contents should also not need to scale during |
| + // The parent is not scaled up and we would need to scale during draw. The |
| + // child that can scale its contents should also need to scale during |
| // draw. This shouldn't change if the child has empty bounds. The other |
| // children should. |
| - EXPECT_FLOAT_EQ(1.0, parent->draw_transform().matrix().get(0, 0)); |
| - EXPECT_FLOAT_EQ(1.0, parent->draw_transform().matrix().get(1, 1)); |
| - EXPECT_FLOAT_EQ(1.0, child_scale->draw_transform().matrix().get(0, 0)); |
| - EXPECT_FLOAT_EQ(1.0, child_scale->draw_transform().matrix().get(1, 1)); |
| - EXPECT_FLOAT_EQ(1.0, child_empty->draw_transform().matrix().get(0, 0)); |
| - EXPECT_FLOAT_EQ(1.0, child_empty->draw_transform().matrix().get(1, 1)); |
| + EXPECT_FLOAT_EQ( |
| + device_scale_factor * page_scale_factor * initial_parent_scale, |
| + parent->draw_transform().matrix().get(0, 0)); |
| + EXPECT_FLOAT_EQ( |
| + device_scale_factor * page_scale_factor * initial_parent_scale, |
| + parent->draw_transform().matrix().get(1, 1)); |
| + EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor * |
| + initial_parent_scale * initial_child_scale, |
| + child_scale->draw_transform().matrix().get(0, 0)); |
| + EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor * |
| + initial_parent_scale * initial_child_scale, |
| + child_scale->draw_transform().matrix().get(1, 1)); |
| + EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor * |
| + initial_parent_scale * initial_child_scale, |
| + child_empty->draw_transform().matrix().get(0, 0)); |
| + EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor * |
| + initial_parent_scale * initial_child_scale, |
| + child_empty->draw_transform().matrix().get(1, 1)); |
| EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor * |
| initial_parent_scale * initial_child_scale, |
| child_no_scale->draw_transform().matrix().get(0, 0)); |
| @@ -4505,84 +4559,6 @@ TEST_F(LayerTreeHostCommonTest, ContentsScale) { |
| initial_parent_scale * initial_child_scale, |
| child_no_scale->draw_transform().matrix().get(1, 1)); |
| } |
| - |
| - // If the device_scale_factor or page_scale_factor changes, then it should be |
| - // updated using the initial transform as the raster scale. |
| - device_scale_factor = 2.25f; |
| - page_scale_factor = 1.25f; |
| - |
| - { |
| - 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); |
| - |
| - 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 * initial_child_scale, |
| - child_scale); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor * |
| - initial_parent_scale * initial_child_scale, |
| - child_empty); |
| - EXPECT_CONTENTS_SCALE_EQ(1, child_no_scale); |
| - } |
| - |
| - // If the transform changes, we expect the raster scale to be reset to 1.0. |
| - SkMScalar second_child_scale = 1.75; |
| - child_scale_matrix.Scale(second_child_scale / initial_child_scale, |
| - second_child_scale / initial_child_scale); |
| - child_scale->SetTransform(child_scale_matrix); |
| - child_empty->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); |
| - |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor * |
| - initial_parent_scale, |
| - parent); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, |
| - child_scale); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, |
| - child_empty); |
| - EXPECT_CONTENTS_SCALE_EQ(1, child_no_scale); |
| - } |
| - |
| - // If the device_scale_factor or page_scale_factor changes, then it should be |
| - // updated, but still using 1.0 as the raster scale. |
| - device_scale_factor = 2.75f; |
| - page_scale_factor = 1.75f; |
| - |
| - { |
| - 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); |
| - |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor * |
| - initial_parent_scale, |
| - parent); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, |
| - child_scale); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, |
| - child_empty); |
| - EXPECT_CONTENTS_SCALE_EQ(1, child_no_scale); |
| - } |
| } |
| TEST_F(LayerTreeHostCommonTest, |
| @@ -4601,7 +4577,8 @@ TEST_F(LayerTreeHostCommonTest, |
| 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(), |
| @@ -4610,8 +4587,8 @@ TEST_F(LayerTreeHostCommonTest, |
| 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(), |
| @@ -4620,8 +4597,8 @@ TEST_F(LayerTreeHostCommonTest, |
| false, |
| true); |
| - scoped_refptr<ContentLayer> child_empty = |
| - CreateDrawableContentLayer(&delegate); |
| + scoped_refptr<FakePictureLayer> child_empty = |
| + CreateDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(child_empty.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -4630,8 +4607,8 @@ TEST_F(LayerTreeHostCommonTest, |
| false, |
| true); |
| - scoped_refptr<NoScaleContentLayer> child_no_scale = |
| - CreateNoScaleDrawableContentLayer(&delegate); |
| + scoped_refptr<NoScalePictureLayer> child_no_scale = |
| + CreateNoScaleDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(child_no_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -4661,26 +4638,30 @@ TEST_F(LayerTreeHostCommonTest, |
| inputs.page_scale_application_layer = root.get(), |
| 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_scale); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, |
| - child_empty); |
| + EXPECT_CONTENTS_SCALE_EQ(1, parent); |
| + EXPECT_CONTENTS_SCALE_EQ(1, child_scale); |
| + EXPECT_CONTENTS_SCALE_EQ(1, child_empty); |
| EXPECT_CONTENTS_SCALE_EQ(1, child_no_scale); |
| - // Since the transform scale does not affect contents scale, it should affect |
| - // the draw transform instead. |
| - EXPECT_FLOAT_EQ(initial_parent_scale, |
| - parent->draw_transform().matrix().get(0, 0)); |
| - EXPECT_FLOAT_EQ(initial_parent_scale, |
| - parent->draw_transform().matrix().get(1, 1)); |
| - EXPECT_FLOAT_EQ(initial_parent_scale * initial_child_scale, |
| + // Since the transform scale affects contents scale, it should not affect |
| + // the draw transform. |
| + EXPECT_FLOAT_EQ( |
| + initial_parent_scale * device_scale_factor * page_scale_factor, |
| + parent->draw_transform().matrix().get(0, 0)); |
| + EXPECT_FLOAT_EQ( |
| + initial_parent_scale * device_scale_factor * page_scale_factor, |
| + parent->draw_transform().matrix().get(1, 1)); |
| + EXPECT_FLOAT_EQ(initial_parent_scale * initial_child_scale * |
| + device_scale_factor * page_scale_factor, |
| child_scale->draw_transform().matrix().get(0, 0)); |
| - EXPECT_FLOAT_EQ(initial_parent_scale * initial_child_scale, |
| + EXPECT_FLOAT_EQ(initial_parent_scale * initial_child_scale * |
| + device_scale_factor * page_scale_factor, |
| child_scale->draw_transform().matrix().get(1, 1)); |
| - EXPECT_FLOAT_EQ(initial_parent_scale * initial_child_scale, |
| + EXPECT_FLOAT_EQ(initial_parent_scale * initial_child_scale * |
| + device_scale_factor * page_scale_factor, |
| child_empty->draw_transform().matrix().get(0, 0)); |
| - EXPECT_FLOAT_EQ(initial_parent_scale * initial_child_scale, |
| + EXPECT_FLOAT_EQ(initial_parent_scale * initial_child_scale * |
| + device_scale_factor * page_scale_factor, |
| child_empty->draw_transform().matrix().get(1, 1)); |
| EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor * |
| initial_parent_scale * initial_child_scale, |
| @@ -4705,7 +4686,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 +4696,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,13 +4726,8 @@ 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); |
| + EXPECT_CONTENTS_SCALE_EQ(1, parent); |
| + EXPECT_CONTENTS_SCALE_EQ(1, child_scale); |
| } |
| // When chilld's total scale becomes >= 1, we should save and use that scale |
| @@ -4770,12 +4747,8 @@ 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); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor * |
| - initial_parent_scale * final_child_scale, |
| - child_scale); |
| + EXPECT_CONTENTS_SCALE_EQ(1, parent); |
| + EXPECT_CONTENTS_SCALE_EQ(1, child_scale); |
| } |
| } |
| @@ -4794,7 +4767,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForSurfaces) { |
| 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(), |
| @@ -4803,8 +4777,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForSurfaces) { |
| false, |
| true); |
| - scoped_refptr<ContentLayer> surface_scale = |
| - CreateDrawableContentLayer(&delegate); |
| + scoped_refptr<FakePictureLayer> surface_scale = |
| + CreateDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(surface_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -4813,8 +4787,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForSurfaces) { |
| false, |
| true); |
| - scoped_refptr<ContentLayer> surface_scale_child_scale = |
| - CreateDrawableContentLayer(&delegate); |
| + scoped_refptr<FakePictureLayer> surface_scale_child_scale = |
| + CreateDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(surface_scale_child_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -4823,8 +4797,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForSurfaces) { |
| false, |
| true); |
| - scoped_refptr<NoScaleContentLayer> surface_scale_child_no_scale = |
| - CreateNoScaleDrawableContentLayer(&delegate); |
| + scoped_refptr<NoScalePictureLayer> surface_scale_child_no_scale = |
| + CreateNoScaleDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(surface_scale_child_no_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -4843,8 +4817,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForSurfaces) { |
| false, |
| true); |
| - scoped_refptr<ContentLayer> surface_no_scale_child_scale = |
| - CreateDrawableContentLayer(&delegate); |
| + scoped_refptr<FakePictureLayer> surface_no_scale_child_scale = |
| + CreateDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(surface_no_scale_child_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -4891,46 +4865,47 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForSurfaces) { |
| inputs.can_adjust_raster_scales = true; |
| LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
| - 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 * initial_child_scale, |
| - surface_scale); |
| + EXPECT_CONTENTS_SCALE_EQ(1, parent); |
| + EXPECT_CONTENTS_SCALE_EQ(1, surface_scale); |
| EXPECT_CONTENTS_SCALE_EQ(1, surface_no_scale); |
| - EXPECT_CONTENTS_SCALE_EQ( |
| - device_scale_factor * page_scale_factor * initial_parent_scale * |
| - initial_child_scale * initial_child_scale, |
| - surface_scale_child_scale); |
| + EXPECT_CONTENTS_SCALE_EQ(1, surface_scale_child_scale); |
| EXPECT_CONTENTS_SCALE_EQ(1, surface_scale_child_no_scale); |
| - EXPECT_CONTENTS_SCALE_EQ( |
| - device_scale_factor * page_scale_factor * initial_parent_scale * |
| - initial_child_scale * initial_child_scale, |
| - surface_no_scale_child_scale); |
| + EXPECT_CONTENTS_SCALE_EQ(1, surface_no_scale_child_scale); |
| EXPECT_CONTENTS_SCALE_EQ(1, surface_no_scale_child_no_scale); |
| - // The parent is scaled up and shouldn't need to scale during draw. |
| - EXPECT_FLOAT_EQ(1.0, parent->draw_transform().matrix().get(0, 0)); |
| - EXPECT_FLOAT_EQ(1.0, parent->draw_transform().matrix().get(1, 1)); |
| + // The parent is not scaled up and should need to scale during draw. |
| + EXPECT_FLOAT_EQ( |
| + device_scale_factor * page_scale_factor * initial_parent_scale, |
| + parent->draw_transform().matrix().get(0, 0)); |
| + EXPECT_FLOAT_EQ( |
| + device_scale_factor * page_scale_factor * initial_parent_scale, |
| + parent->draw_transform().matrix().get(1, 1)); |
| // RenderSurfaces should always be 1:1 with their target. |
| EXPECT_FLOAT_EQ( |
| - 1.0, |
| - surface_scale->render_surface()->draw_transform().matrix().get(0, 0)); |
| + 1, surface_scale->render_surface()->draw_transform().matrix().get(0, 0)); |
| EXPECT_FLOAT_EQ( |
| - 1.0, |
| - surface_scale->render_surface()->draw_transform().matrix().get(1, 1)); |
| + 1, surface_scale->render_surface()->draw_transform().matrix().get(1, 1)); |
| - // The surface_scale can apply contents scale so the layer shouldn't need to |
| + // The surface_scale cannot apply contents scale so the layer would need to |
| // scale during draw. |
| - EXPECT_FLOAT_EQ(1.0, surface_scale->draw_transform().matrix().get(0, 0)); |
| - EXPECT_FLOAT_EQ(1.0, surface_scale->draw_transform().matrix().get(1, 1)); |
| + EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor * |
| + initial_parent_scale * initial_child_scale, |
| + surface_scale->draw_transform().matrix().get(0, 0)); |
| + EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor * |
| + initial_parent_scale * initial_child_scale, |
| + surface_scale->draw_transform().matrix().get(1, 1)); |
| - // The surface_scale_child_scale can apply contents scale so it shouldn't need |
| + // The surface_scale_child_scale cannot apply contents scale so it would need |
| // to scale during draw. |
| EXPECT_FLOAT_EQ( |
| - 1.0, surface_scale_child_scale->draw_transform().matrix().get(0, 0)); |
| + device_scale_factor * page_scale_factor * initial_parent_scale * |
| + initial_child_scale * initial_child_scale, |
| + surface_scale_child_scale->draw_transform().matrix().get(0, 0)); |
| EXPECT_FLOAT_EQ( |
| - 1.0, surface_scale_child_scale->draw_transform().matrix().get(1, 1)); |
| + device_scale_factor * page_scale_factor * initial_parent_scale * |
| + initial_child_scale * initial_child_scale, |
| + surface_scale_child_scale->draw_transform().matrix().get(1, 1)); |
| // The surface_scale_child_no_scale can not apply contents scale, so it needs |
| // to be scaled during draw. |
| @@ -4945,10 +4920,10 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForSurfaces) { |
| // RenderSurfaces should always be 1:1 with their target. |
| EXPECT_FLOAT_EQ( |
| - 1.0, |
| + 1, |
| surface_no_scale->render_surface()->draw_transform().matrix().get(0, 0)); |
| EXPECT_FLOAT_EQ( |
| - 1.0, |
| + 1, |
| surface_no_scale->render_surface()->draw_transform().matrix().get(1, 1)); |
| // The surface_no_scale layer can not apply contents scale, so it needs to be |
| @@ -4960,12 +4935,17 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForSurfaces) { |
| initial_parent_scale * initial_child_scale, |
| surface_no_scale->draw_transform().matrix().get(1, 1)); |
| - // The surface_scale_child_scale can apply contents scale so it shouldn't need |
| + // The surface_scale_child_scale can not apply contents scale so it should |
| + // need |
| // to scale during draw. |
| EXPECT_FLOAT_EQ( |
| - 1.0, surface_no_scale_child_scale->draw_transform().matrix().get(0, 0)); |
| + device_scale_factor * page_scale_factor * initial_parent_scale * |
| + initial_child_scale * initial_child_scale, |
| + surface_no_scale_child_scale->draw_transform().matrix().get(0, 0)); |
| EXPECT_FLOAT_EQ( |
| - 1.0, surface_no_scale_child_scale->draw_transform().matrix().get(1, 1)); |
| + device_scale_factor * page_scale_factor * initial_parent_scale * |
| + initial_child_scale * initial_child_scale, |
| + surface_no_scale_child_scale->draw_transform().matrix().get(1, 1)); |
| // The surface_scale_child_no_scale can not apply contents scale, so it needs |
| // to be scaled during draw. |
| @@ -4995,7 +4975,8 @@ TEST_F(LayerTreeHostCommonTest, |
| 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(), |
| @@ -5004,8 +4985,8 @@ TEST_F(LayerTreeHostCommonTest, |
| false, |
| true); |
| - scoped_refptr<ContentLayer> surface_scale = |
| - CreateDrawableContentLayer(&delegate); |
| + scoped_refptr<FakePictureLayer> surface_scale = |
| + CreateDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(surface_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -5014,8 +4995,8 @@ TEST_F(LayerTreeHostCommonTest, |
| false, |
| true); |
| - scoped_refptr<ContentLayer> surface_scale_child_scale = |
| - CreateDrawableContentLayer(&delegate); |
| + scoped_refptr<FakePictureLayer> surface_scale_child_scale = |
| + CreateDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(surface_scale_child_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -5024,8 +5005,8 @@ TEST_F(LayerTreeHostCommonTest, |
| false, |
| true); |
| - scoped_refptr<NoScaleContentLayer> surface_scale_child_no_scale = |
| - CreateNoScaleDrawableContentLayer(&delegate); |
| + scoped_refptr<NoScalePictureLayer> surface_scale_child_no_scale = |
| + CreateNoScaleDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(surface_scale_child_no_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -5034,8 +5015,8 @@ TEST_F(LayerTreeHostCommonTest, |
| false, |
| true); |
| - scoped_refptr<NoScaleContentLayer> surface_no_scale = |
| - CreateNoScaleDrawableContentLayer(&delegate); |
| + scoped_refptr<NoScalePictureLayer> surface_no_scale = |
| + CreateNoScaleDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(surface_no_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -5044,8 +5025,8 @@ TEST_F(LayerTreeHostCommonTest, |
| false, |
| true); |
| - scoped_refptr<ContentLayer> surface_no_scale_child_scale = |
| - CreateDrawableContentLayer(&delegate); |
| + scoped_refptr<FakePictureLayer> surface_no_scale_child_scale = |
| + CreateDrawablePictureLayer(&delegate); |
| SetLayerPropertiesForTesting(surface_no_scale_child_scale.get(), |
| child_scale_matrix, |
| gfx::Point3F(), |
| @@ -5091,24 +5072,22 @@ TEST_F(LayerTreeHostCommonTest, |
| inputs.page_scale_application_layer = root.get(); |
| LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, |
| - parent); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, |
| - surface_scale); |
| + EXPECT_CONTENTS_SCALE_EQ(1, parent); |
| + EXPECT_CONTENTS_SCALE_EQ(1, surface_scale); |
| EXPECT_CONTENTS_SCALE_EQ(1.f, surface_no_scale); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, |
| - surface_scale_child_scale); |
| + EXPECT_CONTENTS_SCALE_EQ(1, surface_scale_child_scale); |
| EXPECT_CONTENTS_SCALE_EQ(1.f, surface_scale_child_no_scale); |
| - EXPECT_CONTENTS_SCALE_EQ(device_scale_factor * page_scale_factor, |
| - surface_no_scale_child_scale); |
| + EXPECT_CONTENTS_SCALE_EQ(1, surface_no_scale_child_scale); |
| EXPECT_CONTENTS_SCALE_EQ(1.f, surface_no_scale_child_no_scale); |
| - // The parent is scaled up during draw, since its contents are not scaled by |
| + // The parent is not scaled up during draw, since its contents are scaled by |
| // the transform hierarchy. |
| - EXPECT_FLOAT_EQ(initial_parent_scale, |
| - parent->draw_transform().matrix().get(0, 0)); |
| - EXPECT_FLOAT_EQ(initial_parent_scale, |
| - parent->draw_transform().matrix().get(1, 1)); |
| + EXPECT_FLOAT_EQ( |
| + device_scale_factor * page_scale_factor * initial_parent_scale, |
| + parent->draw_transform().matrix().get(0, 0)); |
| + EXPECT_FLOAT_EQ( |
| + device_scale_factor * page_scale_factor * initial_parent_scale, |
| + parent->draw_transform().matrix().get(1, 1)); |
| // The child surface is scaled up during draw since its subtree is not scaled |
| // by the transform hierarchy. |
| @@ -5119,18 +5098,20 @@ TEST_F(LayerTreeHostCommonTest, |
| initial_parent_scale * initial_child_scale, |
| surface_scale->render_surface()->draw_transform().matrix().get(1, 1)); |
| - // The surface_scale's RenderSurface is scaled during draw, so the layer does |
| - // not need to be scaled when drawing into its surface. |
| - EXPECT_FLOAT_EQ(1.0, surface_scale->draw_transform().matrix().get(0, 0)); |
| - EXPECT_FLOAT_EQ(1.0, surface_scale->draw_transform().matrix().get(1, 1)); |
| + // The surface_scale's RenderSurface is not scaled during draw, so the layer |
| + // need to be scaled when drawing into its surface. |
| + EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor, |
| + surface_scale->draw_transform().matrix().get(0, 0)); |
| + EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor, |
| + surface_scale->draw_transform().matrix().get(1, 1)); |
| - // The surface_scale_child_scale is scaled when drawing into its surface, |
| - // since its content bounds are not scaled by the transform hierarchy. |
| + // The surface_scale_child_scale is not scaled when drawing into its surface, |
| + // since its content bounds are scaled by the transform hierarchy. |
| EXPECT_FLOAT_EQ( |
| - initial_child_scale, |
| + initial_child_scale * device_scale_factor * page_scale_factor, |
| surface_scale_child_scale->draw_transform().matrix().get(0, 0)); |
| EXPECT_FLOAT_EQ( |
| - initial_child_scale, |
| + initial_child_scale * device_scale_factor * page_scale_factor, |
| surface_scale_child_scale->draw_transform().matrix().get(1, 1)); |
| // The surface_scale_child_no_scale has a fixed contents scale of 1, so it |
| @@ -5161,14 +5142,13 @@ TEST_F(LayerTreeHostCommonTest, |
| EXPECT_FLOAT_EQ(device_scale_factor * page_scale_factor, |
| surface_no_scale->draw_transform().matrix().get(1, 1)); |
| - // The surface_no_scale_child_scale has its contents scaled by the page and |
| - // device scale factors, but needs to be scaled by the transform hierarchy |
| - // when drawing. |
| + // The surface_no_scale_child_scale doesnt have its contents scaled |
| + // by the page and device scale factors. |
| EXPECT_FLOAT_EQ( |
| - initial_child_scale, |
| + initial_child_scale * device_scale_factor * page_scale_factor, |
| surface_no_scale_child_scale->draw_transform().matrix().get(0, 0)); |
| EXPECT_FLOAT_EQ( |
| - initial_child_scale, |
| + initial_child_scale * device_scale_factor * page_scale_factor, |
| surface_no_scale_child_scale->draw_transform().matrix().get(1, 1)); |
| // The surface_no_scale_child_no_scale has a fixed contents scale of 1, so it |
| @@ -5197,7 +5177,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 +5187,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(), |
| @@ -5234,7 +5215,8 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForAnimatingLayer) { |
| inputs.can_adjust_raster_scales = true; |
| LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
| - EXPECT_CONTENTS_SCALE_EQ(initial_parent_scale, parent); |
| + // Picturelayer's content scale is 1.f |
| + EXPECT_CONTENTS_SCALE_EQ(1, 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); |
| @@ -5250,11 +5232,10 @@ TEST_F(LayerTreeHostCommonTest, ContentsScaleForAnimatingLayer) { |
| inputs.can_adjust_raster_scales = true; |
| LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
| - EXPECT_CONTENTS_SCALE_EQ(initial_parent_scale, parent); |
| + EXPECT_CONTENTS_SCALE_EQ(1, 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_CONTENTS_SCALE_EQ(1, child_scale); |
| } |
| } |
| @@ -5262,7 +5243,7 @@ TEST_F(LayerTreeHostCommonTest, |
| ChangeInContentBoundsOrScaleTriggersPushProperties) { |
| MockContentLayerClient delegate; |
| scoped_refptr<Layer> root = Layer::Create(); |
| - scoped_refptr<Layer> child = CreateDrawableContentLayer(&delegate); |
| + scoped_refptr<FakePictureLayer> child = CreateDrawablePictureLayer(&delegate); |
| root->AddChild(child); |
| scoped_ptr<FakeLayerTreeHost> host = FakeLayerTreeHost::Create(); |
| @@ -5295,15 +5276,6 @@ TEST_F(LayerTreeHostCommonTest, |
| root->reset_needs_push_properties_for_testing(); |
| child->reset_needs_push_properties_for_testing(); |
| - // This will change only the child layer's contents scale and content bounds, |
| - // since the root layer is not a ContentsScalingLayer. |
| - ExecuteCalculateDrawProperties(root.get(), 2.f); |
| - EXPECT_FALSE(root->needs_push_properties()); |
| - EXPECT_TRUE(child->needs_push_properties()); |
| - |
| - root->reset_needs_push_properties_for_testing(); |
| - child->reset_needs_push_properties_for_testing(); |
| - |
| // This will not change either layer's contents scale or content bounds. |
| ExecuteCalculateDrawProperties(root.get(), 2.f); |
| EXPECT_FALSE(root->needs_push_properties()); |
| @@ -5314,7 +5286,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 +5296,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 +5307,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 +5319,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,12 +5350,14 @@ 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()); |
| @@ -5389,6 +5365,8 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfaceTransformsInHighDPI) { |
| 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); |
| EXPECT_TRANSFORMATION_MATRIX_EQ(expected_screen_space_transform, |
| child->screen_space_transform()); |
| @@ -5449,7 +5427,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 +5437,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 +5448,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(), |
| @@ -5480,8 +5460,8 @@ TEST_F(LayerTreeHostCommonTest, |
| // 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(), |
| @@ -5510,23 +5490,22 @@ TEST_F(LayerTreeHostCommonTest, |
| // render surface (it needs one because it has a replica layer). |
| 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, |
| + gfx::Transform transform; |
| + transform.Scale(device_scale_factor, device_scale_factor); |
| + EXPECT_TRANSFORMATION_MATRIX_EQ(transform, parent->screen_space_transform()); |
| + EXPECT_TRANSFORMATION_MATRIX_EQ(transform, parent->draw_transform()); |
| + EXPECT_TRANSFORMATION_MATRIX_EQ(transform, child->draw_transform()); |
| + EXPECT_TRANSFORMATION_MATRIX_EQ(transform, child->screen_space_transform()); |
| + EXPECT_TRANSFORMATION_MATRIX_EQ(transform, |
| duplicate_child_non_owner->draw_transform()); |
| EXPECT_TRANSFORMATION_MATRIX_EQ( |
| - identity_transform, duplicate_child_non_owner->screen_space_transform()); |
| + 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()); |
| + gfx::Transform identity_transform; |
| EXPECT_TRANSFORMATION_MATRIX_EQ(identity_transform, |
| child->render_surface()->draw_transform()); |
| EXPECT_TRANSFORMATION_MATRIX_EQ(identity_transform, |