| Index: cc/layer_tree_host_common_unittest.cc
|
| diff --git a/cc/layer_tree_host_common_unittest.cc b/cc/layer_tree_host_common_unittest.cc
|
| index 655bbaf5dd79890bc67ed3762c78748111f9fd3c..42e5e27a63836adf0873479a98dbf9c30498eda9 100644
|
| --- a/cc/layer_tree_host_common_unittest.cc
|
| +++ b/cc/layer_tree_host_common_unittest.cc
|
| @@ -258,6 +258,47 @@ TEST(LayerTreeHostCommonTest, verifyTransformsForSingleLayer)
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(expectedResult, layer->screenSpaceTransform());
|
| }
|
|
|
| +TEST(LayerTreeHostCommonTest, verifyTransformsAboutScrollOffset)
|
| +{
|
| + const gfx::Vector2d kScrollOffset(50, 100);
|
| + const gfx::Vector2dF kScrollDelta(2.34, 5.67);
|
| + const gfx::PointF kScrollLayerPosition(-kScrollOffset.x(), -kScrollOffset.y());
|
| + const float kPageScale = 0.888;
|
| + const float kDeviceScale = 1.666;
|
| +
|
| + FakeImplProxy proxy;
|
| + FakeLayerTreeHostImpl hostImpl(&proxy);
|
| +
|
| + gfx::Transform identityMatrix;
|
| + scoped_ptr<LayerImpl> sublayerScopedPtr(LayerImpl::create(hostImpl.activeTree(), 1));
|
| + LayerImpl* sublayer = sublayerScopedPtr.get();
|
| + sublayer->setContentsScale(kPageScale * kDeviceScale, kPageScale * kDeviceScale);
|
| + setLayerPropertiesForTesting(sublayer, identityMatrix, identityMatrix, gfx::Point(0, 0), gfx::PointF(0, 0), gfx::Size(500, 500), false);
|
| +
|
| + scoped_ptr<LayerImpl> scrollLayer(LayerImpl::create(hostImpl.activeTree(), 2));
|
| + setLayerPropertiesForTesting(scrollLayer.get(), identityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 20), false);
|
| + scrollLayer->setScrollable(true);
|
| + scrollLayer->setScrollOffset(kScrollOffset);
|
| + scrollLayer->setScrollDelta(kScrollDelta);
|
| + scrollLayer->setPosition(kScrollLayerPosition);
|
| + gfx::Transform implTransform;
|
| + implTransform.Scale(kPageScale, kPageScale);
|
| + scrollLayer->setImplTransform(implTransform);
|
| + scrollLayer->addChild(sublayerScopedPtr.Pass());
|
| +
|
| + scoped_ptr<LayerImpl> root(LayerImpl::create(hostImpl.activeTree(), 3));
|
| + setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false);
|
| + root->addChild(scrollLayer.Pass());
|
| +
|
| + executeCalculateDrawProperties(root.get(), kDeviceScale, kPageScale);
|
| + gfx::Transform expectedTransform = identityMatrix;
|
| + gfx::PointF subLayerScreenPosition = kScrollLayerPosition - kScrollDelta;
|
| + subLayerScreenPosition.Scale(kPageScale * kDeviceScale);
|
| + expectedTransform.Translate(round(subLayerScreenPosition.x()), round(subLayerScreenPosition.y()));
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(expectedTransform, sublayer->drawTransform());
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(expectedTransform, sublayer->screenSpaceTransform());
|
| +}
|
| +
|
| TEST(LayerTreeHostCommonTest, verifyTransformsForSimpleHierarchy)
|
| {
|
| gfx::Transform identityMatrix;
|
|
|