Index: cc/output/software_renderer.cc |
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc |
index 7c53b51347e17a59c32d9ff7e95d866773f04376..be0c4dd097f107af73ef018f19a0a0fe58a0c39e 100644 |
--- a/cc/output/software_renderer.cc |
+++ b/cc/output/software_renderer.cc |
@@ -336,6 +336,11 @@ void SoftwareRenderer::DrawPictureQuad(const PictureDrawQuad* quad) { |
TRACE_EVENT0("cc", "SoftwareRenderer::DrawPictureQuad"); |
+ // TODO(ccameron): Determine a color space strategy for software rendering. |
+ gfx::ColorSpace canvas_color_space; |
+ if (settings_->enable_color_correct_rendering) |
+ canvas_color_space = gfx::ColorSpace::CreateSRGB(); |
+ |
RasterSource::PlaybackSettings playback_settings; |
playback_settings.playback_to_shared_canvas = true; |
// Indicates whether content rasterization should happen through an |
@@ -356,12 +361,12 @@ void SoftwareRenderer::DrawPictureQuad(const PictureDrawQuad* quad) { |
quad->shared_quad_state->opacity, |
disable_image_filtering); |
quad->raster_source->PlaybackToCanvas( |
- &filtered_canvas, quad->content_rect, quad->content_rect, |
- quad->contents_scale, playback_settings); |
+ &filtered_canvas, canvas_color_space, quad->content_rect, |
+ quad->content_rect, quad->contents_scale, playback_settings); |
} else { |
quad->raster_source->PlaybackToCanvas( |
- current_canvas_, quad->content_rect, quad->content_rect, |
- quad->contents_scale, playback_settings); |
+ current_canvas_, canvas_color_space, quad->content_rect, |
+ quad->content_rect, quad->contents_scale, playback_settings); |
} |
} |