| 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 "config.h" | 5 #include "config.h" |
| 6 | 6 |
| 7 #include "cc/layer_tree_host_impl.h" | 7 #include "cc/layer_tree_host_impl.h" |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/hash_tables.h" | 10 #include "base/hash_tables.h" |
| (...skipping 1768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1779 } | 1779 } |
| 1780 | 1780 |
| 1781 TEST_P(LayerTreeHostImplTest, viewportCovered) | 1781 TEST_P(LayerTreeHostImplTest, viewportCovered) |
| 1782 { | 1782 { |
| 1783 m_hostImpl->initializeRenderer(createContext()); | 1783 m_hostImpl->initializeRenderer(createContext()); |
| 1784 m_hostImpl->setBackgroundColor(SK_ColorGRAY); | 1784 m_hostImpl->setBackgroundColor(SK_ColorGRAY); |
| 1785 | 1785 |
| 1786 IntSize viewportSize(1000, 1000); | 1786 IntSize viewportSize(1000, 1000); |
| 1787 m_hostImpl->setViewportSize(viewportSize, viewportSize); | 1787 m_hostImpl->setViewportSize(viewportSize, viewportSize); |
| 1788 | 1788 |
| 1789 m_hostImpl->setRootLayer(BlendStateCheckLayer::create(1, m_hostImpl->resourc
eProvider())); | 1789 m_hostImpl->setRootLayer(LayerImpl::create(1)); |
| 1790 BlendStateCheckLayer* root = static_cast<BlendStateCheckLayer*>(m_hostImpl->
rootLayer()); | 1790 m_hostImpl->rootLayer()->addChild(BlendStateCheckLayer::create(2, m_hostImpl
->resourceProvider())); |
| 1791 root->setExpectation(false, true); | 1791 BlendStateCheckLayer* child = static_cast<BlendStateCheckLayer*>(m_hostImpl-
>rootLayer()->children()[0]); |
| 1792 root->setContentsOpaque(true); | 1792 child->setExpectation(false, false); |
| 1793 child->setContentsOpaque(true); |
| 1793 | 1794 |
| 1794 // No gutter rects | 1795 // No gutter rects |
| 1795 { | 1796 { |
| 1796 IntRect layerRect(0, 0, 1000, 1000); | 1797 IntRect layerRect(0, 0, 1000, 1000); |
| 1797 root->setPosition(layerRect.location()); | 1798 child->setPosition(layerRect.location()); |
| 1798 root->setBounds(layerRect.size()); | 1799 child->setBounds(layerRect.size()); |
| 1799 root->setContentBounds(layerRect.size()); | 1800 child->setContentBounds(layerRect.size()); |
| 1800 root->setQuadRect(IntRect(IntPoint(), layerRect.size())); | 1801 child->setQuadRect(IntRect(IntPoint(), layerRect.size())); |
| 1801 root->setQuadVisibleRect(IntRect(IntPoint(), layerRect.size())); | 1802 child->setQuadVisibleRect(IntRect(IntPoint(), layerRect.size())); |
| 1802 | 1803 |
| 1803 LayerTreeHostImpl::FrameData frame; | 1804 LayerTreeHostImpl::FrameData frame; |
| 1804 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); | 1805 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); |
| 1805 ASSERT_EQ(1u, frame.renderPasses.size()); | 1806 ASSERT_EQ(1u, frame.renderPasses.size()); |
| 1806 | 1807 |
| 1807 size_t numGutterQuads = 0; | 1808 size_t numGutterQuads = 0; |
| 1808 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i) | 1809 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i) |
| 1809 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material()
== DrawQuad::SolidColor) ? 1 : 0; | 1810 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material()
== DrawQuad::SolidColor) ? 1 : 0; |
| 1810 EXPECT_EQ(0u, numGutterQuads); | 1811 EXPECT_EQ(0u, numGutterQuads); |
| 1811 EXPECT_EQ(1u, frame.renderPasses[0]->quadList().size()); | 1812 EXPECT_EQ(1u, frame.renderPasses[0]->quadList().size()); |
| 1812 | 1813 |
| 1813 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), IntRect(-
layerRect.location(), viewportSize)); | 1814 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), IntRect(I
ntPoint::zero(), viewportSize)); |
| 1814 m_hostImpl->didDrawAllLayers(frame); | 1815 m_hostImpl->didDrawAllLayers(frame); |
| 1815 } | 1816 } |
| 1816 | 1817 |
| 1817 // Empty visible content area (fullscreen gutter rect) | 1818 // Empty visible content area (fullscreen gutter rect) |
| 1818 { | 1819 { |
| 1819 IntRect layerRect(0, 0, 0, 0); | 1820 IntRect layerRect(0, 0, 0, 0); |
| 1820 root->setPosition(layerRect.location()); | 1821 child->setPosition(layerRect.location()); |
| 1821 root->setBounds(layerRect.size()); | 1822 child->setBounds(layerRect.size()); |
| 1822 root->setContentBounds(layerRect.size()); | 1823 child->setContentBounds(layerRect.size()); |
| 1823 root->setQuadRect(IntRect(IntPoint(), layerRect.size())); | 1824 child->setQuadRect(IntRect(IntPoint(), layerRect.size())); |
| 1824 root->setQuadVisibleRect(IntRect(IntPoint(), layerRect.size())); | 1825 child->setQuadVisibleRect(IntRect(IntPoint(), layerRect.size())); |
| 1825 | 1826 |
| 1826 LayerTreeHostImpl::FrameData frame; | 1827 LayerTreeHostImpl::FrameData frame; |
| 1827 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); | 1828 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); |
| 1828 ASSERT_EQ(1u, frame.renderPasses.size()); | 1829 ASSERT_EQ(1u, frame.renderPasses.size()); |
| 1829 m_hostImpl->didDrawAllLayers(frame); | 1830 m_hostImpl->didDrawAllLayers(frame); |
| 1830 | 1831 |
| 1831 size_t numGutterQuads = 0; | 1832 size_t numGutterQuads = 0; |
| 1832 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i) | 1833 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i) |
| 1833 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material()
== DrawQuad::SolidColor) ? 1 : 0; | 1834 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material()
== DrawQuad::SolidColor) ? 1 : 0; |
| 1834 EXPECT_EQ(1u, numGutterQuads); | 1835 EXPECT_EQ(1u, numGutterQuads); |
| 1835 EXPECT_EQ(1u, frame.renderPasses[0]->quadList().size()); | 1836 EXPECT_EQ(1u, frame.renderPasses[0]->quadList().size()); |
| 1836 | 1837 |
| 1837 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), IntRect(-
layerRect.location(), viewportSize)); | 1838 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), IntRect(I
ntPoint::zero(), viewportSize)); |
| 1838 m_hostImpl->didDrawAllLayers(frame); | 1839 m_hostImpl->didDrawAllLayers(frame); |
| 1839 } | 1840 } |
| 1840 | 1841 |
| 1841 // Content area in middle of clip rect (four surrounding gutter rects) | 1842 // Content area in middle of clip rect (four surrounding gutter rects) |
| 1842 { | 1843 { |
| 1843 IntRect layerRect(500, 500, 200, 200); | 1844 IntRect layerRect(500, 500, 200, 200); |
| 1844 root->setPosition(layerRect.location()); | 1845 child->setPosition(layerRect.location()); |
| 1845 root->setBounds(layerRect.size()); | 1846 child->setBounds(layerRect.size()); |
| 1846 root->setContentBounds(layerRect.size()); | 1847 child->setContentBounds(layerRect.size()); |
| 1847 root->setQuadRect(IntRect(IntPoint(), layerRect.size())); | 1848 child->setQuadRect(IntRect(IntPoint(), layerRect.size())); |
| 1848 root->setQuadVisibleRect(IntRect(IntPoint(), layerRect.size())); | 1849 child->setQuadVisibleRect(IntRect(IntPoint(), layerRect.size())); |
| 1849 | 1850 |
| 1850 LayerTreeHostImpl::FrameData frame; | 1851 LayerTreeHostImpl::FrameData frame; |
| 1851 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); | 1852 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); |
| 1852 ASSERT_EQ(1u, frame.renderPasses.size()); | 1853 ASSERT_EQ(1u, frame.renderPasses.size()); |
| 1853 | 1854 |
| 1854 size_t numGutterQuads = 0; | 1855 size_t numGutterQuads = 0; |
| 1855 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i) | 1856 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i) |
| 1856 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material()
== DrawQuad::SolidColor) ? 1 : 0; | 1857 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material()
== DrawQuad::SolidColor) ? 1 : 0; |
| 1857 EXPECT_EQ(4u, numGutterQuads); | 1858 EXPECT_EQ(4u, numGutterQuads); |
| 1858 EXPECT_EQ(5u, frame.renderPasses[0]->quadList().size()); | 1859 EXPECT_EQ(5u, frame.renderPasses[0]->quadList().size()); |
| 1859 | 1860 |
| 1860 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), IntRect(-
layerRect.location(), viewportSize)); | 1861 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), IntRect(I
ntPoint::zero(), viewportSize)); |
| 1861 m_hostImpl->didDrawAllLayers(frame); | 1862 m_hostImpl->didDrawAllLayers(frame); |
| 1862 } | 1863 } |
| 1863 | 1864 |
| 1864 } | 1865 } |
| 1865 | 1866 |
| 1866 | 1867 |
| 1867 class ReshapeTrackerContext: public FakeWebGraphicsContext3D { | 1868 class ReshapeTrackerContext: public FakeWebGraphicsContext3D { |
| 1868 public: | 1869 public: |
| 1869 ReshapeTrackerContext() : m_reshapeCalled(false) { } | 1870 ReshapeTrackerContext() : m_reshapeCalled(false) { } |
| 1870 | 1871 |
| (...skipping 2504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4375 verifyRenderPassTestData(removeRenderPassesCases[testCaseIndex], testDat
a); | 4376 verifyRenderPassTestData(removeRenderPassesCases[testCaseIndex], testDat
a); |
| 4376 testCaseIndex++; | 4377 testCaseIndex++; |
| 4377 } | 4378 } |
| 4378 } | 4379 } |
| 4379 | 4380 |
| 4380 INSTANTIATE_TEST_CASE_P(LayerTreeHostImplTests, | 4381 INSTANTIATE_TEST_CASE_P(LayerTreeHostImplTests, |
| 4381 LayerTreeHostImplTest, | 4382 LayerTreeHostImplTest, |
| 4382 ::testing::Values(false, true)); | 4383 ::testing::Values(false, true)); |
| 4383 | 4384 |
| 4384 } // namespace | 4385 } // namespace |
| OLD | NEW |