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..14efe7a8e7776b66c2e63d797c253d77b2919dcb 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, |
+ GLint level, |
+ ImageState* state) const; |
bool HasImages() const { |
return has_images_; |
@@ -242,6 +252,7 @@ class GPU_EXPORT Texture { |
GLenum format; |
GLenum type; |
scoped_refptr<gfx::GLImage> image; |
+ ImageState image_state; |
uint32 estimated_size; |
}; |
@@ -362,13 +373,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 +794,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; |