OLD | NEW |
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/layer_tree_host.h" | 5 #include "cc/layer_tree_host.h" |
6 | 6 |
7 #include "base/synchronization/lock.h" | 7 #include "base/synchronization/lock.h" |
8 #include "cc/content_layer.h" | 8 #include "cc/content_layer.h" |
9 #include "cc/content_layer_client.h" | 9 #include "cc/content_layer_client.h" |
10 #include "cc/graphics_context.h" | 10 #include "cc/graphics_context.h" |
(...skipping 1321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1332 ASSERT_EQ(root->renderSurface(), renderSurfaceLayerList[0]->renderSurfac
e()); | 1332 ASSERT_EQ(root->renderSurface(), renderSurfaceLayerList[0]->renderSurfac
e()); |
1333 ASSERT_EQ(2u, root->renderSurface()->layerList().size()); | 1333 ASSERT_EQ(2u, root->renderSurface()->layerList().size()); |
1334 | 1334 |
1335 // The root render surface is the size of the viewport. | 1335 // The root render surface is the size of the viewport. |
1336 EXPECT_RECT_EQ(gfx::Rect(0, 0, 60, 60), root->renderSurface()->contentRe
ct()); | 1336 EXPECT_RECT_EQ(gfx::Rect(0, 0, 60, 60), root->renderSurface()->contentRe
ct()); |
1337 | 1337 |
1338 // The content bounds of the child should be scaled. | 1338 // The content bounds of the child should be scaled. |
1339 gfx::Size childBoundsScaled = gfx::ToCeiledSize(gfx::ScaleSize(child->bo
unds(), 1.5)); | 1339 gfx::Size childBoundsScaled = gfx::ToCeiledSize(gfx::ScaleSize(child->bo
unds(), 1.5)); |
1340 EXPECT_EQ(childBoundsScaled, child->contentBounds()); | 1340 EXPECT_EQ(childBoundsScaled, child->contentBounds()); |
1341 | 1341 |
1342 WebTransformationMatrix scaleTransform; | 1342 gfx::Transform scaleTransform; |
1343 scaleTransform.scale(impl->deviceScaleFactor()); | 1343 scaleTransform.Scale(impl->deviceScaleFactor(), impl->deviceScaleFactor(
)); |
1344 | 1344 |
1345 // The root layer is scaled by 2x. | 1345 // The root layer is scaled by 2x. |
1346 WebTransformationMatrix rootScreenSpaceTransform = scaleTransform; | 1346 gfx::Transform rootScreenSpaceTransform = scaleTransform; |
1347 WebTransformationMatrix rootDrawTransform = scaleTransform; | 1347 gfx::Transform rootDrawTransform = scaleTransform; |
1348 | 1348 |
1349 EXPECT_EQ(rootDrawTransform, root->drawTransform()); | 1349 EXPECT_EQ(rootDrawTransform, root->drawTransform()); |
1350 EXPECT_EQ(rootScreenSpaceTransform, root->screenSpaceTransform()); | 1350 EXPECT_EQ(rootScreenSpaceTransform, root->screenSpaceTransform()); |
1351 | 1351 |
1352 // The child is at position 2,2, which is transformed to 3,3 after the s
cale | 1352 // The child is at position 2,2, which is transformed to 3,3 after the s
cale |
1353 WebTransformationMatrix childScreenSpaceTransform; | 1353 gfx::Transform childScreenSpaceTransform; |
1354 childScreenSpaceTransform.translate(3, 3); | 1354 childScreenSpaceTransform.Translate(3, 3); |
1355 WebTransformationMatrix childDrawTransform = childScreenSpaceTransform; | 1355 gfx::Transform childDrawTransform = childScreenSpaceTransform; |
1356 | 1356 |
1357 EXPECT_EQ(childDrawTransform, child->drawTransform()); | 1357 EXPECT_EQ(childDrawTransform, child->drawTransform()); |
1358 EXPECT_EQ(childScreenSpaceTransform, child->screenSpaceTransform()); | 1358 EXPECT_EQ(childScreenSpaceTransform, child->screenSpaceTransform()); |
1359 | 1359 |
1360 endTest(); | 1360 endTest(); |
1361 } | 1361 } |
1362 | 1362 |
1363 virtual void afterTest() OVERRIDE | 1363 virtual void afterTest() OVERRIDE |
1364 { | 1364 { |
1365 m_rootLayer = NULL; | 1365 m_rootLayer = NULL; |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1458 private: | 1458 private: |
1459 FakeContentLayerClient m_client; | 1459 FakeContentLayerClient m_client; |
1460 scoped_refptr<ContentLayerWithUpdateTracking> m_layer; | 1460 scoped_refptr<ContentLayerWithUpdateTracking> m_layer; |
1461 }; | 1461 }; |
1462 | 1462 |
1463 TEST_F(LayerTreeHostTestAtomicCommit, runMultiThread) | 1463 TEST_F(LayerTreeHostTestAtomicCommit, runMultiThread) |
1464 { | 1464 { |
1465 runTest(true); | 1465 runTest(true); |
1466 } | 1466 } |
1467 | 1467 |
1468 static void setLayerPropertiesForTesting(Layer* layer, Layer* parent, const WebT
ransformationMatrix& transform, const gfx::PointF& anchor, const gfx::PointF& po
sition, const gfx::Size& bounds, bool opaque) | 1468 static void setLayerPropertiesForTesting(Layer* layer, Layer* parent, const gfx:
:Transform& transform, const gfx::PointF& anchor, const gfx::PointF& position, c
onst gfx::Size& bounds, bool opaque) |
1469 { | 1469 { |
1470 layer->removeAllChildren(); | 1470 layer->removeAllChildren(); |
1471 if (parent) | 1471 if (parent) |
1472 parent->addChild(layer); | 1472 parent->addChild(layer); |
1473 layer->setTransform(transform); | 1473 layer->setTransform(transform); |
1474 layer->setAnchorPoint(anchor); | 1474 layer->setAnchorPoint(anchor); |
1475 layer->setPosition(position); | 1475 layer->setPosition(position); |
1476 layer->setBounds(bounds); | 1476 layer->setBounds(bounds); |
1477 layer->setContentsOpaque(opaque); | 1477 layer->setContentsOpaque(opaque); |
1478 } | 1478 } |
1479 | 1479 |
1480 class LayerTreeHostTestAtomicCommitWithPartialUpdate : public LayerTreeHostTest
{ | 1480 class LayerTreeHostTestAtomicCommitWithPartialUpdate : public LayerTreeHostTest
{ |
1481 public: | 1481 public: |
1482 LayerTreeHostTestAtomicCommitWithPartialUpdate() | 1482 LayerTreeHostTestAtomicCommitWithPartialUpdate() |
1483 : m_parent(ContentLayerWithUpdateTracking::create(&m_client)) | 1483 : m_parent(ContentLayerWithUpdateTracking::create(&m_client)) |
1484 , m_child(ContentLayerWithUpdateTracking::create(&m_client)) | 1484 , m_child(ContentLayerWithUpdateTracking::create(&m_client)) |
1485 , m_numCommits(0) | 1485 , m_numCommits(0) |
1486 { | 1486 { |
1487 // Allow one partial texture update. | 1487 // Allow one partial texture update. |
1488 m_settings.maxPartialTextureUpdates = 1; | 1488 m_settings.maxPartialTextureUpdates = 1; |
1489 } | 1489 } |
1490 | 1490 |
1491 virtual void beginTest() OVERRIDE | 1491 virtual void beginTest() OVERRIDE |
1492 { | 1492 { |
1493 m_layerTreeHost->setRootLayer(m_parent); | 1493 m_layerTreeHost->setRootLayer(m_parent); |
1494 m_layerTreeHost->setViewportSize(gfx::Size(10, 20), gfx::Size(10, 20)); | 1494 m_layerTreeHost->setViewportSize(gfx::Size(10, 20), gfx::Size(10, 20)); |
1495 | 1495 |
1496 WebTransformationMatrix identityMatrix; | 1496 gfx::Transform identityMatrix; |
1497 setLayerPropertiesForTesting(m_parent.get(), 0, identityMatrix, gfx::Poi
ntF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 20), true); | 1497 setLayerPropertiesForTesting(m_parent.get(), 0, identityMatrix, gfx::Poi
ntF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 20), true); |
1498 setLayerPropertiesForTesting(m_child.get(), m_parent.get(), identityMatr
ix, gfx::PointF(0, 0), gfx::PointF(0, 10), gfx::Size(10, 10), false); | 1498 setLayerPropertiesForTesting(m_child.get(), m_parent.get(), identityMatr
ix, gfx::PointF(0, 0), gfx::PointF(0, 10), gfx::Size(10, 10), false); |
1499 | 1499 |
1500 postSetNeedsCommitToMainThread(); | 1500 postSetNeedsCommitToMainThread(); |
1501 postSetNeedsRedrawToMainThread(); | 1501 postSetNeedsRedrawToMainThread(); |
1502 } | 1502 } |
1503 | 1503 |
1504 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE | 1504 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE |
1505 { | 1505 { |
1506 CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_
cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->context()->co
ntext3D()); | 1506 CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_
cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->context()->co
ntext3D()); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1630 const Region& occludedScreenSpace() const { return m_occludedScreenSpace; } | 1630 const Region& occludedScreenSpace() const { return m_occludedScreenSpace; } |
1631 void clearOccludedScreenSpace() { m_occludedScreenSpace.Clear(); } | 1631 void clearOccludedScreenSpace() { m_occludedScreenSpace.Clear(); } |
1632 | 1632 |
1633 private: | 1633 private: |
1634 TestLayer() : Layer() { } | 1634 TestLayer() : Layer() { } |
1635 virtual ~TestLayer() { } | 1635 virtual ~TestLayer() { } |
1636 | 1636 |
1637 Region m_occludedScreenSpace; | 1637 Region m_occludedScreenSpace; |
1638 }; | 1638 }; |
1639 | 1639 |
1640 static void setTestLayerPropertiesForTesting(TestLayer* layer, Layer* parent, co
nst WebTransformationMatrix& transform, const gfx::PointF& anchor, const gfx::Po
intF& position, const gfx::Size& bounds, bool opaque) | 1640 static void setTestLayerPropertiesForTesting(TestLayer* layer, Layer* parent, co
nst gfx::Transform& transform, const gfx::PointF& anchor, const gfx::PointF& pos
ition, const gfx::Size& bounds, bool opaque) |
1641 { | 1641 { |
1642 setLayerPropertiesForTesting(layer, parent, transform, anchor, position, bou
nds, opaque); | 1642 setLayerPropertiesForTesting(layer, parent, transform, anchor, position, bou
nds, opaque); |
1643 layer->clearOccludedScreenSpace(); | 1643 layer->clearOccludedScreenSpace(); |
1644 } | 1644 } |
1645 | 1645 |
1646 class LayerTreeHostTestLayerOcclusion : public LayerTreeHostTest { | 1646 class LayerTreeHostTestLayerOcclusion : public LayerTreeHostTest { |
1647 public: | 1647 public: |
1648 LayerTreeHostTestLayerOcclusion() { } | 1648 LayerTreeHostTestLayerOcclusion() { } |
1649 | 1649 |
1650 virtual void beginTest() OVERRIDE | 1650 virtual void beginTest() OVERRIDE |
1651 { | 1651 { |
1652 scoped_refptr<TestLayer> rootLayer = TestLayer::create(); | 1652 scoped_refptr<TestLayer> rootLayer = TestLayer::create(); |
1653 scoped_refptr<TestLayer> child = TestLayer::create(); | 1653 scoped_refptr<TestLayer> child = TestLayer::create(); |
1654 scoped_refptr<TestLayer> child2 = TestLayer::create(); | 1654 scoped_refptr<TestLayer> child2 = TestLayer::create(); |
1655 scoped_refptr<TestLayer> grandChild = TestLayer::create(); | 1655 scoped_refptr<TestLayer> grandChild = TestLayer::create(); |
1656 scoped_refptr<TestLayer> mask = TestLayer::create(); | 1656 scoped_refptr<TestLayer> mask = TestLayer::create(); |
1657 | 1657 |
1658 WebTransformationMatrix identityMatrix; | 1658 gfx::Transform identityMatrix; |
1659 WebTransformationMatrix childTransform; | 1659 gfx::Transform childTransform; |
1660 childTransform.translate(250, 250); | 1660 childTransform.Translate(250, 250); |
1661 childTransform.rotate(90); | 1661 childTransform.Rotate(90); |
1662 childTransform.translate(-250, -250); | 1662 childTransform.Translate(-250, -250); |
1663 | 1663 |
1664 child->setMasksToBounds(true); | 1664 child->setMasksToBounds(true); |
1665 | 1665 |
1666 // See LayerTreeHostCommonTest.layerAddsSelfToOccludedRegionWithRotatedS
urface for a nice visual of these layers and how they end up | 1666 // See LayerTreeHostCommonTest.layerAddsSelfToOccludedRegionWithRotatedS
urface for a nice visual of these layers and how they end up |
1667 // positioned on the screen. | 1667 // positioned on the screen. |
1668 | 1668 |
1669 // The child layer is rotated and the grandChild is opaque, but clipped
to the child and rootLayer | 1669 // The child layer is rotated and the grandChild is opaque, but clipped
to the child and rootLayer |
1670 setTestLayerPropertiesForTesting(rootLayer.get(), 0, identityMatrix, gfx
::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(200, 200), true); | 1670 setTestLayerPropertiesForTesting(rootLayer.get(), 0, identityMatrix, gfx
::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(200, 200), true); |
1671 setTestLayerPropertiesForTesting(child.get(), rootLayer.get(), childTran
sform, gfx::PointF(0, 0), gfx::PointF(30, 30), gfx::Size(500, 500), false); | 1671 setTestLayerPropertiesForTesting(child.get(), rootLayer.get(), childTran
sform, gfx::PointF(0, 0), gfx::PointF(30, 30), gfx::Size(500, 500), false); |
1672 setTestLayerPropertiesForTesting(grandChild.get(), child.get(), identity
Matrix, gfx::PointF(0, 0), gfx::PointF(10, 10), gfx::Size(500, 500), true); | 1672 setTestLayerPropertiesForTesting(grandChild.get(), child.get(), identity
Matrix, gfx::PointF(0, 0), gfx::PointF(10, 10), gfx::Size(500, 500), true); |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1821 LayerTreeHostTestLayerOcclusionWithFilters() { } | 1821 LayerTreeHostTestLayerOcclusionWithFilters() { } |
1822 | 1822 |
1823 virtual void beginTest() OVERRIDE | 1823 virtual void beginTest() OVERRIDE |
1824 { | 1824 { |
1825 scoped_refptr<TestLayer> rootLayer = TestLayer::create(); | 1825 scoped_refptr<TestLayer> rootLayer = TestLayer::create(); |
1826 scoped_refptr<TestLayer> child = TestLayer::create(); | 1826 scoped_refptr<TestLayer> child = TestLayer::create(); |
1827 scoped_refptr<TestLayer> child2 = TestLayer::create(); | 1827 scoped_refptr<TestLayer> child2 = TestLayer::create(); |
1828 scoped_refptr<TestLayer> grandChild = TestLayer::create(); | 1828 scoped_refptr<TestLayer> grandChild = TestLayer::create(); |
1829 scoped_refptr<TestLayer> mask = TestLayer::create(); | 1829 scoped_refptr<TestLayer> mask = TestLayer::create(); |
1830 | 1830 |
1831 WebTransformationMatrix identityMatrix; | 1831 gfx::Transform identityMatrix; |
1832 WebTransformationMatrix childTransform; | 1832 gfx::Transform childTransform; |
1833 childTransform.translate(250, 250); | 1833 childTransform.Translate(250, 250); |
1834 childTransform.rotate(90); | 1834 childTransform.Rotate(90); |
1835 childTransform.translate(-250, -250); | 1835 childTransform.Translate(-250, -250); |
1836 | 1836 |
1837 child->setMasksToBounds(true); | 1837 child->setMasksToBounds(true); |
1838 | 1838 |
1839 // If the child layer has a filter that changes alpha values, and is bel
ow child2, then child2 should contribute to occlusion on everything, | 1839 // If the child layer has a filter that changes alpha values, and is bel
ow child2, then child2 should contribute to occlusion on everything, |
1840 // and child shouldn't contribute to the rootLayer | 1840 // and child shouldn't contribute to the rootLayer |
1841 setTestLayerPropertiesForTesting(rootLayer.get(), 0, identityMatrix, gfx
::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(200, 200), true); | 1841 setTestLayerPropertiesForTesting(rootLayer.get(), 0, identityMatrix, gfx
::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(200, 200), true); |
1842 setTestLayerPropertiesForTesting(child.get(), rootLayer.get(), childTran
sform, gfx::PointF(0, 0), gfx::PointF(30, 30), gfx::Size(500, 500), true); | 1842 setTestLayerPropertiesForTesting(child.get(), rootLayer.get(), childTran
sform, gfx::PointF(0, 0), gfx::PointF(30, 30), gfx::Size(500, 500), true); |
1843 setTestLayerPropertiesForTesting(grandChild.get(), child.get(), identity
Matrix, gfx::PointF(0, 0), gfx::PointF(10, 10), gfx::Size(500, 500), true); | 1843 setTestLayerPropertiesForTesting(grandChild.get(), child.get(), identity
Matrix, gfx::PointF(0, 0), gfx::PointF(10, 10), gfx::Size(500, 500), true); |
1844 setTestLayerPropertiesForTesting(child2.get(), rootLayer.get(), identity
Matrix, gfx::PointF(0, 0), gfx::PointF(10, 70), gfx::Size(500, 500), true); | 1844 setTestLayerPropertiesForTesting(child2.get(), rootLayer.get(), identity
Matrix, gfx::PointF(0, 0), gfx::PointF(10, 70), gfx::Size(500, 500), true); |
1845 | 1845 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1900 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestLayerOcclusionWithFilters) | 1900 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestLayerOcclusionWithFilters) |
1901 | 1901 |
1902 class LayerTreeHostTestManySurfaces : public LayerTreeHostTest { | 1902 class LayerTreeHostTestManySurfaces : public LayerTreeHostTest { |
1903 public: | 1903 public: |
1904 LayerTreeHostTestManySurfaces() { } | 1904 LayerTreeHostTestManySurfaces() { } |
1905 | 1905 |
1906 virtual void beginTest() OVERRIDE | 1906 virtual void beginTest() OVERRIDE |
1907 { | 1907 { |
1908 // We create enough RenderSurfaces that it will trigger Vector reallocat
ion while computing occlusion. | 1908 // We create enough RenderSurfaces that it will trigger Vector reallocat
ion while computing occlusion. |
1909 Region occluded; | 1909 Region occluded; |
1910 const WebTransformationMatrix identityMatrix; | 1910 const gfx::Transform identityMatrix; |
1911 std::vector<scoped_refptr<TestLayer> > layers; | 1911 std::vector<scoped_refptr<TestLayer> > layers; |
1912 std::vector<scoped_refptr<TestLayer> > children; | 1912 std::vector<scoped_refptr<TestLayer> > children; |
1913 int numSurfaces = 20; | 1913 int numSurfaces = 20; |
1914 scoped_refptr<TestLayer> replica = TestLayer::create(); | 1914 scoped_refptr<TestLayer> replica = TestLayer::create(); |
1915 | 1915 |
1916 for (int i = 0; i < numSurfaces; ++i) { | 1916 for (int i = 0; i < numSurfaces; ++i) { |
1917 layers.push_back(TestLayer::create()); | 1917 layers.push_back(TestLayer::create()); |
1918 if (!i) { | 1918 if (!i) { |
1919 setTestLayerPropertiesForTesting(layers.back().get(), 0, identit
yMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(200, 200), true); | 1919 setTestLayerPropertiesForTesting(layers.back().get(), 0, identit
yMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(200, 200), true); |
1920 layers.back()->createRenderSurface(); | 1920 layers.back()->createRenderSurface(); |
(...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2701 , m_implForEvictTextures(0) | 2701 , m_implForEvictTextures(0) |
2702 , m_numCommits(0) | 2702 , m_numCommits(0) |
2703 { | 2703 { |
2704 } | 2704 } |
2705 | 2705 |
2706 virtual void beginTest() OVERRIDE | 2706 virtual void beginTest() OVERRIDE |
2707 { | 2707 { |
2708 m_layerTreeHost->setRootLayer(m_layer); | 2708 m_layerTreeHost->setRootLayer(m_layer); |
2709 m_layerTreeHost->setViewportSize(gfx::Size(10, 20), gfx::Size(10, 20)); | 2709 m_layerTreeHost->setViewportSize(gfx::Size(10, 20), gfx::Size(10, 20)); |
2710 | 2710 |
2711 WebTransformationMatrix identityMatrix; | 2711 gfx::Transform identityMatrix; |
2712 setLayerPropertiesForTesting(m_layer.get(), 0, identityMatrix, gfx::Poin
tF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 20), true); | 2712 setLayerPropertiesForTesting(m_layer.get(), 0, identityMatrix, gfx::Poin
tF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 20), true); |
2713 | 2713 |
2714 postSetNeedsCommitToMainThread(); | 2714 postSetNeedsCommitToMainThread(); |
2715 } | 2715 } |
2716 | 2716 |
2717 void postEvictTextures() | 2717 void postEvictTextures() |
2718 { | 2718 { |
2719 DCHECK(implThread()); | 2719 DCHECK(implThread()); |
2720 implThread()->postTask(base::Bind(&LayerTreeHostTestEvictTextures::evict
TexturesOnImplThread, | 2720 implThread()->postTask(base::Bind(&LayerTreeHostTestEvictTextures::evict
TexturesOnImplThread, |
2721 base::Unretained(this))); | 2721 base::Unretained(this))); |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2834 , m_implForEvictTextures(0) | 2834 , m_implForEvictTextures(0) |
2835 , m_numCommits(0) | 2835 , m_numCommits(0) |
2836 { | 2836 { |
2837 } | 2837 } |
2838 | 2838 |
2839 virtual void beginTest() OVERRIDE | 2839 virtual void beginTest() OVERRIDE |
2840 { | 2840 { |
2841 m_layerTreeHost->setRootLayer(m_layer); | 2841 m_layerTreeHost->setRootLayer(m_layer); |
2842 m_layerTreeHost->setViewportSize(gfx::Size(10, 20), gfx::Size(10, 20)); | 2842 m_layerTreeHost->setViewportSize(gfx::Size(10, 20), gfx::Size(10, 20)); |
2843 | 2843 |
2844 WebTransformationMatrix identityMatrix; | 2844 gfx::Transform identityMatrix; |
2845 setLayerPropertiesForTesting(m_layer.get(), 0, identityMatrix, gfx::Poin
tF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 20), true); | 2845 setLayerPropertiesForTesting(m_layer.get(), 0, identityMatrix, gfx::Poin
tF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 20), true); |
2846 | 2846 |
2847 postSetNeedsCommitToMainThread(); | 2847 postSetNeedsCommitToMainThread(); |
2848 } | 2848 } |
2849 | 2849 |
2850 void postEvictTextures() | 2850 void postEvictTextures() |
2851 { | 2851 { |
2852 if (implThread()) { | 2852 if (implThread()) { |
2853 implThread()->postTask(base::Bind(&LayerTreeHostTestLostContextAfter
EvictTextures::evictTexturesOnImplThread, | 2853 implThread()->postTask(base::Bind(&LayerTreeHostTestLostContextAfter
EvictTextures::evictTexturesOnImplThread, |
2854 base::Unretained(this))); | 2854 base::Unretained(this))); |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2959 virtual scoped_ptr<WebKit::WebCompositorOutputSurface> createOutputSurface() | 2959 virtual scoped_ptr<WebKit::WebCompositorOutputSurface> createOutputSurface() |
2960 { | 2960 { |
2961 return FakeWebCompositorOutputSurface::create(CompositorFakeWebGraphicsC
ontext3DWithEndQueryCausingLostContext::create(WebGraphicsContext3D::Attributes(
)).PassAs<WebKit::WebGraphicsContext3D>()).PassAs<WebKit::WebCompositorOutputSur
face>(); | 2961 return FakeWebCompositorOutputSurface::create(CompositorFakeWebGraphicsC
ontext3DWithEndQueryCausingLostContext::create(WebGraphicsContext3D::Attributes(
)).PassAs<WebKit::WebGraphicsContext3D>()).PassAs<WebKit::WebCompositorOutputSur
face>(); |
2962 } | 2962 } |
2963 | 2963 |
2964 virtual void beginTest() | 2964 virtual void beginTest() |
2965 { | 2965 { |
2966 m_layerTreeHost->setRootLayer(m_parent); | 2966 m_layerTreeHost->setRootLayer(m_parent); |
2967 m_layerTreeHost->setViewportSize(gfx::Size(m_numChildren, 1), gfx::Size(
m_numChildren, 1)); | 2967 m_layerTreeHost->setViewportSize(gfx::Size(m_numChildren, 1), gfx::Size(
m_numChildren, 1)); |
2968 | 2968 |
2969 WebTransformationMatrix identityMatrix; | 2969 gfx::Transform identityMatrix; |
2970 setLayerPropertiesForTesting(m_parent.get(), 0, identityMatrix, gfx::Poi
ntF(0, 0), gfx::PointF(0, 0), gfx::Size(m_numChildren, 1), true); | 2970 setLayerPropertiesForTesting(m_parent.get(), 0, identityMatrix, gfx::Poi
ntF(0, 0), gfx::PointF(0, 0), gfx::Size(m_numChildren, 1), true); |
2971 for (int i = 0; i < m_numChildren; i++) | 2971 for (int i = 0; i < m_numChildren; i++) |
2972 setLayerPropertiesForTesting(m_children[i].get(), m_parent.get(), id
entityMatrix, gfx::PointF(0, 0), gfx::PointF(i, 0), gfx::Size(1, 1), false); | 2972 setLayerPropertiesForTesting(m_children[i].get(), m_parent.get(), id
entityMatrix, gfx::PointF(0, 0), gfx::PointF(i, 0), gfx::Size(1, 1), false); |
2973 | 2973 |
2974 postSetNeedsCommitToMainThread(); | 2974 postSetNeedsCommitToMainThread(); |
2975 } | 2975 } |
2976 | 2976 |
2977 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) | 2977 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) |
2978 { | 2978 { |
2979 endTest(); | 2979 endTest(); |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3115 } | 3115 } |
3116 | 3116 |
3117 class LayerTreeHostTestAdjustPointForZoom : public LayerTreeHostTest { | 3117 class LayerTreeHostTestAdjustPointForZoom : public LayerTreeHostTest { |
3118 public: | 3118 public: |
3119 LayerTreeHostTestAdjustPointForZoom() | 3119 LayerTreeHostTestAdjustPointForZoom() |
3120 { | 3120 { |
3121 } | 3121 } |
3122 | 3122 |
3123 virtual void beginTest() OVERRIDE | 3123 virtual void beginTest() OVERRIDE |
3124 { | 3124 { |
3125 WebTransformationMatrix m; | 3125 gfx::Transform m; |
3126 m.translate(250, 360); | 3126 m.Translate(250, 360); |
3127 m.scale(2); | 3127 m.Scale(2, 2); |
3128 | 3128 |
3129 gfx::Point point(400, 550); | 3129 gfx::Point point(400, 550); |
3130 gfx::Point transformedPoint; | 3130 gfx::Point transformedPoint; |
3131 | 3131 |
3132 // Unit transform, no change expected. | 3132 // Unit transform, no change expected. |
3133 m_layerTreeHost->setImplTransform(WebTransformationMatrix()); | 3133 m_layerTreeHost->setImplTransform(gfx::Transform()); |
3134 transformedPoint = gfx::ToRoundedPoint(m_layerTreeHost->adjustEventPoint
ForPinchZoom(point)); | 3134 transformedPoint = gfx::ToRoundedPoint(m_layerTreeHost->adjustEventPoint
ForPinchZoom(point)); |
3135 EXPECT_EQ(point.x(), transformedPoint.x()); | 3135 EXPECT_EQ(point.x(), transformedPoint.x()); |
3136 EXPECT_EQ(point.y(), transformedPoint.y()); | 3136 EXPECT_EQ(point.y(), transformedPoint.y()); |
3137 | 3137 |
3138 m_layerTreeHost->setImplTransform(m); | 3138 m_layerTreeHost->setImplTransform(m); |
3139 | 3139 |
3140 // Apply m^(-1): 75 = (400 - 250) / 2; 95 = (550 - 360) / 2. | 3140 // Apply m^(-1): 75 = (400 - 250) / 2; 95 = (550 - 360) / 2. |
3141 transformedPoint = gfx::ToRoundedPoint(m_layerTreeHost->adjustEventPoint
ForPinchZoom(point)); | 3141 transformedPoint = gfx::ToRoundedPoint(m_layerTreeHost->adjustEventPoint
ForPinchZoom(point)); |
3142 EXPECT_EQ(75, transformedPoint.x()); | 3142 EXPECT_EQ(75, transformedPoint.x()); |
3143 EXPECT_EQ(95, transformedPoint.y()); | 3143 EXPECT_EQ(95, transformedPoint.y()); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3257 int m_numCompleteCommits; | 3257 int m_numCompleteCommits; |
3258 }; | 3258 }; |
3259 | 3259 |
3260 TEST_F(LayerTreeHostTestDeferCommits, runMultiThread) | 3260 TEST_F(LayerTreeHostTestDeferCommits, runMultiThread) |
3261 { | 3261 { |
3262 runTest(true); | 3262 runTest(true); |
3263 } | 3263 } |
3264 | 3264 |
3265 } // namespace | 3265 } // namespace |
3266 } // namespace cc | 3266 } // namespace cc |
OLD | NEW |