Index: cc/output/software_renderer.cc |
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc |
index 88b9c646c924956c054074ad6d7c804442a2fdd5..60eb22f147179e6243abddc9d80306444d117a6c 100644 |
--- a/cc/output/software_renderer.cc |
+++ b/cc/output/software_renderer.cc |
@@ -254,9 +254,10 @@ void SoftwareRenderer::DoDrawQuad(DrawingFrame* frame, const DrawQuad* quad) { |
current_paint_.setFilterLevel(SkPaint::kLow_FilterLevel); |
} |
- if (quad->ShouldDrawWithBlending()) { |
+ if (quad->ShouldDrawWithBlending() || |
+ quad->shared_quad_state->blend_mode != SkXfermode::kSrcOver_Mode) { |
current_paint_.setAlpha(quad->opacity() * 255); |
- current_paint_.setXfermodeMode(SkXfermode::kSrcOver_Mode); |
+ current_paint_.setXfermodeMode(quad->shared_quad_state->blend_mode); |
} else { |
current_paint_.setXfermodeMode(SkXfermode::kSrc_Mode); |
} |
@@ -545,7 +546,7 @@ void SoftwareRenderer::DrawRenderPassQuad(const DrawingFrame* frame, |
current_paint_.setRasterizer(mask_rasterizer.get()); |
current_canvas_->drawRect(dest_visible_rect, current_paint_); |
} else { |
- // TODO(skaslev): Apply background filters and blend with content |
+ // TODO(skaslev): Apply background filters |
current_canvas_->drawRect(dest_visible_rect, current_paint_); |
} |
} |