| 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 df00607c4774b4e1043f1f58eb9f24c9be38366c..9ec7e10047a44f3bf85c260fce703cc2a99cb8d4 100644
|
| --- a/gpu/command_buffer/service/texture_manager.h
|
| +++ b/gpu/command_buffer/service/texture_manager.h
|
| @@ -208,6 +208,14 @@ class GPU_EXPORT Texture {
|
| uint32 estimated_size;
|
| };
|
|
|
| + struct FaceInfo {
|
| + FaceInfo();
|
| + ~FaceInfo();
|
| +
|
| + GLsizei num_mip_levels;
|
| + std::vector<LevelInfo> level_infos;
|
| + };
|
| +
|
| // Set the info for a particular level.
|
| void SetLevelInfo(
|
| const FeatureInfo* feature_info,
|
| @@ -276,6 +284,31 @@ class GPU_EXPORT Texture {
|
| // Returns true if mipmaps can be generated by GL.
|
| bool CanGenerateMipmaps(const FeatureInfo* feature_info) const;
|
|
|
| + // Returns true if any of the texture dimensions are not a power of two.
|
| + static bool TextureIsNPOT(GLsizei width, GLsizei height, GLsizei depth);
|
| +
|
| + // Returns true if texture face is complete relative to the first face.
|
| + static bool TextureFaceComplete(const Texture::LevelInfo& first_face,
|
| + size_t face_index,
|
| + GLenum target,
|
| + GLenum internal_format,
|
| + GLsizei width,
|
| + GLsizei height,
|
| + GLsizei depth,
|
| + GLenum format,
|
| + GLenum type);
|
| +
|
| + // Returns true if texture mip level is complete relative to first level.
|
| + static bool TextureMipComplete(const Texture::LevelInfo& level0_face,
|
| + GLenum target,
|
| + GLint level,
|
| + GLenum internal_format,
|
| + GLsizei width,
|
| + GLsizei height,
|
| + GLsizei depth,
|
| + GLenum format,
|
| + GLenum type);
|
| +
|
| // Sets the Texture's target
|
| // Parameters:
|
| // target: GL_TEXTURE_2D or GL_TEXTURE_CUBE_MAP or
|
| @@ -327,7 +360,7 @@ class GPU_EXPORT Texture {
|
| MailboxManager* mailbox_manager_;
|
|
|
| // Info about each face and level of texture.
|
| - std::vector<std::vector<LevelInfo> > level_infos_;
|
| + std::vector<FaceInfo> face_infos_;
|
|
|
| // The texture refs that point to this Texture.
|
| typedef std::set<TextureRef*> RefSet;
|
| @@ -344,6 +377,7 @@ class GPU_EXPORT Texture {
|
| bool cleared_;
|
|
|
| int num_uncleared_mips_;
|
| + int num_npot_faces_;
|
|
|
| // The target. 0 if unset, otherwise GL_TEXTURE_2D or GL_TEXTURE_CUBE_MAP.
|
| GLenum target_;
|
| @@ -362,9 +396,15 @@ class GPU_EXPORT Texture {
|
| // Whether or not this texture is "texture complete"
|
| bool texture_complete_;
|
|
|
| + // Whether mip levels have changed and should be reverified.
|
| + bool texture_mips_dirty_;
|
| +
|
| // Whether or not this texture is "cube complete"
|
| bool cube_complete_;
|
|
|
| + // Whether any level 0 faces have changed and should be reverified.
|
| + bool texture_level0_dirty_;
|
| +
|
| // Whether or not this texture is non-power-of-two
|
| bool npot_;
|
|
|
|
|