Chromium Code Reviews| 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 a04cfa2a1f80315b209d05479f60b831d6402c82..a7c9334b0bc76f94d030f3907bfe26a9e94e772c 100644 |
| --- a/gpu/command_buffer/service/texture_manager.h |
| +++ b/gpu/command_buffer/service/texture_manager.h |
| @@ -39,6 +39,8 @@ class TextureRef; |
| // jointly owned by possibly multiple TextureRef. |
| class GPU_EXPORT Texture { |
| public: |
| + enum ImageState { UNBOUND, BOUND, COPIED }; |
| + |
| explicit Texture(GLuint service_id); |
| GLenum min_filter() const { |
| @@ -133,9 +135,17 @@ class GPU_EXPORT Texture { |
| bool GetLevelType( |
| GLint target, GLint level, GLenum* type, GLenum* internal_format) const; |
| - // Get the image bound to a particular level. Returns NULL if level |
| + // Set the image for a particular level. |
| + void SetLevelImage(GLenum target, |
| + GLint level, |
| + gfx::GLImage* image, |
| + ImageState state); |
| + |
| + // Get the image associated with a particular level. Returns NULL if level |
| // does not exist. |
| - gfx::GLImage* GetLevelImage(GLint target, GLint level) const; |
| + gfx::GLImage* GetLevelImage(GLint target, |
|
Daniele Castagna
2015/10/14 18:40:36
nit: Maybe overload this without the state paramet
reveman
2015/10/14 19:28:01
Done.
|
| + GLint level, |
| + ImageState* state) const; |
| bool HasImages() const { |
| return has_images_; |
| @@ -193,9 +203,6 @@ class GPU_EXPORT Texture { |
| // Initialize TEXTURE_MAX_ANISOTROPY to 1 if we haven't done so yet. |
| void InitTextureMaxAnisotropyIfNeeded(GLenum target); |
| - void OnWillModifyPixels(); |
| - void OnDidModifyPixels(); |
| - |
| void DumpLevelMemory(base::trace_event::ProcessMemoryDump* pmd, |
| uint64_t client_tracing_id, |
| const std::string& dump_name) const; |
| @@ -242,6 +249,7 @@ class GPU_EXPORT Texture { |
| GLenum format; |
| GLenum type; |
| scoped_refptr<gfx::GLImage> image; |
| + ImageState image_state; |
| uint32 estimated_size; |
| }; |
| @@ -362,13 +370,6 @@ class GPU_EXPORT Texture { |
| // Update info about this texture. |
| void Update(const FeatureInfo* feature_info); |
| - // Set the image for a particular level. |
| - void SetLevelImage( |
| - const FeatureInfo* feature_info, |
| - GLenum target, |
| - GLint level, |
| - gfx::GLImage* image); |
| - |
| // Appends a signature for the given level. |
| void AddToSignature( |
| const FeatureInfo* feature_info, |
| @@ -790,11 +791,11 @@ class GPU_EXPORT TextureManager : public base::trace_event::MemoryDumpProvider { |
| return memory_type_tracker_->GetMemRepresented(); |
| } |
| - void SetLevelImage( |
| - TextureRef* ref, |
| - GLenum target, |
| - GLint level, |
| - gfx::GLImage* image); |
| + void SetLevelImage(TextureRef* ref, |
| + GLenum target, |
| + GLint level, |
| + gfx::GLImage* image, |
| + Texture::ImageState state); |
| size_t GetSignatureSize() const; |