Index: cc/texture_layer_impl.cc |
diff --git a/cc/texture_layer_impl.cc b/cc/texture_layer_impl.cc |
index e8a68741855891ef8d8e1317942c96484d7994bc..dd764a0572fd45044b0b8bb4c0074c387463e2fa 100644 |
--- a/cc/texture_layer_impl.cc |
+++ b/cc/texture_layer_impl.cc |
@@ -45,7 +45,12 @@ void TextureLayerImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQu |
gfx::Rect opaqueRect(contentsOpaque() ? quadRect : gfx::Rect()); |
scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); |
quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_externalTextureResource, m_premultipliedAlpha, m_uvRect, m_flipped); |
- quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); |
+ |
+ // Perform explicit clipping on a quad to avoid setting a scissor later. |
+ if (sharedQuadState->is_clipped && quad->PerformClipping()) |
+ sharedQuadState->is_clipped = false; |
+ if (!quad->rect.IsEmpty()) |
+ quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); |
} |
void TextureLayerImpl::didDraw(ResourceProvider* resourceProvider) |