Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Side by Side Diff: cc/layer_tree_host_impl_unittest.cc

Issue 11017044: Remove root layer specialness in calculateDrawTransforms (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Added assertion that rounding does not affect exact coverage testing Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/layer_tree_host_common_unittest.cc ('k') | cc/layer_tree_host_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « cc/layer_tree_host_common_unittest.cc ('k') | cc/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698