diff options
Diffstat (limited to 'cc/software_renderer.cc')
-rw-r--r-- | cc/software_renderer.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/cc/software_renderer.cc b/cc/software_renderer.cc index 5c31d7b..ed37af6 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()); |