diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-24 06:45:36 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-24 06:45:36 +0000 |
commit | 0e5f714c8e7d908a44d6474cbf162b9862b895f0 (patch) | |
tree | c22fa14c45d91f2bf2b712b1cca5b3947edaaae0 /cc/output/software_renderer.cc | |
parent | a8e55b1e8c3faef8b9cdd17d444f837773cb8b1c (diff) | |
download | chromium_src-0e5f714c8e7d908a44d6474cbf162b9862b895f0.zip chromium_src-0e5f714c8e7d908a44d6474cbf162b9862b895f0.tar.gz chromium_src-0e5f714c8e7d908a44d6474cbf162b9862b895f0.tar.bz2 |
cc: Add CopyAsBitmapRequest class to hold the readback callback.
Currently when you request an async copy of a layer as a bitmap, we
pass around the raw base::Callback. In order to add functionality to
the copy/readback mechanism, we need to pass along other parameters
such as a size to scale the copy to. Instead of passing along an
ever-growing list of parameters, wrap the base::Callback in a class
called CopyAsBitmapRequest. Then new parameters can be added to this
class.
No change in behaviour here, covered by existing tests.
R=piman
BUG=242571
Review URL: https://chromiumcodereview.appspot.com/15435003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201990 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/output/software_renderer.cc')
-rw-r--r-- | cc/output/software_renderer.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc index 3906ea8..4a337ff 100644 --- a/cc/output/software_renderer.cc +++ b/cc/output/software_renderer.cc @@ -9,6 +9,7 @@ #include "cc/output/compositor_frame.h" #include "cc/output/compositor_frame_ack.h" #include "cc/output/compositor_frame_metadata.h" +#include "cc/output/copy_output_request.h" #include "cc/output/output_surface.h" #include "cc/output/software_output_device.h" #include "cc/quads/debug_border_draw_quad.h" @@ -435,7 +436,7 @@ void SoftwareRenderer::DrawUnsupportedQuad(const DrawingFrame* frame, void SoftwareRenderer::CopyCurrentRenderPassToBitmap( DrawingFrame* frame, - const CopyRenderPassCallback& callback) { + scoped_ptr<CopyOutputRequest> request) { gfx::Size render_pass_size = frame->current_render_pass->output_rect.size(); scoped_ptr<SkBitmap> bitmap(new SkBitmap); @@ -444,7 +445,7 @@ void SoftwareRenderer::CopyCurrentRenderPassToBitmap( render_pass_size.height()); current_canvas_->readPixels(bitmap.get(), 0, 0); - callback.Run(bitmap.Pass()); + request->SendBitmapResult(bitmap.Pass()); } void SoftwareRenderer::GetFramebufferPixels(void* pixels, gfx::Rect rect) { |