| Index: cc/texture_layer.h
|
| diff --git a/cc/texture_layer.h b/cc/texture_layer.h
|
| index 2e7921e4bd33ca6a315ed224c1f462eebb3e945a..4fea928d964eaf449eb6f552336df6e6fa48a216 100644
|
| --- a/cc/texture_layer.h
|
| +++ b/cc/texture_layer.h
|
| @@ -5,6 +5,9 @@
|
| #ifndef CC_TEXTURE_LAYER_H_
|
| #define CC_TEXTURE_LAYER_H_
|
|
|
| +#include <string>
|
| +
|
| +#include "base/callback.h"
|
| #include "cc/cc_export.h"
|
| #include "cc/layer.h"
|
|
|
| @@ -19,11 +22,16 @@ class TextureLayerClient;
|
| // A Layer containing a the rendered output of a plugin instance.
|
| class CC_EXPORT TextureLayer : public Layer {
|
| public:
|
| + typedef base::Callback<void(unsigned)> MailboxCallback;
|
| +
|
| // If this texture layer requires special preparation logic for each frame driven by
|
| // the compositor, pass in a non-nil client. Pass in a nil client pointer if texture updates
|
| // are driven by an external process.
|
| static scoped_refptr<TextureLayer> create(TextureLayerClient*);
|
|
|
| + // Used when mailbox names are specified instead of texture IDs.
|
| + static scoped_refptr<TextureLayer> createForMailbox();
|
| +
|
| void clearClient() { m_client = 0; }
|
|
|
| virtual scoped_ptr<LayerImpl> createLayerImpl(LayerTreeImpl* treeImpl) OVERRIDE;
|
| @@ -48,6 +56,9 @@ public:
|
| // Code path for plugins which supply their own texture ID.
|
| void setTextureId(unsigned);
|
|
|
| + // Code path for plugins which supply their own texture ID.
|
| + void setTextureMailbox(const std::string&, const MailboxCallback&);
|
| +
|
| void willModifyTexture();
|
|
|
| virtual void setNeedsDisplayRect(const gfx::RectF&) OVERRIDE;
|
| @@ -59,11 +70,13 @@ public:
|
| virtual bool blocksPendingCommit() const OVERRIDE;
|
|
|
| protected:
|
| - explicit TextureLayer(TextureLayerClient*);
|
| + TextureLayer(TextureLayerClient*, bool usesMailbox);
|
| virtual ~TextureLayer();
|
|
|
| private:
|
| TextureLayerClient* m_client;
|
| + bool m_usesMailbox;
|
| + MailboxCallback m_mailboxReleaseCallback;
|
|
|
| bool m_flipped;
|
| gfx::RectF m_uvRect;
|
| @@ -75,6 +88,7 @@ private:
|
| bool m_contentCommitted;
|
|
|
| unsigned m_textureId;
|
| + std::string m_mailboxName;
|
| };
|
|
|
| }
|
|
|