diff options
| author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-10 19:10:20 +0200 |
|---|---|---|
| committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-10 19:10:20 +0200 |
| commit | 284837daa07b29d6a63a748544a90b1f5842ac5c (patch) | |
| tree | ecd258180bde91fe741e0cfd2638beb3c6da7e8e /Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp | |
| parent | 2e2ba8ff45915f40ed3e014101269c175f2a89a0 (diff) | |
| download | qtwebkit-284837daa07b29d6a63a748544a90b1f5842ac5c.tar.gz | |
Imported WebKit commit 68645295d2e3e09af2c942f092556f06aa5f8b0d (http://svn.webkit.org/repository/webkit/trunk@128073)
New snapshot
Diffstat (limited to 'Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp')
| -rw-r--r-- | Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp b/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp index 05d716641..d66b8c951 100644 --- a/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp +++ b/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp @@ -26,7 +26,9 @@ #include "CCRenderSurface.h" +#include "CCAppendQuadsData.h" #include "CCLayerImpl.h" +#include "CCRenderPassSink.h" #include "CCSharedQuadState.h" #include "CCSingleThreadProxy.h" #include "MockCCQuadCuller.h" @@ -119,9 +121,10 @@ TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectSharedQuadState) CCQuadList quadList; CCSharedQuadStateList sharedStateList; MockCCQuadCuller mockQuadCuller(quadList, sharedStateList); + CCAppendQuadsData appendQuadsData; bool forReplica = false; - renderSurface->appendQuads(mockQuadCuller, forReplica, 1); + renderSurface->appendQuads(mockQuadCuller, appendQuadsData, forReplica, CCRenderPass::Id(2, 0)); ASSERT_EQ(1u, sharedStateList.size()); CCSharedQuadState* sharedQuadState = sharedStateList[0].get(); @@ -133,4 +136,49 @@ TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectSharedQuadState) EXPECT_FALSE(sharedQuadState->opaque); } +class TestCCRenderPassSink : public CCRenderPassSink { +public: + virtual void appendRenderPass(PassOwnPtr<CCRenderPass> renderPass) OVERRIDE { m_renderPasses.append(renderPass); } + + const Vector<OwnPtr<CCRenderPass> >& renderPasses() const { return m_renderPasses; } + +private: + Vector<OwnPtr<CCRenderPass> > m_renderPasses; + +}; + +TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectRenderPass) +{ + // This will fake that we are on the correct thread for testing purposes. + DebugScopedSetImplThread setImplThread; + + OwnPtr<CCLayerImpl> rootLayer = CCLayerImpl::create(1); + + OwnPtr<CCLayerImpl> owningLayer = CCLayerImpl::create(2); + owningLayer->createRenderSurface(); + ASSERT_TRUE(owningLayer->renderSurface()); + owningLayer->setRenderTarget(owningLayer.get()); + CCRenderSurface* renderSurface = owningLayer->renderSurface(); + + rootLayer->addChild(owningLayer.release()); + + IntRect contentRect = IntRect(IntPoint::zero(), IntSize(50, 50)); + WebTransformationMatrix origin; + origin.translate(30, 40); + + renderSurface->setScreenSpaceTransform(origin); + renderSurface->setContentRect(contentRect); + + TestCCRenderPassSink passSink; + + renderSurface->appendRenderPasses(passSink); + + ASSERT_EQ(1u, passSink.renderPasses().size()); + CCRenderPass* pass = passSink.renderPasses()[0].get(); + + EXPECT_EQ(CCRenderPass::Id(2, 0), pass->id()); + EXPECT_EQ(contentRect, pass->outputRect()); + EXPECT_EQ(origin, pass->transformToRootTarget()); +} + } // namespace |
