Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2263)

Unified Diff: cc/output/copy_output_request.h

Issue 17335011: cc: Allow output readback/copy requests to specify a sub-rect to copy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: copy-subrect: 3 patches in one Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/layer_impl.cc ('k') | cc/output/copy_output_request.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/copy_output_request.h
diff --git a/cc/output/copy_output_request.h b/cc/output/copy_output_request.h
index 54fff1a6d66af3de604f04665be21406bb1fa21d..b7eb0b4ffc5bada59e6eb5f2bf5f6b56c50b7e35 100644
--- a/cc/output/copy_output_request.h
+++ b/cc/output/copy_output_request.h
@@ -8,7 +8,7 @@
#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
#include "cc/base/cc_export.h"
-#include "ui/gfx/size.h"
+#include "ui/gfx/rect.h"
class SkBitmap;
@@ -35,15 +35,29 @@ class CC_EXPORT CopyOutputRequest {
static scoped_ptr<CopyOutputRequest> CreateRelayRequest(
const CopyOutputRequest& original_request,
const CopyOutputRequestCallback& result_callback) {
- return make_scoped_ptr(new CopyOutputRequest(
- original_request.force_bitmap_result(), result_callback));
+ scoped_ptr<CopyOutputRequest> relay = CreateRequest(result_callback);
+ relay->force_bitmap_result_ = original_request.force_bitmap_result_;
+ relay->has_area_ = original_request.has_area_;
+ relay->area_ = original_request.area_;
+ return relay.Pass();
}
~CopyOutputRequest();
bool IsEmpty() const { return result_callback_.is_null(); }
+
bool force_bitmap_result() const { return force_bitmap_result_; }
+ // By default copy requests copy the entire layer's subtree output. If an
+ // area is given, then the intersection of this rect (in layer space) with
+ // the layer's subtree output will be returned.
+ void set_area(gfx::Rect area) {
+ has_area_ = true;
+ area_ = area;
+ }
+ bool has_area() const { return has_area_; }
+ gfx::Rect area() const { return area_; }
+
void SendResult(scoped_ptr<CopyOutputResult> result);
void SendBitmapResult(scoped_ptr<SkBitmap> bitmap);
void SendTextureResult(gfx::Size size,
@@ -60,6 +74,8 @@ class CC_EXPORT CopyOutputRequest {
const CopyOutputRequestCallback& result_callback);
bool force_bitmap_result_;
+ bool has_area_;
+ gfx::Rect area_;
CopyOutputRequestCallback result_callback_;
};
« no previous file with comments | « cc/layers/layer_impl.cc ('k') | cc/output/copy_output_request.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698