Index: cc/gl_renderer_unittest.cc |
diff --git a/cc/gl_renderer_unittest.cc b/cc/gl_renderer_unittest.cc |
index b530b7bbf92b62845bab66b2c3cfb0c5c8b7180e..eb5f1fb60c1bb7a8cd02cbf3900a1378fc128ed5 100644 |
--- a/cc/gl_renderer_unittest.cc |
+++ b/cc/gl_renderer_unittest.cc |
@@ -485,10 +485,11 @@ TEST(GLRendererTest2, visibilityChangeIsLastCall) |
} |
-class ActiveTextureTrackingContext : public FakeWebGraphicsContext3D { |
+class TextureStateTrackingContext : public FakeWebGraphicsContext3D { |
public: |
- ActiveTextureTrackingContext() |
+ TextureStateTrackingContext() |
: m_activeTexture(GL_INVALID_ENUM) |
+ , m_inDraw(false) |
{ |
} |
@@ -499,6 +500,16 @@ public: |
return WebString(); |
} |
+ // We shouldn't set any texture parameters during the draw sequence, although |
+ // we might when creating the quads. |
+ void setInDraw() { m_inDraw = true; } |
+ |
+ virtual void texParameteri(WGC3Denum target, WGC3Denum pname, WGC3Dint param) |
+ { |
+ if (m_inDraw) |
+ ADD_FAILURE(); |
+ } |
+ |
virtual void activeTexture(WGC3Denum texture) |
{ |
EXPECT_NE(texture, m_activeTexture); |
@@ -508,14 +519,15 @@ public: |
WGC3Denum activeTexture() const { return m_activeTexture; } |
private: |
+ bool m_inDraw; |
WGC3Denum m_activeTexture; |
}; |
TEST(GLRendererTest2, activeTextureState) |
{ |
FakeRendererClient fakeClient; |
- scoped_ptr<GraphicsContext> outputSurface(FakeWebCompositorOutputSurface::create(scoped_ptr<WebKit::WebGraphicsContext3D>(new ActiveTextureTrackingContext))); |
- ActiveTextureTrackingContext* context = static_cast<ActiveTextureTrackingContext*>(outputSurface->context3D()); |
+ scoped_ptr<GraphicsContext> outputSurface(FakeWebCompositorOutputSurface::create(scoped_ptr<WebKit::WebGraphicsContext3D>(new TextureStateTrackingContext))); |
+ TextureStateTrackingContext* context = static_cast<TextureStateTrackingContext*>(outputSurface->context3D()); |
scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outputSurface.get())); |
FakeRendererGL renderer(&fakeClient, resourceProvider.get()); |
@@ -525,6 +537,8 @@ TEST(GLRendererTest2, activeTextureState) |
scoped_ptr<TestRenderPass> pass = TestRenderPass::create(id, gfx::Rect(0, 0, 100, 100), WebTransformationMatrix()); |
pass->appendOneOfEveryQuadType(resourceProvider.get()); |
+ context->setInDraw(); |
+ |
cc::DirectRenderer::DrawingFrame drawingFrame; |
renderer.beginDrawingFrame(drawingFrame); |
EXPECT_EQ(context->activeTexture(), GL_TEXTURE0); |