Index: cc/software_renderer.cc |
diff --git a/cc/software_renderer.cc b/cc/software_renderer.cc |
index 5c31d7b12e9c6c024aa48c7b46d582d9149bce56..ed37af660bda54bdece1d54e469162885d8cf552 100644 |
--- a/cc/software_renderer.cc |
+++ b/cc/software_renderer.cc |
@@ -268,6 +268,11 @@ void SoftwareRenderer::drawRenderPassQuad(const DrawingFrame& frame, const Rende |
if (!contentTexture || !contentTexture->id()) |
return; |
+ const RenderPass* renderPass = frame.renderPassesById->get(quad->renderPassId()); |
+ DCHECK(renderPass); |
+ if (!renderPass) |
+ return; |
+ |
DCHECK(isSoftwareResource(contentTexture->id())); |
ResourceProvider::ScopedReadLockSoftware lock(m_resourceProvider, contentTexture->id()); |
@@ -287,6 +292,10 @@ void SoftwareRenderer::drawRenderPassQuad(const DrawingFrame& frame, const Rende |
shader->setLocalMatrix(contentMat); |
m_skCurrentPaint.setShader(shader); |
+ SkImageFilter* filter = renderPass->filter(); |
+ if (filter) |
+ m_skCurrentPaint.setImageFilter(filter); |
+ |
if (quad->maskResourceId()) { |
ResourceProvider::ScopedReadLockSoftware maskLock(m_resourceProvider, quad->maskResourceId()); |