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