Chromium Code Reviews| Index: cc/gl_renderer_unittest.cc |
| diff --git a/cc/gl_renderer_unittest.cc b/cc/gl_renderer_unittest.cc |
| index 89603b1ece65c8fc80ad1e4ae92a6678a0ed091f..5ec97d5ded023ba66da89d5f6c9d55012765227a 100644 |
| --- a/cc/gl_renderer_unittest.cc |
| +++ b/cc/gl_renderer_unittest.cc |
| @@ -636,5 +636,61 @@ TEST(GLRendererTest2, shouldClearRootRenderPass) |
| Mock::VerifyAndClearExpectations(&mockContext); |
| } |
| +class ScissorTestOnClearCheckingContext : public FakeWebGraphicsContext3D { |
| +public: |
| + ScissorTestOnClearCheckingContext() : m_scissorEnabled(false) { } |
| + |
| + virtual void clear(WGC3Dbitfield) |
| + { |
| + EXPECT_FALSE(m_scissorEnabled); |
| + } |
| + |
| + virtual void enable(WGC3Denum cap) |
| + { |
| + if (cap == GL_SCISSOR_TEST) |
| + m_scissorEnabled = true; |
| + } |
| + |
| + virtual void disable(WGC3Denum cap) |
| + { |
| + if (cap == GL_SCISSOR_TEST) |
| + m_scissorEnabled = false; |
| + } |
| + |
| +private: |
| + bool m_scissorEnabled; |
| +}; |
| + |
| +TEST(GLRendererTest2, scissorTestWhenClearing) { |
| + FakeRendererClient mockClient; |
| + scoped_ptr<OutputSurface> outputSurface(FakeOutputSurface::Create3d(scoped_ptr<WebKit::WebGraphicsContext3D>(new ScissorTestOnClearCheckingContext))); |
| + scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outputSurface.get())); |
| + FakeRendererGL renderer(&mockClient, outputSurface.get(), resourceProvider.get()); |
| + EXPECT_TRUE(renderer.initialize()); |
| + EXPECT_FALSE(renderer.capabilities().usingPartialSwap); |
| + |
| + gfx::Rect viewportRect(mockClient.deviceViewportSize()); |
| + ScopedPtrVector<RenderPass>& renderPasses = mockClient.renderPassesInDrawOrder(); |
| + renderPasses.clear(); |
| + |
| + RenderPass::Id grandChildPassId(3, 0); |
| + TestRenderPass* grandChildPass = addRenderPass(renderPasses, grandChildPassId, gfx::Rect(50, 50), gfx::Transform()); |
| + addClippedQuad(grandChildPass, viewportRect, SK_ColorYELLOW); |
|
danakj
2013/01/29 22:47:42
can use gfx::Rect(25, 25) or something for this qu
|
| + |
| + RenderPass::Id childPassId(2, 0); |
| + TestRenderPass* childPass = addRenderPass(renderPasses, childPassId, gfx::Rect(100, 100), gfx::Transform()); |
| + addQuad(childPass, viewportRect, SK_ColorBLUE); |
| + |
| + RenderPass::Id rootPassId(1, 0); |
| + TestRenderPass* rootPass = addRenderPass(renderPasses, rootPassId, viewportRect, gfx::Transform()); |
| + addQuad(rootPass, viewportRect, SK_ColorGREEN); |
| + |
| + addRenderPassQuad(rootPass, childPass); |
| + addRenderPassQuad(childPass, grandChildPass); |
| + |
| + renderer.decideRenderPassAllocationsForFrame(mockClient.renderPassesInDrawOrder()); |
| + renderer.drawFrame(mockClient.renderPassesInDrawOrder()); |
| +} |
| + |
| } // namespace |
| } // namespace cc |