diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-23 09:28:44 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-23 09:28:44 +0200 |
commit | 815f1ed417bd26fbe2abbdf20ac5d3423b30796c (patch) | |
tree | 923c9a9e2834ccab60f5caecfb8f0ac410c1dd9e /Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp | |
parent | b4ad5d9d2b96baacd0180ead50de5195ca78af2d (diff) | |
download | qtwebkit-815f1ed417bd26fbe2abbdf20ac5d3423b30796c.tar.gz |
Imported WebKit commit e65cbc5b6ac32627c797e7fc7f46eb7794410c92 (http://svn.webkit.org/repository/webkit/trunk@123308)
New snapshot with better configure tests
Diffstat (limited to 'Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp')
-rw-r--r-- | Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp | 70 |
1 files changed, 41 insertions, 29 deletions
diff --git a/Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp b/Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp index 7cdba809c..1b6b8028b 100644 --- a/Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp +++ b/Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp @@ -81,6 +81,7 @@ public: { m_rootLayer->createRenderSurface(); m_rootRenderPass = CCRenderPass::create(m_rootLayer->renderSurface(), m_rootLayer->id()); + m_renderPasses.append(m_rootRenderPass.get()); } // CCRendererClient methods. @@ -96,6 +97,7 @@ public: int setFullRootLayerDamageCount() const { return m_setFullRootLayerDamageCount; } CCRenderPass* rootRenderPass() { return m_rootRenderPass.get(); } + const CCRenderPassList& renderPasses() { return m_renderPasses; } size_t memoryAllocationLimitBytes() const { return m_memoryAllocationLimitBytes; } @@ -104,12 +106,13 @@ private: DebugScopedSetImplThread m_implThread; OwnPtr<CCLayerImpl> m_rootLayer; OwnPtr<CCRenderPass> m_rootRenderPass; + CCRenderPassList m_renderPasses; size_t m_memoryAllocationLimitBytes; }; class FakeLayerRendererChromium : public LayerRendererChromium { public: - FakeLayerRendererChromium(CCRendererClient* client, WebGraphicsContext3D* context) : LayerRendererChromium(client, context, UnthrottledUploader) { } + FakeLayerRendererChromium(CCRendererClient* client, CCResourceProvider* resourceProvider) : LayerRendererChromium(client, resourceProvider, UnthrottledUploader) { } // LayerRendererChromium methods. @@ -123,8 +126,9 @@ protected: LayerRendererChromiumTest() : m_suggestHaveBackbufferYes(1, true) , m_suggestHaveBackbufferNo(1, false) - , m_context(adoptPtr(new FrameCountingMemoryAllocationSettingContext)) - , m_layerRendererChromium(&m_mockClient, m_context.get()) + , m_context(CCGraphicsContext::create3D(adoptPtr(new FrameCountingMemoryAllocationSettingContext()))) + , m_resourceProvider(CCResourceProvider::create(m_context.get())) + , m_layerRendererChromium(&m_mockClient, m_resourceProvider.get()) { } @@ -144,11 +148,14 @@ protected: m_layerRendererChromium.swapBuffers(IntRect()); } + FrameCountingMemoryAllocationSettingContext* context() { return static_cast<FrameCountingMemoryAllocationSettingContext*>(m_context->context3D()); } + WebGraphicsMemoryAllocation m_suggestHaveBackbufferYes; WebGraphicsMemoryAllocation m_suggestHaveBackbufferNo; - OwnPtr<FrameCountingMemoryAllocationSettingContext> m_context; + OwnPtr<CCGraphicsContext> m_context; FakeCCRendererClient m_mockClient; + OwnPtr<CCResourceProvider> m_resourceProvider; FakeLayerRendererChromium m_layerRendererChromium; CCScopedSettings m_scopedSettings; }; @@ -158,12 +165,12 @@ protected: // Expected: it does nothing. TEST_F(LayerRendererChromiumTest, SuggestBackbufferYesWhenItAlreadyExistsShouldDoNothing) { - m_context->setMemoryAllocation(m_suggestHaveBackbufferYes); + context()->setMemoryAllocation(m_suggestHaveBackbufferYes); EXPECT_EQ(0, m_mockClient.setFullRootLayerDamageCount()); EXPECT_FALSE(m_layerRendererChromium.isFramebufferDiscarded()); swapBuffers(); - EXPECT_EQ(1, m_context->frameCount()); + EXPECT_EQ(1, context()->frameCount()); } // Test LayerRendererChromium discardFramebuffer functionality: @@ -172,7 +179,7 @@ TEST_F(LayerRendererChromiumTest, SuggestBackbufferYesWhenItAlreadyExistsShouldD TEST_F(LayerRendererChromiumTest, SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLayerWhileNotVisible) { m_layerRendererChromium.setVisible(false); - m_context->setMemoryAllocation(m_suggestHaveBackbufferNo); + context()->setMemoryAllocation(m_suggestHaveBackbufferNo); EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount()); EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded()); } @@ -183,7 +190,7 @@ TEST_F(LayerRendererChromiumTest, SuggestBackbufferNoShouldDiscardBackbufferAndD TEST_F(LayerRendererChromiumTest, SuggestBackbufferNoDoNothingWhenVisible) { m_layerRendererChromium.setVisible(true); - m_context->setMemoryAllocation(m_suggestHaveBackbufferNo); + context()->setMemoryAllocation(m_suggestHaveBackbufferNo); EXPECT_EQ(0, m_mockClient.setFullRootLayerDamageCount()); EXPECT_FALSE(m_layerRendererChromium.isFramebufferDiscarded()); } @@ -195,11 +202,11 @@ TEST_F(LayerRendererChromiumTest, SuggestBackbufferNoDoNothingWhenVisible) TEST_F(LayerRendererChromiumTest, SuggestBackbufferNoWhenItDoesntExistShouldDoNothing) { m_layerRendererChromium.setVisible(false); - m_context->setMemoryAllocation(m_suggestHaveBackbufferNo); + context()->setMemoryAllocation(m_suggestHaveBackbufferNo); EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount()); EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded()); - m_context->setMemoryAllocation(m_suggestHaveBackbufferNo); + context()->setMemoryAllocation(m_suggestHaveBackbufferNo); EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount()); EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded()); } @@ -210,27 +217,27 @@ TEST_F(LayerRendererChromiumTest, SuggestBackbufferNoWhenItDoesntExistShouldDoNo TEST_F(LayerRendererChromiumTest, DiscardedBackbufferIsRecreatedForScopeDuration) { m_layerRendererChromium.setVisible(false); - m_context->setMemoryAllocation(m_suggestHaveBackbufferNo); + context()->setMemoryAllocation(m_suggestHaveBackbufferNo); EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded()); EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount()); m_layerRendererChromium.setVisible(true); - m_layerRendererChromium.beginDrawingFrame(m_mockClient.rootRenderPass()); + m_layerRendererChromium.drawFrame(m_mockClient.renderPasses(), FloatRect()); EXPECT_FALSE(m_layerRendererChromium.isFramebufferDiscarded()); swapBuffers(); - EXPECT_EQ(1, m_context->frameCount()); + EXPECT_EQ(1, context()->frameCount()); } TEST_F(LayerRendererChromiumTest, FramebufferDiscardedAfterReadbackWhenNotVisible) { m_layerRendererChromium.setVisible(false); - m_context->setMemoryAllocation(m_suggestHaveBackbufferNo); + context()->setMemoryAllocation(m_suggestHaveBackbufferNo); EXPECT_TRUE(m_layerRendererChromium.isFramebufferDiscarded()); EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount()); char pixels[4]; - m_layerRendererChromium.beginDrawingFrame(m_mockClient.rootRenderPass()); + m_layerRendererChromium.drawFrame(m_mockClient.renderPasses(), FloatRect()); EXPECT_FALSE(m_layerRendererChromium.isFramebufferDiscarded()); m_layerRendererChromium.getFramebufferPixels(pixels, IntRect(0, 0, 1, 1)); @@ -309,8 +316,9 @@ TEST(LayerRendererChromiumTest2, initializationDoesNotMakeSynchronousCalls) { CCScopedSettings scopedSettings; FakeCCRendererClient mockClient; - OwnPtr<WebGraphicsContext3D> context(adoptPtr(new ForbidSynchronousCallContext)); - FakeLayerRendererChromium layerRendererChromium(&mockClient, context.get()); + OwnPtr<CCGraphicsContext> context(CCGraphicsContext::create3D(adoptPtr(new ForbidSynchronousCallContext))); + OwnPtr<CCResourceProvider> resourceProvider(CCResourceProvider::create(context.get())); + FakeLayerRendererChromium layerRendererChromium(&mockClient, resourceProvider.get()); EXPECT_TRUE(layerRendererChromium.initialize()); } @@ -352,8 +360,9 @@ TEST(LayerRendererChromiumTest2, initializationWithQuicklyLostContextDoesNotAsse { CCScopedSettings scopedSettings; FakeCCRendererClient mockClient; - OwnPtr<WebGraphicsContext3D> context(adoptPtr(new LoseContextOnFirstGetContext)); - FakeLayerRendererChromium layerRendererChromium(&mockClient, context.get()); + OwnPtr<CCGraphicsContext> context(CCGraphicsContext::create3D(adoptPtr(new LoseContextOnFirstGetContext))); + OwnPtr<CCResourceProvider> resourceProvider(CCResourceProvider::create(context.get())); + FakeLayerRendererChromium layerRendererChromium(&mockClient, resourceProvider.get()); layerRendererChromium.initialize(); } @@ -373,8 +382,9 @@ public: TEST(LayerRendererChromiumTest2, initializationWithoutGpuMemoryManagerExtensionSupportShouldDefaultToNonZeroAllocation) { FakeCCRendererClient mockClient; - OwnPtr<WebGraphicsContext3D> context(adoptPtr(new ContextThatDoesNotSupportMemoryManagmentExtensions)); - FakeLayerRendererChromium layerRendererChromium(&mockClient, context.get()); + OwnPtr<CCGraphicsContext> context(CCGraphicsContext::create3D(adoptPtr(new ContextThatDoesNotSupportMemoryManagmentExtensions))); + OwnPtr<CCResourceProvider> resourceProvider(CCResourceProvider::create(context.get())); + FakeLayerRendererChromium layerRendererChromium(&mockClient, resourceProvider.get()); layerRendererChromium.initialize(); @@ -399,15 +409,16 @@ private: TEST(LayerRendererChromiumTest2, opaqueBackground) { FakeCCRendererClient mockClient; - OwnPtr<ClearCountingContext> context(adoptPtr(new ClearCountingContext)); - FakeLayerRendererChromium layerRendererChromium(&mockClient, context.get()); + OwnPtr<CCGraphicsContext> ccContext(CCGraphicsContext::create3D(adoptPtr(new ClearCountingContext))); + ClearCountingContext* context = static_cast<ClearCountingContext*>(ccContext->context3D()); + OwnPtr<CCResourceProvider> resourceProvider(CCResourceProvider::create(ccContext.get())); + FakeLayerRendererChromium layerRendererChromium(&mockClient, resourceProvider.get()); mockClient.rootRenderPass()->setHasTransparentBackground(false); EXPECT_TRUE(layerRendererChromium.initialize()); - layerRendererChromium.beginDrawingFrame(mockClient.rootRenderPass()); - layerRendererChromium.drawRenderPass(mockClient.rootRenderPass(), FloatRect()); + layerRendererChromium.drawFrame(mockClient.renderPasses(), FloatRect()); layerRendererChromium.finishDrawingFrame(); // On DEBUG builds, render passes with opaque background clear to blue to @@ -422,15 +433,16 @@ TEST(LayerRendererChromiumTest2, opaqueBackground) TEST(LayerRendererChromiumTest2, transparentBackground) { FakeCCRendererClient mockClient; - OwnPtr<ClearCountingContext> context(adoptPtr(new ClearCountingContext)); - FakeLayerRendererChromium layerRendererChromium(&mockClient, context.get()); + OwnPtr<CCGraphicsContext> ccContext(CCGraphicsContext::create3D(adoptPtr(new ClearCountingContext))); + ClearCountingContext* context = static_cast<ClearCountingContext*>(ccContext->context3D()); + OwnPtr<CCResourceProvider> resourceProvider(CCResourceProvider::create(ccContext.get())); + FakeLayerRendererChromium layerRendererChromium(&mockClient, resourceProvider.get()); mockClient.rootRenderPass()->setHasTransparentBackground(true); EXPECT_TRUE(layerRendererChromium.initialize()); - layerRendererChromium.beginDrawingFrame(mockClient.rootRenderPass()); - layerRendererChromium.drawRenderPass(mockClient.rootRenderPass(), FloatRect()); + layerRendererChromium.drawFrame(mockClient.renderPasses(), FloatRect()); layerRendererChromium.finishDrawingFrame(); EXPECT_EQ(1, context->clearCount()); |