Index: cc/output/software_renderer.cc |
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc |
index fd4b5a645f1caedf56baa07fa6b263a324de86dd..96598a4addff625ae315d384b4911037e57ce0eb 100644 |
--- a/cc/output/software_renderer.cc |
+++ b/cc/output/software_renderer.cc |
@@ -405,13 +405,18 @@ void SoftwareRenderer::DrawUnsupportedQuad(const DrawingFrame* frame, |
current_paint_); |
} |
-void SoftwareRenderer::CopyCurrentRenderPassToBitmap(DrawingFrame* frame, |
- SkBitmap* bitmap) { |
+void SoftwareRenderer::CopyCurrentRenderPassToBitmap( |
+ DrawingFrame* frame, |
+ const CopyRenderPassCallback& callback) { |
gfx::Size render_pass_size = frame->current_render_pass->output_rect.size(); |
+ |
+ scoped_ptr<SkBitmap> bitmap(new SkBitmap); |
bitmap->setConfig(SkBitmap::kARGB_8888_Config, |
render_pass_size.width(), |
render_pass_size.height()); |
- current_canvas_->readPixels(bitmap, 0, 0); |
+ current_canvas_->readPixels(bitmap.get(), 0, 0); |
+ |
+ callback.Run(bitmap.Pass()); |
} |
void SoftwareRenderer::GetFramebufferPixels(void* pixels, gfx::Rect rect) { |