| Index: gpu/command_buffer/service/texture_manager.h
|
| diff --git a/gpu/command_buffer/service/texture_manager.h b/gpu/command_buffer/service/texture_manager.h
|
| index 0c74c4b85057e97ac057420b9503bb45c1bb9ec4..1614c72a225d0fe0acff42a0d77e9f4f38ae8117 100644
|
| --- a/gpu/command_buffer/service/texture_manager.h
|
| +++ b/gpu/command_buffer/service/texture_manager.h
|
| @@ -38,13 +38,37 @@ class ErrorState;
|
| class FeatureInfo;
|
| class FramebufferManager;
|
| class MailboxManager;
|
| +class Texture;
|
| class TextureManager;
|
| class TextureRef;
|
|
|
| +class GPU_EXPORT TextureBase {
|
| + public:
|
| + explicit TextureBase(GLuint service_id);
|
| + virtual ~TextureBase();
|
| +
|
| + // The service side OpenGL id of the texture.
|
| + GLuint service_id() const { return service_id_; }
|
| +
|
| + protected:
|
| + // The id of the texture.
|
| + GLuint service_id_;
|
| +
|
| + void DeleteFromMailboxManager();
|
| +
|
| + private:
|
| + friend class MailboxManagerSync;
|
| + friend class MailboxManagerImpl;
|
| +
|
| + void SetMailboxManager(MailboxManager* mailbox_manager);
|
| +
|
| + MailboxManager* mailbox_manager_;
|
| +};
|
| +
|
| // Info about Textures currently in the system.
|
| // This class wraps a real GL texture, keeping track of its meta-data. It is
|
| // jointly owned by possibly multiple TextureRef.
|
| -class GPU_EXPORT Texture {
|
| +class GPU_EXPORT Texture final : public TextureBase {
|
| public:
|
| enum ImageState {
|
| // If an image is associated with the texture and image state is UNBOUND,
|
| @@ -141,11 +165,6 @@ class GPU_EXPORT Texture {
|
|
|
| bool CanRenderTo(const FeatureInfo* feature_info, GLint level) const;
|
|
|
| - // The service side OpenGL id of the texture.
|
| - GLuint service_id() const {
|
| - return service_id_;
|
| - }
|
| -
|
| void SetServiceId(GLuint service_id) {
|
| DCHECK(service_id);
|
| DCHECK_EQ(owned_service_id_, service_id_);
|
| @@ -289,7 +308,7 @@ class GPU_EXPORT Texture {
|
| friend class TextureRef;
|
| friend class TextureTestHelper;
|
|
|
| - ~Texture();
|
| + ~Texture() override;
|
| void AddTextureRef(TextureRef* ref);
|
| void RemoveTextureRef(TextureRef* ref, bool have_context);
|
| MemoryTypeTracker* GetMemTracker();
|
| @@ -480,8 +499,6 @@ class GPU_EXPORT Texture {
|
| const FeatureInfo* feature_info,
|
| GLenum target, GLint level, std::string* signature) const;
|
|
|
| - void SetMailboxManager(MailboxManager* mailbox_manager);
|
| -
|
| // Updates the unsafe textures count in all the managers referencing this
|
| // texture.
|
| void UpdateSafeToRenderFrom(bool cleared);
|
| @@ -527,8 +544,6 @@ class GPU_EXPORT Texture {
|
| GLenum GetCompatibilitySwizzleForChannel(GLenum channel);
|
| void SetCompatibilitySwizzle(const CompatibilitySwizzle* swizzle);
|
|
|
| - MailboxManager* mailbox_manager_;
|
| -
|
| // Info about each face and level of texture.
|
| std::vector<FaceInfo> face_infos_;
|
|
|
| @@ -540,9 +555,6 @@ class GPU_EXPORT Texture {
|
| // one of refs_.
|
| TextureRef* memory_tracking_ref_;
|
|
|
| - // The id of the texture.
|
| - GLuint service_id_;
|
| -
|
| // The id of the texture that we are responsible for deleting. Normally, this
|
| // is the same as |service_id_|, unless a GLStreamTextureImage with its own
|
| // service id is bound. In that case the GLStreamTextureImage service id is
|
|
|