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

Side by Side Diff: cc/layer_tree_host_impl_unittest.cc

Issue 11417035: cc: Switch the DrawQuad enum names to chromium style and remove pragmas (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 | Annotate | Revision Log
« no previous file with comments | « cc/layer_tree_host_impl.cc ('k') | cc/nine_patch_layer_impl_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 "cc/layer_tree_host_impl.h" 5 #include "cc/layer_tree_host_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 1830 matching lines...) Expand 10 before | Expand all | Expand 10 after
1841 child->setContentBounds(layerRect.size()); 1841 child->setContentBounds(layerRect.size());
1842 child->setQuadRect(gfx::Rect(gfx::Point(), layerRect.size())); 1842 child->setQuadRect(gfx::Rect(gfx::Point(), layerRect.size()));
1843 child->setQuadVisibleRect(gfx::Rect(gfx::Point(), layerRect.size())); 1843 child->setQuadVisibleRect(gfx::Rect(gfx::Point(), layerRect.size()));
1844 1844
1845 LayerTreeHostImpl::FrameData frame; 1845 LayerTreeHostImpl::FrameData frame;
1846 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 1846 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
1847 ASSERT_EQ(1u, frame.renderPasses.size()); 1847 ASSERT_EQ(1u, frame.renderPasses.size());
1848 1848
1849 size_t numGutterQuads = 0; 1849 size_t numGutterQuads = 0;
1850 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i) 1850 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i)
1851 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material() == DrawQuad::SolidColor) ? 1 : 0; 1851 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material() == DrawQuad::SOLID_COLOR) ? 1 : 0;
1852 EXPECT_EQ(0u, numGutterQuads); 1852 EXPECT_EQ(0u, numGutterQuads);
1853 EXPECT_EQ(1u, frame.renderPasses[0]->quadList().size()); 1853 EXPECT_EQ(1u, frame.renderPasses[0]->quadList().size());
1854 1854
1855 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), gfx::Rect (gfx::Point(), viewportSize)); 1855 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), gfx::Rect (gfx::Point(), viewportSize));
1856 m_hostImpl->didDrawAllLayers(frame); 1856 m_hostImpl->didDrawAllLayers(frame);
1857 } 1857 }
1858 1858
1859 // Empty visible content area (fullscreen gutter rect) 1859 // Empty visible content area (fullscreen gutter rect)
1860 { 1860 {
1861 gfx::Rect layerRect(0, 0, 0, 0); 1861 gfx::Rect layerRect(0, 0, 0, 0);
1862 child->setPosition(layerRect.origin()); 1862 child->setPosition(layerRect.origin());
1863 child->setBounds(layerRect.size()); 1863 child->setBounds(layerRect.size());
1864 child->setContentBounds(layerRect.size()); 1864 child->setContentBounds(layerRect.size());
1865 child->setQuadRect(gfx::Rect(gfx::Point(), layerRect.size())); 1865 child->setQuadRect(gfx::Rect(gfx::Point(), layerRect.size()));
1866 child->setQuadVisibleRect(gfx::Rect(gfx::Point(), layerRect.size())); 1866 child->setQuadVisibleRect(gfx::Rect(gfx::Point(), layerRect.size()));
1867 1867
1868 LayerTreeHostImpl::FrameData frame; 1868 LayerTreeHostImpl::FrameData frame;
1869 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 1869 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
1870 ASSERT_EQ(1u, frame.renderPasses.size()); 1870 ASSERT_EQ(1u, frame.renderPasses.size());
1871 m_hostImpl->didDrawAllLayers(frame); 1871 m_hostImpl->didDrawAllLayers(frame);
1872 1872
1873 size_t numGutterQuads = 0; 1873 size_t numGutterQuads = 0;
1874 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i) 1874 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i)
1875 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material() == DrawQuad::SolidColor) ? 1 : 0; 1875 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material() == DrawQuad::SOLID_COLOR) ? 1 : 0;
1876 EXPECT_EQ(1u, numGutterQuads); 1876 EXPECT_EQ(1u, numGutterQuads);
1877 EXPECT_EQ(1u, frame.renderPasses[0]->quadList().size()); 1877 EXPECT_EQ(1u, frame.renderPasses[0]->quadList().size());
1878 1878
1879 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), gfx::Rect (gfx::Point(), viewportSize)); 1879 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), gfx::Rect (gfx::Point(), viewportSize));
1880 m_hostImpl->didDrawAllLayers(frame); 1880 m_hostImpl->didDrawAllLayers(frame);
1881 } 1881 }
1882 1882
1883 // Content area in middle of clip rect (four surrounding gutter rects) 1883 // Content area in middle of clip rect (four surrounding gutter rects)
1884 { 1884 {
1885 gfx::Rect layerRect(500, 500, 200, 200); 1885 gfx::Rect layerRect(500, 500, 200, 200);
1886 child->setPosition(layerRect.origin()); 1886 child->setPosition(layerRect.origin());
1887 child->setBounds(layerRect.size()); 1887 child->setBounds(layerRect.size());
1888 child->setContentBounds(layerRect.size()); 1888 child->setContentBounds(layerRect.size());
1889 child->setQuadRect(gfx::Rect(gfx::Point(), layerRect.size())); 1889 child->setQuadRect(gfx::Rect(gfx::Point(), layerRect.size()));
1890 child->setQuadVisibleRect(gfx::Rect(gfx::Point(), layerRect.size())); 1890 child->setQuadVisibleRect(gfx::Rect(gfx::Point(), layerRect.size()));
1891 1891
1892 LayerTreeHostImpl::FrameData frame; 1892 LayerTreeHostImpl::FrameData frame;
1893 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 1893 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
1894 ASSERT_EQ(1u, frame.renderPasses.size()); 1894 ASSERT_EQ(1u, frame.renderPasses.size());
1895 1895
1896 size_t numGutterQuads = 0; 1896 size_t numGutterQuads = 0;
1897 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i) 1897 for (size_t i = 0; i < frame.renderPasses[0]->quadList().size(); ++i)
1898 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material() == DrawQuad::SolidColor) ? 1 : 0; 1898 numGutterQuads += (frame.renderPasses[0]->quadList()[i]->material() == DrawQuad::SOLID_COLOR) ? 1 : 0;
1899 EXPECT_EQ(4u, numGutterQuads); 1899 EXPECT_EQ(4u, numGutterQuads);
1900 EXPECT_EQ(5u, frame.renderPasses[0]->quadList().size()); 1900 EXPECT_EQ(5u, frame.renderPasses[0]->quadList().size());
1901 1901
1902 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), gfx::Rect (gfx::Point(), viewportSize)); 1902 verifyQuadsExactlyCoverRect(frame.renderPasses[0]->quadList(), gfx::Rect (gfx::Point(), viewportSize));
1903 m_hostImpl->didDrawAllLayers(frame); 1903 m_hostImpl->didDrawAllLayers(frame);
1904 } 1904 }
1905 1905
1906 } 1906 }
1907 1907
1908 1908
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
2339 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 2339 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
2340 2340
2341 // Just for consistency, the most interesting stuff already happened 2341 // Just for consistency, the most interesting stuff already happened
2342 myHostImpl->drawLayers(frame); 2342 myHostImpl->drawLayers(frame);
2343 myHostImpl->didDrawAllLayers(frame); 2343 myHostImpl->didDrawAllLayers(frame);
2344 2344
2345 // Verify all quads have been computed 2345 // Verify all quads have been computed
2346 ASSERT_EQ(2U, frame.renderPasses.size()); 2346 ASSERT_EQ(2U, frame.renderPasses.size());
2347 ASSERT_EQ(1U, frame.renderPasses[0]->quadList().size()); 2347 ASSERT_EQ(1U, frame.renderPasses[0]->quadList().size());
2348 ASSERT_EQ(1U, frame.renderPasses[1]->quadList().size()); 2348 ASSERT_EQ(1U, frame.renderPasses[1]->quadList().size());
2349 EXPECT_EQ(DrawQuad::SolidColor, frame.renderPasses[0]->quadList()[0]->ma terial()); 2349 EXPECT_EQ(DrawQuad::SOLID_COLOR, frame.renderPasses[0]->quadList()[0]->m aterial());
2350 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->ma terial()); 2350 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m aterial());
2351 } 2351 }
2352 } 2352 }
2353 2353
2354 TEST_P(LayerTreeHostImplTest, contributingLayerEmptyScissorNoPartialSwap) 2354 TEST_P(LayerTreeHostImplTest, contributingLayerEmptyScissorNoPartialSwap)
2355 { 2355 {
2356 scoped_ptr<LayerTreeHostImpl> myHostImpl = setupLayersForOpacity(false, this , &m_proxy); 2356 scoped_ptr<LayerTreeHostImpl> myHostImpl = setupLayersForOpacity(false, this , &m_proxy);
2357 2357
2358 { 2358 {
2359 LayerTreeHostImpl::FrameData frame; 2359 LayerTreeHostImpl::FrameData frame;
2360 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 2360 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
2361 2361
2362 // Just for consistency, the most interesting stuff already happened 2362 // Just for consistency, the most interesting stuff already happened
2363 myHostImpl->drawLayers(frame); 2363 myHostImpl->drawLayers(frame);
2364 myHostImpl->didDrawAllLayers(frame); 2364 myHostImpl->didDrawAllLayers(frame);
2365 2365
2366 // Verify all quads have been computed 2366 // Verify all quads have been computed
2367 ASSERT_EQ(2U, frame.renderPasses.size()); 2367 ASSERT_EQ(2U, frame.renderPasses.size());
2368 ASSERT_EQ(1U, frame.renderPasses[0]->quadList().size()); 2368 ASSERT_EQ(1U, frame.renderPasses[0]->quadList().size());
2369 ASSERT_EQ(1U, frame.renderPasses[1]->quadList().size()); 2369 ASSERT_EQ(1U, frame.renderPasses[1]->quadList().size());
2370 EXPECT_EQ(DrawQuad::SolidColor, frame.renderPasses[0]->quadList()[0]->ma terial()); 2370 EXPECT_EQ(DrawQuad::SOLID_COLOR, frame.renderPasses[0]->quadList()[0]->m aterial());
2371 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->ma terial()); 2371 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m aterial());
2372 } 2372 }
2373 } 2373 }
2374 2374
2375 // Make sure that context lost notifications are propagated through the tree. 2375 // Make sure that context lost notifications are propagated through the tree.
2376 class ContextLostNotificationCheckLayer : public LayerImpl { 2376 class ContextLostNotificationCheckLayer : public LayerImpl {
2377 public: 2377 public:
2378 static scoped_ptr<LayerImpl> create(int id) { return scoped_ptr<LayerImpl>(n ew ContextLostNotificationCheckLayer(id)); } 2378 static scoped_ptr<LayerImpl> create(int id) { return scoped_ptr<LayerImpl>(n ew ContextLostNotificationCheckLayer(id)); }
2379 2379
2380 virtual void didLoseContext() OVERRIDE 2380 virtual void didLoseContext() OVERRIDE
2381 { 2381 {
(...skipping 748 matching lines...) Expand 10 before | Expand all | Expand 10 after
3130 // Verify that the child layers are being clipped. 3130 // Verify that the child layers are being clipped.
3131 gfx::Rect quadVisibleRect = frame.renderPasses[0]->quadList()[0]->quadVi sibleRect(); 3131 gfx::Rect quadVisibleRect = frame.renderPasses[0]->quadList()[0]->quadVi sibleRect();
3132 EXPECT_LT(quadVisibleRect.width(), 100); 3132 EXPECT_LT(quadVisibleRect.width(), 100);
3133 3133
3134 quadVisibleRect = frame.renderPasses[0]->quadList()[1]->quadVisibleRect( ); 3134 quadVisibleRect = frame.renderPasses[0]->quadList()[1]->quadVisibleRect( );
3135 EXPECT_LT(quadVisibleRect.width(), 100); 3135 EXPECT_LT(quadVisibleRect.width(), 100);
3136 3136
3137 // Verify that the render surface texture is *not* clipped. 3137 // Verify that the render surface texture is *not* clipped.
3138 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), frame.renderPasses[0]->outputR ect()); 3138 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), frame.renderPasses[0]->outputR ect());
3139 3139
3140 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->ma terial()); 3140 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m aterial());
3141 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]); 3141 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]);
3142 EXPECT_FALSE(quad->contentsChangedSinceLastFrame().IsEmpty()); 3142 EXPECT_FALSE(quad->contentsChangedSinceLastFrame().IsEmpty());
3143 3143
3144 myHostImpl->drawLayers(frame); 3144 myHostImpl->drawLayers(frame);
3145 myHostImpl->didDrawAllLayers(frame); 3145 myHostImpl->didDrawAllLayers(frame);
3146 } 3146 }
3147 3147
3148 transform = surfaceLayerPtr->transform(); 3148 transform = surfaceLayerPtr->transform();
3149 transform.translate(50, 50); 3149 transform.translate(50, 50);
3150 transform.rotate(-35); 3150 transform.rotate(-35);
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after
3788 3788
3789 { 3789 {
3790 LayerTreeHostImpl::FrameData frame; 3790 LayerTreeHostImpl::FrameData frame;
3791 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 3791 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
3792 3792
3793 // Must receive two render passes, each with one quad 3793 // Must receive two render passes, each with one quad
3794 ASSERT_EQ(2U, frame.renderPasses.size()); 3794 ASSERT_EQ(2U, frame.renderPasses.size());
3795 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 3795 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
3796 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); 3796 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size());
3797 3797
3798 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->ma terial()); 3798 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m aterial());
3799 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]); 3799 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]);
3800 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 3800 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
3801 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); 3801 EXPECT_FALSE(targetPass->damageRect().IsEmpty());
3802 3802
3803 myHostImpl->drawLayers(frame); 3803 myHostImpl->drawLayers(frame);
3804 myHostImpl->didDrawAllLayers(frame); 3804 myHostImpl->didDrawAllLayers(frame);
3805 } 3805 }
3806 3806
3807 // Draw without any change 3807 // Draw without any change
3808 { 3808 {
3809 LayerTreeHostImpl::FrameData frame; 3809 LayerTreeHostImpl::FrameData frame;
3810 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 3810 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
3811 3811
3812 // Must receive one render pass, as the other one should be culled 3812 // Must receive one render pass, as the other one should be culled
3813 ASSERT_EQ(1U, frame.renderPasses.size()); 3813 ASSERT_EQ(1U, frame.renderPasses.size());
3814 3814
3815 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 3815 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
3816 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->ma terial()); 3816 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m aterial());
3817 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]); 3817 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]);
3818 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 3818 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
3819 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); 3819 EXPECT_TRUE(targetPass->damageRect().IsEmpty());
3820 3820
3821 myHostImpl->drawLayers(frame); 3821 myHostImpl->drawLayers(frame);
3822 myHostImpl->didDrawAllLayers(frame); 3822 myHostImpl->didDrawAllLayers(frame);
3823 } 3823 }
3824 3824
3825 // Change opacity and draw 3825 // Change opacity and draw
3826 surfaceLayerPtr->setOpacity(0.6f); 3826 surfaceLayerPtr->setOpacity(0.6f);
3827 { 3827 {
3828 LayerTreeHostImpl::FrameData frame; 3828 LayerTreeHostImpl::FrameData frame;
3829 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 3829 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
3830 3830
3831 // Must receive one render pass, as the other one should be culled 3831 // Must receive one render pass, as the other one should be culled
3832 ASSERT_EQ(1U, frame.renderPasses.size()); 3832 ASSERT_EQ(1U, frame.renderPasses.size());
3833 3833
3834 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 3834 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
3835 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->ma terial()); 3835 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m aterial());
3836 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]); 3836 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]);
3837 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 3837 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
3838 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); 3838 EXPECT_TRUE(targetPass->damageRect().IsEmpty());
3839 3839
3840 myHostImpl->drawLayers(frame); 3840 myHostImpl->drawLayers(frame);
3841 myHostImpl->didDrawAllLayers(frame); 3841 myHostImpl->didDrawAllLayers(frame);
3842 } 3842 }
3843 3843
3844 // Change less benign property and draw - should have contents changed flag 3844 // Change less benign property and draw - should have contents changed flag
3845 surfaceLayerPtr->setStackingOrderChanged(true); 3845 surfaceLayerPtr->setStackingOrderChanged(true);
3846 { 3846 {
3847 LayerTreeHostImpl::FrameData frame; 3847 LayerTreeHostImpl::FrameData frame;
3848 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 3848 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
3849 3849
3850 // Must receive two render passes, each with one quad 3850 // Must receive two render passes, each with one quad
3851 ASSERT_EQ(2U, frame.renderPasses.size()); 3851 ASSERT_EQ(2U, frame.renderPasses.size());
3852 3852
3853 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 3853 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
3854 EXPECT_EQ(DrawQuad::SolidColor, frame.renderPasses[0]->quadList()[0]->ma terial()); 3854 EXPECT_EQ(DrawQuad::SOLID_COLOR, frame.renderPasses[0]->quadList()[0]->m aterial());
3855 3855
3856 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->ma terial()); 3856 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m aterial());
3857 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]); 3857 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]);
3858 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 3858 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
3859 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); 3859 EXPECT_FALSE(targetPass->damageRect().IsEmpty());
3860 3860
3861 myHostImpl->drawLayers(frame); 3861 myHostImpl->drawLayers(frame);
3862 myHostImpl->didDrawAllLayers(frame); 3862 myHostImpl->didDrawAllLayers(frame);
3863 } 3863 }
3864 3864
3865 // Change opacity again, and evict the cached surface texture. 3865 // Change opacity again, and evict the cached surface texture.
3866 surfaceLayerPtr->setOpacity(0.5f); 3866 surfaceLayerPtr->setOpacity(0.5f);
3867 static_cast<GLRendererWithReleaseTextures*>(myHostImpl->renderer())->release RenderPassTextures(); 3867 static_cast<GLRendererWithReleaseTextures*>(myHostImpl->renderer())->release RenderPassTextures();
3868 3868
3869 // Change opacity and draw 3869 // Change opacity and draw
3870 surfaceLayerPtr->setOpacity(0.6f); 3870 surfaceLayerPtr->setOpacity(0.6f);
3871 { 3871 {
3872 LayerTreeHostImpl::FrameData frame; 3872 LayerTreeHostImpl::FrameData frame;
3873 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 3873 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
3874 3874
3875 // Must receive two render passes 3875 // Must receive two render passes
3876 ASSERT_EQ(2U, frame.renderPasses.size()); 3876 ASSERT_EQ(2U, frame.renderPasses.size());
3877 3877
3878 // Even though not enough properties changed, the entire thing must be 3878 // Even though not enough properties changed, the entire thing must be
3879 // redrawn as we don't have cached textures 3879 // redrawn as we don't have cached textures
3880 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 3880 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
3881 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); 3881 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size());
3882 3882
3883 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->ma terial()); 3883 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m aterial());
3884 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]); 3884 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]);
3885 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 3885 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
3886 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); 3886 EXPECT_TRUE(targetPass->damageRect().IsEmpty());
3887 3887
3888 // Was our surface evicted? 3888 // Was our surface evicted?
3889 EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId( targetPass->id())); 3889 EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId( targetPass->id()));
3890 3890
3891 myHostImpl->drawLayers(frame); 3891 myHostImpl->drawLayers(frame);
3892 myHostImpl->didDrawAllLayers(frame); 3892 myHostImpl->didDrawAllLayers(frame);
3893 } 3893 }
3894 3894
3895 // Draw without any change, to make sure the state is clear 3895 // Draw without any change, to make sure the state is clear
3896 { 3896 {
3897 LayerTreeHostImpl::FrameData frame; 3897 LayerTreeHostImpl::FrameData frame;
3898 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 3898 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
3899 3899
3900 // Must receive one render pass, as the other one should be culled 3900 // Must receive one render pass, as the other one should be culled
3901 ASSERT_EQ(1U, frame.renderPasses.size()); 3901 ASSERT_EQ(1U, frame.renderPasses.size());
3902 3902
3903 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 3903 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
3904 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->ma terial()); 3904 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m aterial());
3905 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]); 3905 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]);
3906 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 3906 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
3907 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); 3907 EXPECT_TRUE(targetPass->damageRect().IsEmpty());
3908 3908
3909 myHostImpl->drawLayers(frame); 3909 myHostImpl->drawLayers(frame);
3910 myHostImpl->didDrawAllLayers(frame); 3910 myHostImpl->didDrawAllLayers(frame);
3911 } 3911 }
3912 3912
3913 // Change location of the intermediate layer 3913 // Change location of the intermediate layer
3914 WebTransformationMatrix transform = intermediateLayerPtr->transform(); 3914 WebTransformationMatrix transform = intermediateLayerPtr->transform();
3915 transform.setM41(1.0001); 3915 transform.setM41(1.0001);
3916 intermediateLayerPtr->setTransform(transform); 3916 intermediateLayerPtr->setTransform(transform);
3917 { 3917 {
3918 LayerTreeHostImpl::FrameData frame; 3918 LayerTreeHostImpl::FrameData frame;
3919 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 3919 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
3920 3920
3921 // Must receive one render pass, as the other one should be culled. 3921 // Must receive one render pass, as the other one should be culled.
3922 ASSERT_EQ(1U, frame.renderPasses.size()); 3922 ASSERT_EQ(1U, frame.renderPasses.size());
3923 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 3923 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
3924 3924
3925 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->ma terial()); 3925 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m aterial());
3926 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]); 3926 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]);
3927 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 3927 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
3928 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); 3928 EXPECT_TRUE(targetPass->damageRect().IsEmpty());
3929 3929
3930 myHostImpl->drawLayers(frame); 3930 myHostImpl->drawLayers(frame);
3931 myHostImpl->didDrawAllLayers(frame); 3931 myHostImpl->didDrawAllLayers(frame);
3932 } 3932 }
3933 } 3933 }
3934 3934
3935 TEST_P(LayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) 3935 TEST_P(LayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap)
(...skipping 11 matching lines...) Expand all
3947 3947
3948 { 3948 {
3949 LayerTreeHostImpl::FrameData frame; 3949 LayerTreeHostImpl::FrameData frame;
3950 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 3950 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
3951 3951
3952 // Must receive two render passes, each with one quad 3952 // Must receive two render passes, each with one quad
3953 ASSERT_EQ(2U, frame.renderPasses.size()); 3953 ASSERT_EQ(2U, frame.renderPasses.size());
3954 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 3954 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
3955 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); 3955 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size());
3956 3956
3957 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->ma terial()); 3957 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m aterial());
3958 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]); 3958 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]);
3959 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 3959 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
3960 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); 3960 EXPECT_FALSE(targetPass->damageRect().IsEmpty());
3961 3961
3962 EXPECT_FALSE(frame.renderPasses[0]->damageRect().IsEmpty()); 3962 EXPECT_FALSE(frame.renderPasses[0]->damageRect().IsEmpty());
3963 EXPECT_FALSE(frame.renderPasses[1]->damageRect().IsEmpty()); 3963 EXPECT_FALSE(frame.renderPasses[1]->damageRect().IsEmpty());
3964 3964
3965 EXPECT_FALSE(frame.renderPasses[0]->hasOcclusionFromOutsideTargetSurface ()); 3965 EXPECT_FALSE(frame.renderPasses[0]->hasOcclusionFromOutsideTargetSurface ());
3966 EXPECT_FALSE(frame.renderPasses[1]->hasOcclusionFromOutsideTargetSurface ()); 3966 EXPECT_FALSE(frame.renderPasses[1]->hasOcclusionFromOutsideTargetSurface ());
3967 3967
(...skipping 21 matching lines...) Expand all
3989 // Change opacity and draw 3989 // Change opacity and draw
3990 surfaceLayerPtr->setOpacity(0.6f); 3990 surfaceLayerPtr->setOpacity(0.6f);
3991 { 3991 {
3992 LayerTreeHostImpl::FrameData frame; 3992 LayerTreeHostImpl::FrameData frame;
3993 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 3993 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
3994 3994
3995 // Must receive one render pass, as the other one should be culled 3995 // Must receive one render pass, as the other one should be culled
3996 ASSERT_EQ(1U, frame.renderPasses.size()); 3996 ASSERT_EQ(1U, frame.renderPasses.size());
3997 3997
3998 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 3998 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
3999 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->ma terial()); 3999 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m aterial());
4000 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]); 4000 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]);
4001 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 4001 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
4002 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); 4002 EXPECT_TRUE(targetPass->damageRect().IsEmpty());
4003 4003
4004 myHostImpl->drawLayers(frame); 4004 myHostImpl->drawLayers(frame);
4005 myHostImpl->didDrawAllLayers(frame); 4005 myHostImpl->didDrawAllLayers(frame);
4006 } 4006 }
4007 4007
4008 // Change less benign property and draw - should have contents changed flag 4008 // Change less benign property and draw - should have contents changed flag
4009 surfaceLayerPtr->setStackingOrderChanged(true); 4009 surfaceLayerPtr->setStackingOrderChanged(true);
4010 { 4010 {
4011 LayerTreeHostImpl::FrameData frame; 4011 LayerTreeHostImpl::FrameData frame;
4012 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 4012 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
4013 4013
4014 // Must receive two render passes, each with one quad 4014 // Must receive two render passes, each with one quad
4015 ASSERT_EQ(2U, frame.renderPasses.size()); 4015 ASSERT_EQ(2U, frame.renderPasses.size());
4016 4016
4017 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 4017 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
4018 EXPECT_EQ(DrawQuad::SolidColor, frame.renderPasses[0]->quadList()[0]->ma terial()); 4018 EXPECT_EQ(DrawQuad::SOLID_COLOR, frame.renderPasses[0]->quadList()[0]->m aterial());
4019 4019
4020 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->ma terial()); 4020 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m aterial());
4021 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]); 4021 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]);
4022 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 4022 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
4023 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); 4023 EXPECT_FALSE(targetPass->damageRect().IsEmpty());
4024 4024
4025 myHostImpl->drawLayers(frame); 4025 myHostImpl->drawLayers(frame);
4026 myHostImpl->didDrawAllLayers(frame); 4026 myHostImpl->didDrawAllLayers(frame);
4027 } 4027 }
4028 4028
4029 // Change opacity again, and evict the cached surface texture. 4029 // Change opacity again, and evict the cached surface texture.
4030 surfaceLayerPtr->setOpacity(0.5f); 4030 surfaceLayerPtr->setOpacity(0.5f);
4031 static_cast<GLRendererWithReleaseTextures*>(myHostImpl->renderer())->release RenderPassTextures(); 4031 static_cast<GLRendererWithReleaseTextures*>(myHostImpl->renderer())->release RenderPassTextures();
4032 4032
4033 // Change opacity and draw 4033 // Change opacity and draw
4034 surfaceLayerPtr->setOpacity(0.6f); 4034 surfaceLayerPtr->setOpacity(0.6f);
4035 { 4035 {
4036 LayerTreeHostImpl::FrameData frame; 4036 LayerTreeHostImpl::FrameData frame;
4037 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 4037 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
4038 4038
4039 // Must receive two render passes 4039 // Must receive two render passes
4040 ASSERT_EQ(2U, frame.renderPasses.size()); 4040 ASSERT_EQ(2U, frame.renderPasses.size());
4041 4041
4042 // Even though not enough properties changed, the entire thing must be 4042 // Even though not enough properties changed, the entire thing must be
4043 // redrawn as we don't have cached textures 4043 // redrawn as we don't have cached textures
4044 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 4044 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
4045 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); 4045 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size());
4046 4046
4047 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->ma terial()); 4047 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m aterial());
4048 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]); 4048 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[1]->quadList()[0]);
4049 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 4049 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
4050 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); 4050 EXPECT_TRUE(targetPass->damageRect().IsEmpty());
4051 4051
4052 // Was our surface evicted? 4052 // Was our surface evicted?
4053 EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId( targetPass->id())); 4053 EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId( targetPass->id()));
4054 4054
4055 myHostImpl->drawLayers(frame); 4055 myHostImpl->drawLayers(frame);
4056 myHostImpl->didDrawAllLayers(frame); 4056 myHostImpl->didDrawAllLayers(frame);
4057 } 4057 }
(...skipping 18 matching lines...) Expand all
4076 transform.setM41(1.0001); 4076 transform.setM41(1.0001);
4077 intermediateLayerPtr->setTransform(transform); 4077 intermediateLayerPtr->setTransform(transform);
4078 { 4078 {
4079 LayerTreeHostImpl::FrameData frame; 4079 LayerTreeHostImpl::FrameData frame;
4080 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); 4080 EXPECT_TRUE(myHostImpl->prepareToDraw(frame));
4081 4081
4082 // Must receive one render pass, as the other one should be culled. 4082 // Must receive one render pass, as the other one should be culled.
4083 ASSERT_EQ(1U, frame.renderPasses.size()); 4083 ASSERT_EQ(1U, frame.renderPasses.size());
4084 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); 4084 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
4085 4085
4086 EXPECT_EQ(DrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->ma terial()); 4086 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m aterial());
4087 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]); 4087 RenderPassDrawQuad* quad = static_cast<RenderPassDrawQuad*>(frame.render Passes[0]->quadList()[0]);
4088 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() ); 4088 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId() );
4089 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); 4089 EXPECT_TRUE(targetPass->damageRect().IsEmpty());
4090 4090
4091 myHostImpl->drawLayers(frame); 4091 myHostImpl->drawLayers(frame);
4092 myHostImpl->didDrawAllLayers(frame); 4092 myHostImpl->didDrawAllLayers(frame);
4093 } 4093 }
4094 } 4094 }
4095 4095
4096 TEST_P(LayerTreeHostImplTest, releaseContentsTextureShouldTriggerCommit) 4096 TEST_P(LayerTreeHostImplTest, releaseContentsTextureShouldTriggerCommit)
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
4252 const RenderPass* currentPass = *it; 4252 const RenderPass* currentPass = *it;
4253 *pos = currentPass->id().layerId; 4253 *pos = currentPass->id().layerId;
4254 pos++; 4254 pos++;
4255 *pos = currentPass->id().index; 4255 *pos = currentPass->id().index;
4256 pos++; 4256 pos++;
4257 4257
4258 QuadList::const_iterator quadListIterator = currentPass->quadList().begi n(); 4258 QuadList::const_iterator quadListIterator = currentPass->quadList().begi n();
4259 while (quadListIterator != currentPass->quadList().end()) { 4259 while (quadListIterator != currentPass->quadList().end()) {
4260 DrawQuad* currentQuad = *quadListIterator; 4260 DrawQuad* currentQuad = *quadListIterator;
4261 switch (currentQuad->material()) { 4261 switch (currentQuad->material()) {
4262 case DrawQuad::SolidColor: 4262 case DrawQuad::SOLID_COLOR:
4263 *pos = 's'; 4263 *pos = 's';
4264 pos++; 4264 pos++;
4265 break; 4265 break;
4266 case DrawQuad::RenderPass: 4266 case DrawQuad::RENDER_PASS:
4267 *pos = RenderPassDrawQuad::materialCast(currentQuad)->renderPass Id().layerId; 4267 *pos = RenderPassDrawQuad::materialCast(currentQuad)->renderPass Id().layerId;
4268 pos++; 4268 pos++;
4269 *pos = RenderPassDrawQuad::materialCast(currentQuad)->renderPass Id().index; 4269 *pos = RenderPassDrawQuad::materialCast(currentQuad)->renderPass Id().index;
4270 pos++; 4270 pos++;
4271 break; 4271 break;
4272 default: 4272 default:
4273 *pos = 'x'; 4273 *pos = 'x';
4274 pos++; 4274 pos++;
4275 break; 4275 break;
4276 } 4276 }
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
4448 testCaseIndex++; 4448 testCaseIndex++;
4449 } 4449 }
4450 } 4450 }
4451 4451
4452 INSTANTIATE_TEST_CASE_P(LayerTreeHostImplTests, 4452 INSTANTIATE_TEST_CASE_P(LayerTreeHostImplTests,
4453 LayerTreeHostImplTest, 4453 LayerTreeHostImplTest,
4454 ::testing::Values(false, true)); 4454 ::testing::Values(false, true));
4455 4455
4456 } // namespace 4456 } // namespace
4457 } // namespace cc 4457 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host_impl.cc ('k') | cc/nine_patch_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698