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 5d1a518236207dd29326431762976fca8e4101a4..6a21b64930acb90b12b63d30fabc71411e2d357e 100644 |
| --- a/gpu/command_buffer/service/texture_manager.h |
| +++ b/gpu/command_buffer/service/texture_manager.h |
| @@ -153,12 +153,6 @@ class GPU_EXPORT Texture { |
| owned_service_id_ = service_id; |
| } |
| - // Causes us to report |service_id| as our service id, but does not delete |
| - // it when we are destroyed. Will rebind any OES_EXTERNAL texture units to |
| - // our new service id in all contexts. If |service_id| is zero, then we |
| - // revert to our original service id. |
| - void SetUnownedServiceId(GLuint service_id); |
| - |
| // Returns the target this texure was first bound to or 0 if it has not |
| // been bound. Once a texture is bound to a specific target it can never be |
| // bound to a different target. |
| @@ -181,19 +175,24 @@ class GPU_EXPORT Texture { |
| bool GetLevelType( |
| GLint target, GLint level, GLenum* type, GLenum* internal_format) const; |
| - // Set the image for a particular level. |
| + // Set the image for a particular level. If a GLStreamTextureImage was |
| + // previously set with SetLevelStreamTextureImage(), |service_id_| will be |
| + // reset to |owned_service_id_|. |
|
liberato (no reviews please)
2016/06/02 14:37:02
might want to mention "and is not equal to".
watk
2016/06/03 01:09:46
Done.
|
| void SetLevelImage(GLenum target, |
| GLint level, |
| gl::GLImage* image, |
| ImageState state); |
| - // Set the GLStreamTextureImage for a particular level. This is identical |
| - // to SetLevelImage, but it also permits GetLevelStreamTextureImage to return |
| - // the image. |
| + // Set the GLStreamTextureImage for a particular level. This is like |
| + // SetLevelImage, but it also makes it optional to override |service_id_| with |
| + // a texture bound to the stream texture, and permits |
| + // GetLevelStreamTextureImage to return the image. If |service_id| is zero, |
| + // |service_id_| will be unchanged. |
| void SetLevelStreamTextureImage(GLenum target, |
| GLint level, |
| GLStreamTextureImage* image, |
| - ImageState state); |
| + ImageState state, |
| + GLuint service_id); |
|
liberato (no reviews please)
2016/06/02 14:37:02
i like this.
nit: "will be unchanged" in the comm
watk
2016/06/03 01:09:46
Done.
|
| // Get the image associated with a particular level. Returns NULL if level |
| // does not exist. |
| @@ -358,6 +357,12 @@ class GPU_EXPORT Texture { |
| GLenum type, |
| const gfx::Rect& cleared_rect); |
| + // Causes us to report |service_id| as our service id, but does not delete |
| + // it when we are destroyed. Will rebind any OES_EXTERNAL texture units to |
| + // our new service id in all contexts. If |service_id| is zero, then we |
| + // revert to |owned_service_id_|. |
| + void SetStreamTextureServiceId(GLuint service_id); |
| + |
| void MarkLevelAsInternalWorkaround(GLenum target, GLint level); |
| // In GLES2 "texture complete" means it has all required mips for filtering |
| @@ -513,7 +518,7 @@ class GPU_EXPORT Texture { |
| // Return the service id of the texture that we will delete when we are |
| // destroyed. Normally, this is the same as service_id(), unless it is |
| - // overridden by SetUnownedServiceId. |
| + // overridden by SetStreamTextureServiceId(). |
| GLuint owned_service_id() const { return owned_service_id_; } |
| GLenum GetCompatibilitySwizzleForChannel(GLenum channel); |
| @@ -532,16 +537,14 @@ class GPU_EXPORT Texture { |
| // one of refs_. |
| TextureRef* memory_tracking_ref_; |
| - // The id of the texure |
| + // 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 call to SetUnownedServiceId |
| - // overrides it. In that case, we'll use the overridden service id (stored |
| - // in |service_id_|) for all purposes except deleting the texture name. |
| - // Whoever calls SetUnownedServiceId is assumed to handle deleting that id, |
| - // and only after we are either deleted or told to stop using it via |
| - // another call to SetUnownedServiceId. |
| + // 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 id is stored in |
| + // |service_id_| and overrides the owned service id for all purposes except |
| + // deleting the texture name. |
| GLuint owned_service_id_; |
| // Whether all renderable mips of this texture have been cleared. |
| @@ -936,7 +939,8 @@ class GPU_EXPORT TextureManager : public base::trace_event::MemoryDumpProvider { |
| GLenum target, |
| GLint level, |
| GLStreamTextureImage* image, |
| - Texture::ImageState state); |
| + Texture::ImageState state, |
| + GLuint service_id); |
| size_t GetSignatureSize() const; |