| 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 "CCLayerTreeHostImpl.h" | 7 #include "CCLayerTreeHostImpl.h" |
| 8 | 8 |
| 9 #include "CCAnimationTestCommon.h" | 9 #include "CCAnimationTestCommon.h" |
| 10 #include "CCDelegatedRendererLayerImpl.h" | 10 #include "CCDelegatedRendererLayerImpl.h" |
| (...skipping 1391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1402 { | 1402 { |
| 1403 m_quadsAppended = true; | 1403 m_quadsAppended = true; |
| 1404 | 1404 |
| 1405 IntRect opaqueRect; | 1405 IntRect opaqueRect; |
| 1406 if (opaque() || m_opaqueContents) | 1406 if (opaque() || m_opaqueContents) |
| 1407 opaqueRect = m_quadRect; | 1407 opaqueRect = m_quadRect; |
| 1408 else | 1408 else |
| 1409 opaqueRect = m_opaqueContentRect; | 1409 opaqueRect = m_opaqueContentRect; |
| 1410 | 1410 |
| 1411 CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createS
haredQuadState()); | 1411 CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createS
haredQuadState()); |
| 1412 OwnPtr<CCDrawQuad> testBlendingDrawQuad = CCTileDrawQuad::create(sharedQ
uadState, m_quadRect, opaqueRect, m_resourceId, IntPoint(), IntSize(1, 1), 0, fa
lse, false, false, false, false); | 1412 scoped_ptr<CCTileDrawQuad> testBlendingDrawQuad = CCTileDrawQuad::create
(sharedQuadState, m_quadRect, opaqueRect, m_resourceId, IntPoint(), IntSize(1, 1
), 0, false, false, false, false, false); |
| 1413 testBlendingDrawQuad->setQuadVisibleRect(m_quadVisibleRect); | 1413 testBlendingDrawQuad->setQuadVisibleRect(m_quadVisibleRect); |
| 1414 EXPECT_EQ(m_blend, testBlendingDrawQuad->needsBlending()); | 1414 EXPECT_EQ(m_blend, testBlendingDrawQuad->needsBlending()); |
| 1415 EXPECT_EQ(m_hasRenderSurface, !!renderSurface()); | 1415 EXPECT_EQ(m_hasRenderSurface, !!renderSurface()); |
| 1416 quadSink.append(testBlendingDrawQuad.release(), appendQuadsData); | 1416 quadSink.append(testBlendingDrawQuad.PassAs<CCDrawQuad>(), appendQuadsDa
ta); |
| 1417 } | 1417 } |
| 1418 | 1418 |
| 1419 void setExpectation(bool blend, bool hasRenderSurface) | 1419 void setExpectation(bool blend, bool hasRenderSurface) |
| 1420 { | 1420 { |
| 1421 m_blend = blend; | 1421 m_blend = blend; |
| 1422 m_hasRenderSurface = hasRenderSurface; | 1422 m_hasRenderSurface = hasRenderSurface; |
| 1423 m_quadsAppended = false; | 1423 m_quadsAppended = false; |
| 1424 } | 1424 } |
| 1425 | 1425 |
| 1426 bool quadsAppended() const { return m_quadsAppended; } | 1426 bool quadsAppended() const { return m_quadsAppended; } |
| (...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1931 class FakeLayerWithQuads : public CCLayerImpl { | 1931 class FakeLayerWithQuads : public CCLayerImpl { |
| 1932 public: | 1932 public: |
| 1933 static PassOwnPtr<FakeLayerWithQuads> create(int id) { return adoptPtr(new F
akeLayerWithQuads(id)); } | 1933 static PassOwnPtr<FakeLayerWithQuads> create(int id) { return adoptPtr(new F
akeLayerWithQuads(id)); } |
| 1934 | 1934 |
| 1935 virtual void appendQuads(CCQuadSink& quadSink, CCAppendQuadsData& appendQuad
sData) OVERRIDE | 1935 virtual void appendQuads(CCQuadSink& quadSink, CCAppendQuadsData& appendQuad
sData) OVERRIDE |
| 1936 { | 1936 { |
| 1937 CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createS
haredQuadState()); | 1937 CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createS
haredQuadState()); |
| 1938 | 1938 |
| 1939 SkColor gray = SkColorSetRGB(100, 100, 100); | 1939 SkColor gray = SkColorSetRGB(100, 100, 100); |
| 1940 IntRect quadRect(IntPoint(0, 0), contentBounds()); | 1940 IntRect quadRect(IntPoint(0, 0), contentBounds()); |
| 1941 OwnPtr<CCDrawQuad> myQuad = CCSolidColorDrawQuad::create(sharedQuadState
, quadRect, gray); | 1941 scoped_ptr<CCSolidColorDrawQuad> myQuad = CCSolidColorDrawQuad::create(s
haredQuadState, quadRect, gray); |
| 1942 quadSink.append(myQuad.release(), appendQuadsData); | 1942 quadSink.append(myQuad.PassAs<CCDrawQuad>(), appendQuadsData); |
| 1943 } | 1943 } |
| 1944 | 1944 |
| 1945 private: | 1945 private: |
| 1946 FakeLayerWithQuads(int id) | 1946 FakeLayerWithQuads(int id) |
| 1947 : CCLayerImpl(id) | 1947 : CCLayerImpl(id) |
| 1948 { | 1948 { |
| 1949 } | 1949 } |
| 1950 }; | 1950 }; |
| 1951 | 1951 |
| 1952 namespace { | 1952 namespace { |
| (...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2528 : CCScrollbarLayerImpl(id) | 2528 : CCScrollbarLayerImpl(id) |
| 2529 { | 2529 { |
| 2530 } | 2530 } |
| 2531 }; | 2531 }; |
| 2532 | 2532 |
| 2533 static inline scoped_ptr<CCRenderPass> createRenderPassWithResource(CCResourcePr
ovider* provider) | 2533 static inline scoped_ptr<CCRenderPass> createRenderPassWithResource(CCResourcePr
ovider* provider) |
| 2534 { | 2534 { |
| 2535 CCResourceProvider::ResourceId resourceId = provider->createResource(0, IntS
ize(1, 1), GraphicsContext3D::RGBA, CCResourceProvider::TextureUsageAny); | 2535 CCResourceProvider::ResourceId resourceId = provider->createResource(0, IntS
ize(1, 1), GraphicsContext3D::RGBA, CCResourceProvider::TextureUsageAny); |
| 2536 | 2536 |
| 2537 scoped_ptr<CCRenderPass> pass = CCRenderPass::create(CCRenderPass::Id(1, 1),
IntRect(0, 0, 1, 1), WebTransformationMatrix()); | 2537 scoped_ptr<CCRenderPass> pass = CCRenderPass::create(CCRenderPass::Id(1, 1),
IntRect(0, 0, 1, 1), WebTransformationMatrix()); |
| 2538 OwnPtr<CCSharedQuadState> sharedState = CCSharedQuadState::create(WebTransfo
rmationMatrix(), IntRect(0, 0, 1, 1), IntRect(0, 0, 1, 1), 1, false); | 2538 scoped_ptr<CCSharedQuadState> sharedState = CCSharedQuadState::create(WebTra
nsformationMatrix(), IntRect(0, 0, 1, 1), IntRect(0, 0, 1, 1), 1, false); |
| 2539 OwnPtr<CCTextureDrawQuad> quad = CCTextureDrawQuad::create(sharedState.get()
, IntRect(0, 0, 1, 1), resourceId, false, FloatRect(0, 0, 1, 1), false); | 2539 scoped_ptr<CCTextureDrawQuad> quad = CCTextureDrawQuad::create(sharedState.g
et(), IntRect(0, 0, 1, 1), resourceId, false, FloatRect(0, 0, 1, 1), false); |
| 2540 | 2540 |
| 2541 static_cast<CCTestRenderPass*>(pass.get())->appendSharedQuadState(sharedStat
e.release()); | 2541 static_cast<CCTestRenderPass*>(pass.get())->appendSharedQuadState(sharedStat
e.Pass()); |
| 2542 static_cast<CCTestRenderPass*>(pass.get())->appendQuad(quad.release()); | 2542 static_cast<CCTestRenderPass*>(pass.get())->appendQuad(quad.PassAs<CCDrawQua
d>()); |
| 2543 | 2543 |
| 2544 return pass.Pass(); | 2544 return pass.Pass(); |
| 2545 } | 2545 } |
| 2546 | 2546 |
| 2547 TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) | 2547 TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) |
| 2548 { | 2548 { |
| 2549 int layerId = 1; | 2549 int layerId = 1; |
| 2550 | 2550 |
| 2551 OwnPtr<CCLayerImpl> rootLayer(CCLayerImpl::create(layerId++)); | 2551 OwnPtr<CCLayerImpl> rootLayer(CCLayerImpl::create(layerId++)); |
| 2552 rootLayer->setBounds(IntSize(10, 10)); | 2552 rootLayer->setBounds(IntSize(10, 10)); |
| (...skipping 1365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3918 } | 3918 } |
| 3919 | 3919 |
| 3920 TEST_F(CCLayerTreeHostImplTest, releaseContentsTextureShouldTriggerCommit) | 3920 TEST_F(CCLayerTreeHostImplTest, releaseContentsTextureShouldTriggerCommit) |
| 3921 { | 3921 { |
| 3922 m_hostImpl->releaseContentsTextures(); | 3922 m_hostImpl->releaseContentsTextures(); |
| 3923 EXPECT_TRUE(m_didRequestCommit); | 3923 EXPECT_TRUE(m_didRequestCommit); |
| 3924 } | 3924 } |
| 3925 | 3925 |
| 3926 struct RenderPassRemovalTestData : public CCLayerTreeHostImpl::FrameData { | 3926 struct RenderPassRemovalTestData : public CCLayerTreeHostImpl::FrameData { |
| 3927 ScopedPtrHashMap<CCRenderPass::Id, CCRenderPass> renderPassCache; | 3927 ScopedPtrHashMap<CCRenderPass::Id, CCRenderPass> renderPassCache; |
| 3928 OwnPtr<CCSharedQuadState> sharedQuadState; | 3928 scoped_ptr<CCSharedQuadState> sharedQuadState; |
| 3929 }; | 3929 }; |
| 3930 | 3930 |
| 3931 class CCTestRenderer : public CCRendererGL, public CCRendererClient { | 3931 class CCTestRenderer : public CCRendererGL, public CCRendererClient { |
| 3932 public: | 3932 public: |
| 3933 static PassOwnPtr<CCTestRenderer> create(CCResourceProvider* resourceProvide
r) | 3933 static PassOwnPtr<CCTestRenderer> create(CCResourceProvider* resourceProvide
r) |
| 3934 { | 3934 { |
| 3935 OwnPtr<CCTestRenderer> renderer(adoptPtr(new CCTestRenderer(resourceProv
ider))); | 3935 OwnPtr<CCTestRenderer> renderer(adoptPtr(new CCTestRenderer(resourceProv
ider))); |
| 3936 if (!renderer->initialize()) | 3936 if (!renderer->initialize()) |
| 3937 return nullptr; | 3937 return nullptr; |
| 3938 | 3938 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3986 bool isReplica = false; | 3986 bool isReplica = false; |
| 3987 if (!testData.renderPassCache.contains(renderPassId)) | 3987 if (!testData.renderPassCache.contains(renderPassId)) |
| 3988 isReplica = true; | 3988 isReplica = true; |
| 3989 | 3989 |
| 3990 scoped_ptr<CCRenderPass> renderPass = testData.renderPassCache.take(rend
erPassId); | 3990 scoped_ptr<CCRenderPass> renderPass = testData.renderPassCache.take(rend
erPassId); |
| 3991 | 3991 |
| 3992 // Cycle through quad data and create all quads | 3992 // Cycle through quad data and create all quads |
| 3993 while (*currentChar && *currentChar != '\n') { | 3993 while (*currentChar && *currentChar != '\n') { |
| 3994 if (*currentChar == 's') { | 3994 if (*currentChar == 's') { |
| 3995 // Solid color draw quad | 3995 // Solid color draw quad |
| 3996 OwnPtr<CCDrawQuad> quad = CCSolidColorDrawQuad::create(testData.
sharedQuadState.get(), IntRect(0, 0, 10, 10), SK_ColorWHITE); | 3996 scoped_ptr<CCSolidColorDrawQuad> quad = CCSolidColorDrawQuad::cr
eate(testData.sharedQuadState.get(), IntRect(0, 0, 10, 10), SK_ColorWHITE); |
| 3997 | 3997 |
| 3998 static_cast<CCTestRenderPass*>(renderPass.get())->appendQuad(qua
d.release()); | 3998 static_cast<CCTestRenderPass*>(renderPass.get())->appendQuad(qua
d.PassAs<CCDrawQuad>()); |
| 3999 currentChar++; | 3999 currentChar++; |
| 4000 } else if ((*currentChar >= 'A') && (*currentChar <= 'Z')) { | 4000 } else if ((*currentChar >= 'A') && (*currentChar <= 'Z')) { |
| 4001 // RenderPass draw quad | 4001 // RenderPass draw quad |
| 4002 int layerId = *currentChar; | 4002 int layerId = *currentChar; |
| 4003 currentChar++; | 4003 currentChar++; |
| 4004 ASSERT_TRUE(currentChar); | 4004 ASSERT_TRUE(currentChar); |
| 4005 int index = *currentChar; | 4005 int index = *currentChar; |
| 4006 currentChar++; | 4006 currentChar++; |
| 4007 CCRenderPass::Id newRenderPassId = CCRenderPass::Id(layerId, ind
ex); | 4007 CCRenderPass::Id newRenderPassId = CCRenderPass::Id(layerId, ind
ex); |
| 4008 ASSERT_NE(rootRenderPassId, newRenderPassId); | 4008 ASSERT_NE(rootRenderPassId, newRenderPassId); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 4028 | 4028 |
| 4029 if (testData.renderPassCache.find(newRenderPassId) == testData.r
enderPassCache.end()) { | 4029 if (testData.renderPassCache.find(newRenderPassId) == testData.r
enderPassCache.end()) { |
| 4030 if (hasTexture) | 4030 if (hasTexture) |
| 4031 renderer->setHaveCachedResourcesForRenderPassId(newRende
rPassId); | 4031 renderer->setHaveCachedResourcesForRenderPassId(newRende
rPassId); |
| 4032 | 4032 |
| 4033 testData.renderPassCache.add(newRenderPassId, CCTestRenderPa
ss::create(newRenderPassId, IntRect(), WebTransformationMatrix())); | 4033 testData.renderPassCache.add(newRenderPassId, CCTestRenderPa
ss::create(newRenderPassId, IntRect(), WebTransformationMatrix())); |
| 4034 } | 4034 } |
| 4035 | 4035 |
| 4036 IntRect quadRect = IntRect(0, 0, 1, 1); | 4036 IntRect quadRect = IntRect(0, 0, 1, 1); |
| 4037 IntRect contentsChangedRect = contentsChanged ? quadRect : IntRe
ct(); | 4037 IntRect contentsChangedRect = contentsChanged ? quadRect : IntRe
ct(); |
| 4038 OwnPtr<CCRenderPassDrawQuad> quad = CCRenderPassDrawQuad::create
(testData.sharedQuadState.get(), quadRect, newRenderPassId, isReplica, 1, conten
tsChangedRect, 1, 1, 0, 0); | 4038 scoped_ptr<CCRenderPassDrawQuad> quad = CCRenderPassDrawQuad::cr
eate(testData.sharedQuadState.get(), quadRect, newRenderPassId, isReplica, 1, co
ntentsChangedRect, 1, 1, 0, 0); |
| 4039 static_cast<CCTestRenderPass*>(renderPass.get())->appendQuad(qua
d.release()); | 4039 static_cast<CCTestRenderPass*>(renderPass.get())->appendQuad(qua
d.PassAs<CCDrawQuad>()); |
| 4040 } | 4040 } |
| 4041 } | 4041 } |
| 4042 testData.renderPasses.insert(0, renderPass.get()); | 4042 testData.renderPasses.insert(0, renderPass.get()); |
| 4043 testData.renderPassesById.add(renderPassId, renderPass.Pass()); | 4043 testData.renderPassesById.add(renderPassId, renderPass.Pass()); |
| 4044 if (*currentChar) | 4044 if (*currentChar) |
| 4045 currentChar++; | 4045 currentChar++; |
| 4046 } | 4046 } |
| 4047 } | 4047 } |
| 4048 | 4048 |
| 4049 void dumpRenderPassTestData(const RenderPassRemovalTestData& testData, char* buf
fer) | 4049 void dumpRenderPassTestData(const RenderPassRemovalTestData& testData, char* buf
fer) |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4244 while (removeRenderPassesCases[testCaseIndex].name) { | 4244 while (removeRenderPassesCases[testCaseIndex].name) { |
| 4245 RenderPassRemovalTestData testData; | 4245 RenderPassRemovalTestData testData; |
| 4246 configureRenderPassTestData(removeRenderPassesCases[testCaseIndex].initS
cript, testData, renderer.get()); | 4246 configureRenderPassTestData(removeRenderPassesCases[testCaseIndex].initS
cript, testData, renderer.get()); |
| 4247 CCLayerTreeHostImpl::removeRenderPasses(CCLayerTreeHostImpl::CullRenderP
assesWithCachedTextures(*renderer), testData); | 4247 CCLayerTreeHostImpl::removeRenderPasses(CCLayerTreeHostImpl::CullRenderP
assesWithCachedTextures(*renderer), testData); |
| 4248 verifyRenderPassTestData(removeRenderPassesCases[testCaseIndex], testDat
a); | 4248 verifyRenderPassTestData(removeRenderPassesCases[testCaseIndex], testDat
a); |
| 4249 testCaseIndex++; | 4249 testCaseIndex++; |
| 4250 } | 4250 } |
| 4251 } | 4251 } |
| 4252 | 4252 |
| 4253 } // namespace | 4253 } // namespace |
| OLD | NEW |