summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/texture_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer/service/texture_manager.h')
-rw-r--r--gpu/command_buffer/service/texture_manager.h48
1 files changed, 16 insertions, 32 deletions
diff --git a/gpu/command_buffer/service/texture_manager.h b/gpu/command_buffer/service/texture_manager.h
index 33cd54a..a04cfa2 100644
--- a/gpu/command_buffer/service/texture_manager.h
+++ b/gpu/command_buffer/service/texture_manager.h
@@ -39,22 +39,6 @@ class TextureRef;
// jointly owned by possibly multiple TextureRef.
class GPU_EXPORT Texture {
public:
- enum ImageState {
- // If an image is associated with the texture and image state is UNBOUND,
- // then sampling out of the texture or using it as a target for drawing
- // will not read/write from/to the image.
- UNBOUND,
- // If image state is BOUND, then sampling from the texture will return the
- // contents of the image and using it as a target will modify the image.
- BOUND,
- // Image state is set to COPIED if the contents of the image has been
- // copied to the texture. Sampling from the texture will be equivalent
- // to sampling out the image (assuming image has not been changed since
- // it was copied). Using the texture as a target for drawing will only
- // modify the texture and not the image.
- COPIED
- };
-
explicit Texture(GLuint service_id);
GLenum min_filter() const {
@@ -149,17 +133,8 @@ class GPU_EXPORT Texture {
bool GetLevelType(
GLint target, GLint level, GLenum* type, GLenum* internal_format) const;
- // 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
+ // Get the image bound to a particular level. Returns NULL if level
// does not exist.
- gfx::GLImage* GetLevelImage(GLint target,
- GLint level,
- ImageState* state) const;
gfx::GLImage* GetLevelImage(GLint target, GLint level) const;
bool HasImages() const {
@@ -218,6 +193,9 @@ 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;
@@ -264,7 +242,6 @@ class GPU_EXPORT Texture {
GLenum format;
GLenum type;
scoped_refptr<gfx::GLImage> image;
- ImageState image_state;
uint32 estimated_size;
};
@@ -385,6 +362,13 @@ 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,
@@ -806,11 +790,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,
- Texture::ImageState state);
+ void SetLevelImage(
+ TextureRef* ref,
+ GLenum target,
+ GLint level,
+ gfx::GLImage* image);
size_t GetSignatureSize() const;