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

Unified Diff: webkit/compositor_bindings/web_external_texture_layer_impl.h

Issue 12374028: Allow WebExternalTextureLayerClient to work with mailboxes. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Comments Created 7 years, 8 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
Index: webkit/compositor_bindings/web_external_texture_layer_impl.h
diff --git a/webkit/compositor_bindings/web_external_texture_layer_impl.h b/webkit/compositor_bindings/web_external_texture_layer_impl.h
index e9c33b10aaa130bfffae96fed915104ba6ce6742..2ae2d774d04a61abf9f52a1649b7e26f56bab08f 100644
--- a/webkit/compositor_bindings/web_external_texture_layer_impl.h
+++ b/webkit/compositor_bindings/web_external_texture_layer_impl.h
@@ -5,41 +5,57 @@
#ifndef WEBKIT_COMPOSITOR_BINDINGS_WEB_EXTERNAL_TEXTURE_LAYER_IMPL_H_
#define WEBKIT_COMPOSITOR_BINDINGS_WEB_EXTERNAL_TEXTURE_LAYER_IMPL_H_
+#include "base/bind.h"
#include "base/memory/scoped_ptr.h"
#include "cc/layers/texture_layer_client.h"
+#include "cc/resources/texture_mailbox.h"
#include "third_party/WebKit/Source/Platform/chromium/public/WebExternalTextureLayer.h"
#include "webkit/compositor_bindings/webkit_compositor_bindings_export.h"
-namespace WebKit { struct WebFloatRect; }
+namespace WebKit {
+struct WebFloatRect;
+struct WebExternalTextureMailbox;
+}
namespace webkit {
class WebLayerImpl;
-class WebExternalTextureLayerImpl : public WebKit::WebExternalTextureLayer,
- public cc::TextureLayerClient {
+class WebExternalTextureLayerImpl
+ : public WebKit::WebExternalTextureLayer,
+ public cc::TextureLayerClient,
+ public base::SupportsWeakPtr<WebExternalTextureLayerImpl> {
public:
WEBKIT_COMPOSITOR_BINDINGS_EXPORT explicit WebExternalTextureLayerImpl(
- WebKit::WebExternalTextureLayerClient*);
+ WebKit::WebExternalTextureLayerClient*,
+ bool mailbox);
virtual ~WebExternalTextureLayerImpl();
// WebKit::WebExternalTextureLayer implementation.
virtual WebKit::WebLayer* layer();
+ virtual void clearTexture();
virtual void setTextureId(unsigned texture_id);
virtual void setFlipped(bool flipped);
virtual void setUVRect(const WebKit::WebFloatRect& uv_rect);
virtual void setOpaque(bool opaque);
virtual void setPremultipliedAlpha(bool premultiplied);
+
virtual void willModifyTexture();
virtual void setRateLimitContext(bool rate_limit);
// TextureLayerClient implementation.
virtual unsigned PrepareTexture(cc::ResourceUpdateQueue*) OVERRIDE;
virtual WebKit::WebGraphicsContext3D* Context3d() OVERRIDE;
+ virtual bool PrepareTextureMailbox(cc::TextureMailbox* out_mailbox) OVERRIDE;
jamesr 2013/04/11 18:11:15 I don't think the out_ prefix is necessary - in Ch
private:
+ void OnMailboxReleased(const WebKit::WebExternalTextureMailbox& mailbox,
+ unsigned sync_point,
+ bool lost_resource);
+
WebKit::WebExternalTextureLayerClient* client_;
scoped_ptr<WebLayerImpl> layer_;
+ bool uses_mailbox_;
DISALLOW_COPY_AND_ASSIGN(WebExternalTextureLayerImpl);
};

Powered by Google App Engine
This is Rietveld 408576698