| 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_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 1584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1595 { | 1595 { |
| 1596 m_quadsAppended = true; | 1596 m_quadsAppended = true; |
| 1597 | 1597 |
| 1598 gfx::Rect opaqueRect; | 1598 gfx::Rect opaqueRect; |
| 1599 if (contentsOpaque()) | 1599 if (contentsOpaque()) |
| 1600 opaqueRect = m_quadRect; | 1600 opaqueRect = m_quadRect; |
| 1601 else | 1601 else |
| 1602 opaqueRect = m_opaqueContentRect; | 1602 opaqueRect = m_opaqueContentRect; |
| 1603 | 1603 |
| 1604 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSha
redQuadState()); | 1604 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSha
redQuadState()); |
| 1605 scoped_ptr<TileDrawQuad> testBlendingDrawQuad = TileDrawQuad::create(sha
redQuadState, m_quadRect, opaqueRect, m_resourceId, gfx::RectF(0, 0, 1, 1), gfx:
:Size(1, 1), false, false, false, false, false); | 1605 scoped_ptr<TileDrawQuad> testBlendingDrawQuad = TileDrawQuad::Create(); |
| 1606 testBlendingDrawQuad->SetNew(sharedQuadState, m_quadRect, opaqueRect, m_
resourceId, gfx::RectF(0, 0, 1, 1), gfx::Size(1, 1), false, false, false, false,
false); |
| 1606 testBlendingDrawQuad->visible_rect = m_quadVisibleRect; | 1607 testBlendingDrawQuad->visible_rect = m_quadVisibleRect; |
| 1607 EXPECT_EQ(m_blend, testBlendingDrawQuad->ShouldDrawWithBlending()); | 1608 EXPECT_EQ(m_blend, testBlendingDrawQuad->ShouldDrawWithBlending()); |
| 1608 EXPECT_EQ(m_hasRenderSurface, !!renderSurface()); | 1609 EXPECT_EQ(m_hasRenderSurface, !!renderSurface()); |
| 1609 quadSink.append(testBlendingDrawQuad.PassAs<DrawQuad>(), appendQuadsData
); | 1610 quadSink.append(testBlendingDrawQuad.PassAs<DrawQuad>(), appendQuadsData
); |
| 1610 } | 1611 } |
| 1611 | 1612 |
| 1612 void setExpectation(bool blend, bool hasRenderSurface) | 1613 void setExpectation(bool blend, bool hasRenderSurface) |
| 1613 { | 1614 { |
| 1614 m_blend = blend; | 1615 m_blend = blend; |
| 1615 m_hasRenderSurface = hasRenderSurface; | 1616 m_hasRenderSurface = hasRenderSurface; |
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2098 class FakeLayerWithQuads : public LayerImpl { | 2099 class FakeLayerWithQuads : public LayerImpl { |
| 2099 public: | 2100 public: |
| 2100 static scoped_ptr<LayerImpl> create(int id) { return scoped_ptr<LayerImpl>(n
ew FakeLayerWithQuads(id)); } | 2101 static scoped_ptr<LayerImpl> create(int id) { return scoped_ptr<LayerImpl>(n
ew FakeLayerWithQuads(id)); } |
| 2101 | 2102 |
| 2102 virtual void appendQuads(QuadSink& quadSink, AppendQuadsData& appendQuadsDat
a) OVERRIDE | 2103 virtual void appendQuads(QuadSink& quadSink, AppendQuadsData& appendQuadsDat
a) OVERRIDE |
| 2103 { | 2104 { |
| 2104 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSha
redQuadState()); | 2105 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSha
redQuadState()); |
| 2105 | 2106 |
| 2106 SkColor gray = SkColorSetRGB(100, 100, 100); | 2107 SkColor gray = SkColorSetRGB(100, 100, 100); |
| 2107 gfx::Rect quadRect(gfx::Point(0, 0), contentBounds()); | 2108 gfx::Rect quadRect(gfx::Point(0, 0), contentBounds()); |
| 2108 scoped_ptr<SolidColorDrawQuad> myQuad = SolidColorDrawQuad::create(share
dQuadState, quadRect, gray); | 2109 scoped_ptr<SolidColorDrawQuad> myQuad = SolidColorDrawQuad::Create(); |
| 2110 myQuad->SetNew(sharedQuadState, quadRect, gray); |
| 2109 quadSink.append(myQuad.PassAs<DrawQuad>(), appendQuadsData); | 2111 quadSink.append(myQuad.PassAs<DrawQuad>(), appendQuadsData); |
| 2110 } | 2112 } |
| 2111 | 2113 |
| 2112 private: | 2114 private: |
| 2113 FakeLayerWithQuads(int id) | 2115 FakeLayerWithQuads(int id) |
| 2114 : LayerImpl(id) | 2116 : LayerImpl(id) |
| 2115 { | 2117 { |
| 2116 } | 2118 } |
| 2117 }; | 2119 }; |
| 2118 | 2120 |
| (...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2707 { | 2709 { |
| 2708 } | 2710 } |
| 2709 }; | 2711 }; |
| 2710 | 2712 |
| 2711 static inline scoped_ptr<RenderPass> createRenderPassWithResource(ResourceProvid
er* provider) | 2713 static inline scoped_ptr<RenderPass> createRenderPassWithResource(ResourceProvid
er* provider) |
| 2712 { | 2714 { |
| 2713 ResourceProvider::ResourceId resourceId = provider->createResource(0, gfx::S
ize(1, 1), GL_RGBA, ResourceProvider::TextureUsageAny); | 2715 ResourceProvider::ResourceId resourceId = provider->createResource(0, gfx::S
ize(1, 1), GL_RGBA, ResourceProvider::TextureUsageAny); |
| 2714 | 2716 |
| 2715 scoped_ptr<TestRenderPass> pass = TestRenderPass::create(RenderPass::Id(1, 1
), gfx::Rect(0, 0, 1, 1), WebTransformationMatrix()); | 2717 scoped_ptr<TestRenderPass> pass = TestRenderPass::create(RenderPass::Id(1, 1
), gfx::Rect(0, 0, 1, 1), WebTransformationMatrix()); |
| 2716 scoped_ptr<SharedQuadState> sharedState = SharedQuadState::create(WebTransfo
rmationMatrix(), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), 1); | 2718 scoped_ptr<SharedQuadState> sharedState = SharedQuadState::create(WebTransfo
rmationMatrix(), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), 1); |
| 2717 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::create(sharedState.get()
, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), resourceId, false, gfx::RectF(0,
0, 1, 1), false); | 2719 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); |
| 2720 quad->SetNew(sharedState.get(), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)
, resourceId, false, gfx::RectF(0, 0, 1, 1), false); |
| 2718 | 2721 |
| 2719 pass->appendSharedQuadState(sharedState.Pass()); | 2722 pass->appendSharedQuadState(sharedState.Pass()); |
| 2720 pass->appendQuad(quad.PassAs<DrawQuad>()); | 2723 pass->appendQuad(quad.PassAs<DrawQuad>()); |
| 2721 | 2724 |
| 2722 return pass.PassAs<RenderPass>(); | 2725 return pass.PassAs<RenderPass>(); |
| 2723 } | 2726 } |
| 2724 | 2727 |
| 2725 TEST_P(LayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) | 2728 TEST_P(LayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) |
| 2726 { | 2729 { |
| 2727 int layerId = 1; | 2730 int layerId = 1; |
| (...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3151 gfx::Rect quadVisibleRect = frame.renderPasses[0]->quadList()[0]->visibl
e_rect; | 3154 gfx::Rect quadVisibleRect = frame.renderPasses[0]->quadList()[0]->visibl
e_rect; |
| 3152 EXPECT_LT(quadVisibleRect.width(), 100); | 3155 EXPECT_LT(quadVisibleRect.width(), 100); |
| 3153 | 3156 |
| 3154 quadVisibleRect = frame.renderPasses[0]->quadList()[1]->visible_rect; | 3157 quadVisibleRect = frame.renderPasses[0]->quadList()[1]->visible_rect; |
| 3155 EXPECT_LT(quadVisibleRect.width(), 100); | 3158 EXPECT_LT(quadVisibleRect.width(), 100); |
| 3156 | 3159 |
| 3157 // Verify that the render surface texture is *not* clipped. | 3160 // Verify that the render surface texture is *not* clipped. |
| 3158 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), frame.renderPasses[0]->outputR
ect()); | 3161 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), frame.renderPasses[0]->outputR
ect()); |
| 3159 | 3162 |
| 3160 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); | 3163 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); |
| 3161 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[1]->quadList()[0]); | 3164 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[1]->quadList()[0]); |
| 3162 EXPECT_FALSE(quad->contentsChangedSinceLastFrame().IsEmpty()); | 3165 EXPECT_FALSE(quad->contents_changed_since_last_frame.IsEmpty()); |
| 3163 | 3166 |
| 3164 myHostImpl->drawLayers(frame); | 3167 myHostImpl->drawLayers(frame); |
| 3165 myHostImpl->didDrawAllLayers(frame); | 3168 myHostImpl->didDrawAllLayers(frame); |
| 3166 } | 3169 } |
| 3167 | 3170 |
| 3168 transform = surfaceLayerPtr->transform(); | 3171 transform = surfaceLayerPtr->transform(); |
| 3169 transform.translate(50, 50); | 3172 transform.translate(50, 50); |
| 3170 transform.rotate(-35); | 3173 transform.rotate(-35); |
| 3171 transform.translate(-50, -50); | 3174 transform.translate(-50, -50); |
| 3172 surfaceLayerPtr->setTransform(transform); | 3175 surfaceLayerPtr->setTransform(transform); |
| (...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3809 { | 3812 { |
| 3810 LayerTreeHostImpl::FrameData frame; | 3813 LayerTreeHostImpl::FrameData frame; |
| 3811 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 3814 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 3812 | 3815 |
| 3813 // Must receive two render passes, each with one quad | 3816 // Must receive two render passes, each with one quad |
| 3814 ASSERT_EQ(2U, frame.renderPasses.size()); | 3817 ASSERT_EQ(2U, frame.renderPasses.size()); |
| 3815 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 3818 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 3816 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); | 3819 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); |
| 3817 | 3820 |
| 3818 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); | 3821 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); |
| 3819 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[1]->quadList()[0]); | 3822 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[1]->quadList()[0]); |
| 3820 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 3823 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 3821 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); | 3824 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); |
| 3822 | 3825 |
| 3823 myHostImpl->drawLayers(frame); | 3826 myHostImpl->drawLayers(frame); |
| 3824 myHostImpl->didDrawAllLayers(frame); | 3827 myHostImpl->didDrawAllLayers(frame); |
| 3825 } | 3828 } |
| 3826 | 3829 |
| 3827 // Draw without any change | 3830 // Draw without any change |
| 3828 { | 3831 { |
| 3829 LayerTreeHostImpl::FrameData frame; | 3832 LayerTreeHostImpl::FrameData frame; |
| 3830 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 3833 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 3831 | 3834 |
| 3832 // Must receive one render pass, as the other one should be culled | 3835 // Must receive one render pass, as the other one should be culled |
| 3833 ASSERT_EQ(1U, frame.renderPasses.size()); | 3836 ASSERT_EQ(1U, frame.renderPasses.size()); |
| 3834 | 3837 |
| 3835 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 3838 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 3836 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); | 3839 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); |
| 3837 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[0]->quadList()[0]); | 3840 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[0]->quadList()[0]); |
| 3838 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 3841 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 3839 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); | 3842 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); |
| 3840 | 3843 |
| 3841 myHostImpl->drawLayers(frame); | 3844 myHostImpl->drawLayers(frame); |
| 3842 myHostImpl->didDrawAllLayers(frame); | 3845 myHostImpl->didDrawAllLayers(frame); |
| 3843 } | 3846 } |
| 3844 | 3847 |
| 3845 // Change opacity and draw | 3848 // Change opacity and draw |
| 3846 surfaceLayerPtr->setOpacity(0.6f); | 3849 surfaceLayerPtr->setOpacity(0.6f); |
| 3847 { | 3850 { |
| 3848 LayerTreeHostImpl::FrameData frame; | 3851 LayerTreeHostImpl::FrameData frame; |
| 3849 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 3852 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 3850 | 3853 |
| 3851 // Must receive one render pass, as the other one should be culled | 3854 // Must receive one render pass, as the other one should be culled |
| 3852 ASSERT_EQ(1U, frame.renderPasses.size()); | 3855 ASSERT_EQ(1U, frame.renderPasses.size()); |
| 3853 | 3856 |
| 3854 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 3857 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 3855 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); | 3858 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); |
| 3856 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[0]->quadList()[0]); | 3859 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[0]->quadList()[0]); |
| 3857 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 3860 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 3858 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); | 3861 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); |
| 3859 | 3862 |
| 3860 myHostImpl->drawLayers(frame); | 3863 myHostImpl->drawLayers(frame); |
| 3861 myHostImpl->didDrawAllLayers(frame); | 3864 myHostImpl->didDrawAllLayers(frame); |
| 3862 } | 3865 } |
| 3863 | 3866 |
| 3864 // Change less benign property and draw - should have contents changed flag | 3867 // Change less benign property and draw - should have contents changed flag |
| 3865 surfaceLayerPtr->setStackingOrderChanged(true); | 3868 surfaceLayerPtr->setStackingOrderChanged(true); |
| 3866 { | 3869 { |
| 3867 LayerTreeHostImpl::FrameData frame; | 3870 LayerTreeHostImpl::FrameData frame; |
| 3868 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 3871 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 3869 | 3872 |
| 3870 // Must receive two render passes, each with one quad | 3873 // Must receive two render passes, each with one quad |
| 3871 ASSERT_EQ(2U, frame.renderPasses.size()); | 3874 ASSERT_EQ(2U, frame.renderPasses.size()); |
| 3872 | 3875 |
| 3873 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 3876 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 3874 EXPECT_EQ(DrawQuad::SOLID_COLOR, frame.renderPasses[0]->quadList()[0]->m
aterial); | 3877 EXPECT_EQ(DrawQuad::SOLID_COLOR, frame.renderPasses[0]->quadList()[0]->m
aterial); |
| 3875 | 3878 |
| 3876 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); | 3879 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); |
| 3877 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[1]->quadList()[0]); | 3880 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[1]->quadList()[0]); |
| 3878 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 3881 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 3879 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); | 3882 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); |
| 3880 | 3883 |
| 3881 myHostImpl->drawLayers(frame); | 3884 myHostImpl->drawLayers(frame); |
| 3882 myHostImpl->didDrawAllLayers(frame); | 3885 myHostImpl->didDrawAllLayers(frame); |
| 3883 } | 3886 } |
| 3884 | 3887 |
| 3885 // Change opacity again, and evict the cached surface texture. | 3888 // Change opacity again, and evict the cached surface texture. |
| 3886 surfaceLayerPtr->setOpacity(0.5f); | 3889 surfaceLayerPtr->setOpacity(0.5f); |
| 3887 static_cast<GLRendererWithReleaseTextures*>(myHostImpl->renderer())->release
RenderPassTextures(); | 3890 static_cast<GLRendererWithReleaseTextures*>(myHostImpl->renderer())->release
RenderPassTextures(); |
| 3888 | 3891 |
| 3889 // Change opacity and draw | 3892 // Change opacity and draw |
| 3890 surfaceLayerPtr->setOpacity(0.6f); | 3893 surfaceLayerPtr->setOpacity(0.6f); |
| 3891 { | 3894 { |
| 3892 LayerTreeHostImpl::FrameData frame; | 3895 LayerTreeHostImpl::FrameData frame; |
| 3893 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 3896 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 3894 | 3897 |
| 3895 // Must receive two render passes | 3898 // Must receive two render passes |
| 3896 ASSERT_EQ(2U, frame.renderPasses.size()); | 3899 ASSERT_EQ(2U, frame.renderPasses.size()); |
| 3897 | 3900 |
| 3898 // Even though not enough properties changed, the entire thing must be | 3901 // Even though not enough properties changed, the entire thing must be |
| 3899 // redrawn as we don't have cached textures | 3902 // redrawn as we don't have cached textures |
| 3900 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 3903 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 3901 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); | 3904 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); |
| 3902 | 3905 |
| 3903 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); | 3906 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); |
| 3904 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[1]->quadList()[0]); | 3907 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[1]->quadList()[0]); |
| 3905 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 3908 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 3906 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); | 3909 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); |
| 3907 | 3910 |
| 3908 // Was our surface evicted? | 3911 // Was our surface evicted? |
| 3909 EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(
targetPass->id())); | 3912 EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(
targetPass->id())); |
| 3910 | 3913 |
| 3911 myHostImpl->drawLayers(frame); | 3914 myHostImpl->drawLayers(frame); |
| 3912 myHostImpl->didDrawAllLayers(frame); | 3915 myHostImpl->didDrawAllLayers(frame); |
| 3913 } | 3916 } |
| 3914 | 3917 |
| 3915 // Draw without any change, to make sure the state is clear | 3918 // Draw without any change, to make sure the state is clear |
| 3916 { | 3919 { |
| 3917 LayerTreeHostImpl::FrameData frame; | 3920 LayerTreeHostImpl::FrameData frame; |
| 3918 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 3921 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 3919 | 3922 |
| 3920 // Must receive one render pass, as the other one should be culled | 3923 // Must receive one render pass, as the other one should be culled |
| 3921 ASSERT_EQ(1U, frame.renderPasses.size()); | 3924 ASSERT_EQ(1U, frame.renderPasses.size()); |
| 3922 | 3925 |
| 3923 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 3926 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 3924 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); | 3927 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); |
| 3925 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[0]->quadList()[0]); | 3928 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[0]->quadList()[0]); |
| 3926 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 3929 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 3927 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); | 3930 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); |
| 3928 | 3931 |
| 3929 myHostImpl->drawLayers(frame); | 3932 myHostImpl->drawLayers(frame); |
| 3930 myHostImpl->didDrawAllLayers(frame); | 3933 myHostImpl->didDrawAllLayers(frame); |
| 3931 } | 3934 } |
| 3932 | 3935 |
| 3933 // Change location of the intermediate layer | 3936 // Change location of the intermediate layer |
| 3934 WebTransformationMatrix transform = intermediateLayerPtr->transform(); | 3937 WebTransformationMatrix transform = intermediateLayerPtr->transform(); |
| 3935 transform.setM41(1.0001); | 3938 transform.setM41(1.0001); |
| 3936 intermediateLayerPtr->setTransform(transform); | 3939 intermediateLayerPtr->setTransform(transform); |
| 3937 { | 3940 { |
| 3938 LayerTreeHostImpl::FrameData frame; | 3941 LayerTreeHostImpl::FrameData frame; |
| 3939 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 3942 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 3940 | 3943 |
| 3941 // Must receive one render pass, as the other one should be culled. | 3944 // Must receive one render pass, as the other one should be culled. |
| 3942 ASSERT_EQ(1U, frame.renderPasses.size()); | 3945 ASSERT_EQ(1U, frame.renderPasses.size()); |
| 3943 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 3946 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 3944 | 3947 |
| 3945 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); | 3948 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); |
| 3946 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[0]->quadList()[0]); | 3949 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[0]->quadList()[0]); |
| 3947 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 3950 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 3948 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); | 3951 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); |
| 3949 | 3952 |
| 3950 myHostImpl->drawLayers(frame); | 3953 myHostImpl->drawLayers(frame); |
| 3951 myHostImpl->didDrawAllLayers(frame); | 3954 myHostImpl->didDrawAllLayers(frame); |
| 3952 } | 3955 } |
| 3953 } | 3956 } |
| 3954 | 3957 |
| 3955 TEST_P(LayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) | 3958 TEST_P(LayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) |
| 3956 { | 3959 { |
| 3957 LayerTreeSettings settings; | 3960 LayerTreeSettings settings; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 3968 { | 3971 { |
| 3969 LayerTreeHostImpl::FrameData frame; | 3972 LayerTreeHostImpl::FrameData frame; |
| 3970 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 3973 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 3971 | 3974 |
| 3972 // Must receive two render passes, each with one quad | 3975 // Must receive two render passes, each with one quad |
| 3973 ASSERT_EQ(2U, frame.renderPasses.size()); | 3976 ASSERT_EQ(2U, frame.renderPasses.size()); |
| 3974 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 3977 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 3975 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); | 3978 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); |
| 3976 | 3979 |
| 3977 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); | 3980 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); |
| 3978 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[1]->quadList()[0]); | 3981 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[1]->quadList()[0]); |
| 3979 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 3982 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 3980 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); | 3983 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); |
| 3981 | 3984 |
| 3982 EXPECT_FALSE(frame.renderPasses[0]->damageRect().IsEmpty()); | 3985 EXPECT_FALSE(frame.renderPasses[0]->damageRect().IsEmpty()); |
| 3983 EXPECT_FALSE(frame.renderPasses[1]->damageRect().IsEmpty()); | 3986 EXPECT_FALSE(frame.renderPasses[1]->damageRect().IsEmpty()); |
| 3984 | 3987 |
| 3985 EXPECT_FALSE(frame.renderPasses[0]->hasOcclusionFromOutsideTargetSurface
()); | 3988 EXPECT_FALSE(frame.renderPasses[0]->hasOcclusionFromOutsideTargetSurface
()); |
| 3986 EXPECT_FALSE(frame.renderPasses[1]->hasOcclusionFromOutsideTargetSurface
()); | 3989 EXPECT_FALSE(frame.renderPasses[1]->hasOcclusionFromOutsideTargetSurface
()); |
| 3987 | 3990 |
| 3988 myHostImpl->drawLayers(frame); | 3991 myHostImpl->drawLayers(frame); |
| 3989 myHostImpl->didDrawAllLayers(frame); | 3992 myHostImpl->didDrawAllLayers(frame); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 4010 surfaceLayerPtr->setOpacity(0.6f); | 4013 surfaceLayerPtr->setOpacity(0.6f); |
| 4011 { | 4014 { |
| 4012 LayerTreeHostImpl::FrameData frame; | 4015 LayerTreeHostImpl::FrameData frame; |
| 4013 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 4016 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 4014 | 4017 |
| 4015 // Must receive one render pass, as the other one should be culled | 4018 // Must receive one render pass, as the other one should be culled |
| 4016 ASSERT_EQ(1U, frame.renderPasses.size()); | 4019 ASSERT_EQ(1U, frame.renderPasses.size()); |
| 4017 | 4020 |
| 4018 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 4021 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 4019 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); | 4022 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); |
| 4020 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[0]->quadList()[0]); | 4023 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[0]->quadList()[0]); |
| 4021 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 4024 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 4022 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); | 4025 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); |
| 4023 | 4026 |
| 4024 myHostImpl->drawLayers(frame); | 4027 myHostImpl->drawLayers(frame); |
| 4025 myHostImpl->didDrawAllLayers(frame); | 4028 myHostImpl->didDrawAllLayers(frame); |
| 4026 } | 4029 } |
| 4027 | 4030 |
| 4028 // Change less benign property and draw - should have contents changed flag | 4031 // Change less benign property and draw - should have contents changed flag |
| 4029 surfaceLayerPtr->setStackingOrderChanged(true); | 4032 surfaceLayerPtr->setStackingOrderChanged(true); |
| 4030 { | 4033 { |
| 4031 LayerTreeHostImpl::FrameData frame; | 4034 LayerTreeHostImpl::FrameData frame; |
| 4032 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 4035 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 4033 | 4036 |
| 4034 // Must receive two render passes, each with one quad | 4037 // Must receive two render passes, each with one quad |
| 4035 ASSERT_EQ(2U, frame.renderPasses.size()); | 4038 ASSERT_EQ(2U, frame.renderPasses.size()); |
| 4036 | 4039 |
| 4037 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 4040 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 4038 EXPECT_EQ(DrawQuad::SOLID_COLOR, frame.renderPasses[0]->quadList()[0]->m
aterial); | 4041 EXPECT_EQ(DrawQuad::SOLID_COLOR, frame.renderPasses[0]->quadList()[0]->m
aterial); |
| 4039 | 4042 |
| 4040 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); | 4043 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); |
| 4041 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[1]->quadList()[0]); | 4044 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[1]->quadList()[0]); |
| 4042 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 4045 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 4043 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); | 4046 EXPECT_FALSE(targetPass->damageRect().IsEmpty()); |
| 4044 | 4047 |
| 4045 myHostImpl->drawLayers(frame); | 4048 myHostImpl->drawLayers(frame); |
| 4046 myHostImpl->didDrawAllLayers(frame); | 4049 myHostImpl->didDrawAllLayers(frame); |
| 4047 } | 4050 } |
| 4048 | 4051 |
| 4049 // Change opacity again, and evict the cached surface texture. | 4052 // Change opacity again, and evict the cached surface texture. |
| 4050 surfaceLayerPtr->setOpacity(0.5f); | 4053 surfaceLayerPtr->setOpacity(0.5f); |
| 4051 static_cast<GLRendererWithReleaseTextures*>(myHostImpl->renderer())->release
RenderPassTextures(); | 4054 static_cast<GLRendererWithReleaseTextures*>(myHostImpl->renderer())->release
RenderPassTextures(); |
| 4052 | 4055 |
| 4053 // Change opacity and draw | 4056 // Change opacity and draw |
| 4054 surfaceLayerPtr->setOpacity(0.6f); | 4057 surfaceLayerPtr->setOpacity(0.6f); |
| 4055 { | 4058 { |
| 4056 LayerTreeHostImpl::FrameData frame; | 4059 LayerTreeHostImpl::FrameData frame; |
| 4057 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 4060 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 4058 | 4061 |
| 4059 // Must receive two render passes | 4062 // Must receive two render passes |
| 4060 ASSERT_EQ(2U, frame.renderPasses.size()); | 4063 ASSERT_EQ(2U, frame.renderPasses.size()); |
| 4061 | 4064 |
| 4062 // Even though not enough properties changed, the entire thing must be | 4065 // Even though not enough properties changed, the entire thing must be |
| 4063 // redrawn as we don't have cached textures | 4066 // redrawn as we don't have cached textures |
| 4064 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 4067 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 4065 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); | 4068 EXPECT_EQ(1U, frame.renderPasses[1]->quadList().size()); |
| 4066 | 4069 |
| 4067 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); | 4070 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[1]->quadList()[0]->m
aterial); |
| 4068 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[1]->quadList()[0]); | 4071 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[1]->quadList()[0]); |
| 4069 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 4072 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 4070 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); | 4073 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); |
| 4071 | 4074 |
| 4072 // Was our surface evicted? | 4075 // Was our surface evicted? |
| 4073 EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(
targetPass->id())); | 4076 EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(
targetPass->id())); |
| 4074 | 4077 |
| 4075 myHostImpl->drawLayers(frame); | 4078 myHostImpl->drawLayers(frame); |
| 4076 myHostImpl->didDrawAllLayers(frame); | 4079 myHostImpl->didDrawAllLayers(frame); |
| 4077 } | 4080 } |
| 4078 | 4081 |
| 4079 // Draw without any change, to make sure the state is clear | 4082 // Draw without any change, to make sure the state is clear |
| (...skipping 17 matching lines...) Expand all Loading... |
| 4097 intermediateLayerPtr->setTransform(transform); | 4100 intermediateLayerPtr->setTransform(transform); |
| 4098 { | 4101 { |
| 4099 LayerTreeHostImpl::FrameData frame; | 4102 LayerTreeHostImpl::FrameData frame; |
| 4100 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); | 4103 EXPECT_TRUE(myHostImpl->prepareToDraw(frame)); |
| 4101 | 4104 |
| 4102 // Must receive one render pass, as the other one should be culled. | 4105 // Must receive one render pass, as the other one should be culled. |
| 4103 ASSERT_EQ(1U, frame.renderPasses.size()); | 4106 ASSERT_EQ(1U, frame.renderPasses.size()); |
| 4104 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); | 4107 EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); |
| 4105 | 4108 |
| 4106 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); | 4109 EXPECT_EQ(DrawQuad::RENDER_PASS, frame.renderPasses[0]->quadList()[0]->m
aterial); |
| 4107 const RenderPassDrawQuad* quad = RenderPassDrawQuad::materialCast(frame.
renderPasses[0]->quadList()[0]); | 4110 const RenderPassDrawQuad* quad = RenderPassDrawQuad::MaterialCast(frame.
renderPasses[0]->quadList()[0]); |
| 4108 RenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()
); | 4111 RenderPass* targetPass = frame.renderPassesById.get(quad->render_pass_id
); |
| 4109 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); | 4112 EXPECT_TRUE(targetPass->damageRect().IsEmpty()); |
| 4110 | 4113 |
| 4111 myHostImpl->drawLayers(frame); | 4114 myHostImpl->drawLayers(frame); |
| 4112 myHostImpl->didDrawAllLayers(frame); | 4115 myHostImpl->didDrawAllLayers(frame); |
| 4113 } | 4116 } |
| 4114 } | 4117 } |
| 4115 | 4118 |
| 4116 TEST_P(LayerTreeHostImplTest, releaseContentsTextureShouldTriggerCommit) | 4119 TEST_P(LayerTreeHostImplTest, releaseContentsTextureShouldTriggerCommit) |
| 4117 { | 4120 { |
| 4118 setReduceMemoryResult(false); | 4121 setReduceMemoryResult(false); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4205 bool isReplica = false; | 4208 bool isReplica = false; |
| 4206 if (!testData.renderPassCache.contains(renderPassId)) | 4209 if (!testData.renderPassCache.contains(renderPassId)) |
| 4207 isReplica = true; | 4210 isReplica = true; |
| 4208 | 4211 |
| 4209 scoped_ptr<TestRenderPass> renderPass = testData.renderPassCache.take(re
nderPassId); | 4212 scoped_ptr<TestRenderPass> renderPass = testData.renderPassCache.take(re
nderPassId); |
| 4210 | 4213 |
| 4211 // Cycle through quad data and create all quads | 4214 // Cycle through quad data and create all quads |
| 4212 while (*currentChar && *currentChar != '\n') { | 4215 while (*currentChar && *currentChar != '\n') { |
| 4213 if (*currentChar == 's') { | 4216 if (*currentChar == 's') { |
| 4214 // Solid color draw quad | 4217 // Solid color draw quad |
| 4215 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::create
(testData.sharedQuadState.get(), gfx::Rect(0, 0, 10, 10), SK_ColorWHITE); | 4218 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create
(); |
| 4219 quad->SetNew(testData.sharedQuadState.get(), gfx::Rect(0, 0, 10,
10), SK_ColorWHITE); |
| 4216 | 4220 |
| 4217 renderPass->appendQuad(quad.PassAs<DrawQuad>()); | 4221 renderPass->appendQuad(quad.PassAs<DrawQuad>()); |
| 4218 currentChar++; | 4222 currentChar++; |
| 4219 } else if ((*currentChar >= 'A') && (*currentChar <= 'Z')) { | 4223 } else if ((*currentChar >= 'A') && (*currentChar <= 'Z')) { |
| 4220 // RenderPass draw quad | 4224 // RenderPass draw quad |
| 4221 int layerId = *currentChar; | 4225 int layerId = *currentChar; |
| 4222 currentChar++; | 4226 currentChar++; |
| 4223 ASSERT_TRUE(currentChar); | 4227 ASSERT_TRUE(currentChar); |
| 4224 int index = *currentChar; | 4228 int index = *currentChar; |
| 4225 currentChar++; | 4229 currentChar++; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 4247 | 4251 |
| 4248 if (testData.renderPassCache.find(newRenderPassId) == testData.r
enderPassCache.end()) { | 4252 if (testData.renderPassCache.find(newRenderPassId) == testData.r
enderPassCache.end()) { |
| 4249 if (hasTexture) | 4253 if (hasTexture) |
| 4250 renderer->setHaveCachedResourcesForRenderPassId(newRende
rPassId); | 4254 renderer->setHaveCachedResourcesForRenderPassId(newRende
rPassId); |
| 4251 | 4255 |
| 4252 testData.renderPassCache.add(newRenderPassId, TestRenderPass
::create(newRenderPassId, gfx::Rect(), WebTransformationMatrix())); | 4256 testData.renderPassCache.add(newRenderPassId, TestRenderPass
::create(newRenderPassId, gfx::Rect(), WebTransformationMatrix())); |
| 4253 } | 4257 } |
| 4254 | 4258 |
| 4255 gfx::Rect quadRect = gfx::Rect(0, 0, 1, 1); | 4259 gfx::Rect quadRect = gfx::Rect(0, 0, 1, 1); |
| 4256 gfx::Rect contentsChangedRect = contentsChanged ? quadRect : gfx
::Rect(); | 4260 gfx::Rect contentsChangedRect = contentsChanged ? quadRect : gfx
::Rect(); |
| 4257 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::create
(testData.sharedQuadState.get(), quadRect, newRenderPassId, isReplica, 1, conten
tsChangedRect, 1, 1, 0, 0); | 4261 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create
(); |
| 4262 quad->SetNew(testData.sharedQuadState.get(), quadRect, newRender
PassId, isReplica, 1, contentsChangedRect, 1, 1, 0, 0); |
| 4258 renderPass->appendQuad(quad.PassAs<DrawQuad>()); | 4263 renderPass->appendQuad(quad.PassAs<DrawQuad>()); |
| 4259 } | 4264 } |
| 4260 } | 4265 } |
| 4261 testData.renderPasses.insert(testData.renderPasses.begin(), renderPass.g
et()); | 4266 testData.renderPasses.insert(testData.renderPasses.begin(), renderPass.g
et()); |
| 4262 testData.renderPassesById.add(renderPassId, renderPass.PassAs<RenderPass
>()); | 4267 testData.renderPassesById.add(renderPassId, renderPass.PassAs<RenderPass
>()); |
| 4263 if (*currentChar) | 4268 if (*currentChar) |
| 4264 currentChar++; | 4269 currentChar++; |
| 4265 } | 4270 } |
| 4266 } | 4271 } |
| 4267 | 4272 |
| 4268 void dumpRenderPassTestData(const RenderPassRemovalTestData& testData, char* buf
fer) | 4273 void dumpRenderPassTestData(const RenderPassRemovalTestData& testData, char* buf
fer) |
| 4269 { | 4274 { |
| 4270 char* pos = buffer; | 4275 char* pos = buffer; |
| 4271 for (RenderPassList::const_reverse_iterator it = testData.renderPasses.rbegi
n(); it != testData.renderPasses.rend(); ++it) { | 4276 for (RenderPassList::const_reverse_iterator it = testData.renderPasses.rbegi
n(); it != testData.renderPasses.rend(); ++it) { |
| 4272 const RenderPass* currentPass = *it; | 4277 const RenderPass* currentPass = *it; |
| 4273 *pos = currentPass->id().layerId; | 4278 *pos = currentPass->id().layerId; |
| 4274 pos++; | 4279 pos++; |
| 4275 *pos = currentPass->id().index; | 4280 *pos = currentPass->id().index; |
| 4276 pos++; | 4281 pos++; |
| 4277 | 4282 |
| 4278 QuadList::const_iterator quadListIterator = currentPass->quadList().begi
n(); | 4283 QuadList::const_iterator quadListIterator = currentPass->quadList().begi
n(); |
| 4279 while (quadListIterator != currentPass->quadList().end()) { | 4284 while (quadListIterator != currentPass->quadList().end()) { |
| 4280 DrawQuad* currentQuad = *quadListIterator; | 4285 DrawQuad* currentQuad = *quadListIterator; |
| 4281 switch (currentQuad->material) { | 4286 switch (currentQuad->material) { |
| 4282 case DrawQuad::SOLID_COLOR: | 4287 case DrawQuad::SOLID_COLOR: |
| 4283 *pos = 's'; | 4288 *pos = 's'; |
| 4284 pos++; | 4289 pos++; |
| 4285 break; | 4290 break; |
| 4286 case DrawQuad::RENDER_PASS: | 4291 case DrawQuad::RENDER_PASS: |
| 4287 *pos = RenderPassDrawQuad::materialCast(currentQuad)->renderPass
Id().layerId; | 4292 *pos = RenderPassDrawQuad::MaterialCast(currentQuad)->render_pas
s_id.layerId; |
| 4288 pos++; | 4293 pos++; |
| 4289 *pos = RenderPassDrawQuad::materialCast(currentQuad)->renderPass
Id().index; | 4294 *pos = RenderPassDrawQuad::MaterialCast(currentQuad)->render_pas
s_id.index; |
| 4290 pos++; | 4295 pos++; |
| 4291 break; | 4296 break; |
| 4292 default: | 4297 default: |
| 4293 *pos = 'x'; | 4298 *pos = 'x'; |
| 4294 pos++; | 4299 pos++; |
| 4295 break; | 4300 break; |
| 4296 } | 4301 } |
| 4297 | 4302 |
| 4298 quadListIterator++; | 4303 quadListIterator++; |
| 4299 } | 4304 } |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4468 testCaseIndex++; | 4473 testCaseIndex++; |
| 4469 } | 4474 } |
| 4470 } | 4475 } |
| 4471 | 4476 |
| 4472 INSTANTIATE_TEST_CASE_P(LayerTreeHostImplTests, | 4477 INSTANTIATE_TEST_CASE_P(LayerTreeHostImplTests, |
| 4473 LayerTreeHostImplTest, | 4478 LayerTreeHostImplTest, |
| 4474 ::testing::Values(false, true)); | 4479 ::testing::Values(false, true)); |
| 4475 | 4480 |
| 4476 } // namespace | 4481 } // namespace |
| 4477 } // namespace cc | 4482 } // namespace cc |
| OLD | NEW |