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

Unified Diff: cc/output/copy_output_request.h

Issue 99253004: cc: Allow copy requests to provide a texture. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: mailbox: Created 7 years 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/cc_tests.gyp ('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 c4a92481dbca566e42acf150f5a639f60c64628c..b154f565c9c2eaf365578cdd0c364ee8e4775109 100644
--- a/cc/output/copy_output_request.h
+++ b/cc/output/copy_output_request.h
@@ -8,6 +8,7 @@
#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
#include "cc/base/cc_export.h"
+#include "cc/resources/texture_mailbox.h"
#include "ui/gfx/rect.h"
class SkBitmap;
@@ -15,7 +16,6 @@ class SkBitmap;
namespace cc {
class CopyOutputResult;
class SingleReleaseCallback;
-class TextureMailbox;
class CC_EXPORT CopyOutputRequest {
public:
@@ -35,13 +35,7 @@ class CC_EXPORT CopyOutputRequest {
}
static scoped_ptr<CopyOutputRequest> CreateRelayRequest(
const CopyOutputRequest& original_request,
- const CopyOutputRequestCallback& 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();
- }
+ const CopyOutputRequestCallback& result_callback);
~CopyOutputRequest();
@@ -59,6 +53,13 @@ class CC_EXPORT CopyOutputRequest {
bool has_area() const { return has_area_; }
gfx::Rect area() const { return area_; }
+ // By default copy requests create a new TextureMailbox to return contents
+ // in. This allows a client to provide a TextureMailbox, and the compositor
+ // will place the result inside the TextureMailbox.
+ void SetTextureMailbox(const TextureMailbox& texture_mailbox);
+ bool has_texture_mailbox() const { return has_texture_mailbox_; }
+ const TextureMailbox& texture_mailbox() const { return texture_mailbox_; }
+
void SendEmptyResult();
void SendBitmapResult(scoped_ptr<SkBitmap> bitmap);
void SendTextureResult(gfx::Size size,
@@ -74,12 +75,14 @@ class CC_EXPORT CopyOutputRequest {
private:
CopyOutputRequest();
- explicit CopyOutputRequest(bool force_bitmap_result,
- const CopyOutputRequestCallback& result_callback);
+ CopyOutputRequest(bool force_bitmap_result,
+ const CopyOutputRequestCallback& result_callback);
bool force_bitmap_result_;
bool has_area_;
+ bool has_texture_mailbox_;
gfx::Rect area_;
+ TextureMailbox texture_mailbox_;
CopyOutputRequestCallback result_callback_;
};
« no previous file with comments | « cc/cc_tests.gyp ('k') | cc/output/copy_output_request.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698