diff options
author | heejin.r.chung@samsung.com <heejin.r.chung@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-24 14:00:03 +0000 |
---|---|---|
committer | heejin.r.chung@samsung.com <heejin.r.chung@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-24 14:00:03 +0000 |
commit | 07d142dc88376a666eca5fe04f6477fc74c64eee (patch) | |
tree | cc61327bd7f7591535cfb532d44759c3e12a62b7 | |
parent | c0e80b2e6f7a32df03446c86c4e45d78bf1ce668 (diff) | |
download | chromium_src-07d142dc88376a666eca5fe04f6477fc74c64eee.zip chromium_src-07d142dc88376a666eca5fe04f6477fc74c64eee.tar.gz chromium_src-07d142dc88376a666eca5fe04f6477fc74c64eee.tar.bz2 |
Reuse GLESUtil code instead of defining new function in TextureManager
Use GLES2Util::IndexToGLFaceTarget instead of redefining in TextureManager
and move GLTargetToFaceIndex to GLES2Util for possible future use.
BUG=None
Review URL: https://codereview.chromium.org/413953002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285239 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | gpu/command_buffer/common/gles2_cmd_utils.cc | 24 | ||||
-rw-r--r-- | gpu/command_buffer/common/gles2_cmd_utils.h | 2 | ||||
-rw-r--r-- | gpu/command_buffer/service/texture_manager.cc | 96 |
3 files changed, 54 insertions, 68 deletions
diff --git a/gpu/command_buffer/common/gles2_cmd_utils.cc b/gpu/command_buffer/common/gles2_cmd_utils.cc index 8381586..37d1044 100644 --- a/gpu/command_buffer/common/gles2_cmd_utils.cc +++ b/gpu/command_buffer/common/gles2_cmd_utils.cc @@ -594,6 +594,30 @@ uint32 GLES2Util::IndexToGLFaceTarget(int index) { return faces[index]; } +size_t GLES2Util::GLTargetToFaceIndex(uint32 target) { + switch (target) { + case GL_TEXTURE_2D: + case GL_TEXTURE_EXTERNAL_OES: + case GL_TEXTURE_RECTANGLE_ARB: + return 0; + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: + return 0; + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: + return 1; + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: + return 2; + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: + return 3; + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: + return 4; + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: + return 5; + default: + NOTREACHED(); + return 0; + } +} + uint32 GLES2Util::GetPreferredGLReadPixelsFormat(uint32 internal_format) { switch (internal_format) { case GL_RGB16F_EXT: diff --git a/gpu/command_buffer/common/gles2_cmd_utils.h b/gpu/command_buffer/common/gles2_cmd_utils.h index f6432a7..c590b15 100644 --- a/gpu/command_buffer/common/gles2_cmd_utils.h +++ b/gpu/command_buffer/common/gles2_cmd_utils.h @@ -141,6 +141,8 @@ class GLES2_UTILS_EXPORT GLES2Util { static uint32_t IndexToGLFaceTarget(int index); + static size_t GLTargetToFaceIndex(uint32_t target); + static uint32_t GetPreferredGLReadPixelsFormat(uint32_t internal_format); static uint32_t GetPreferredGLReadPixelsType( diff --git a/gpu/command_buffer/service/texture_manager.cc b/gpu/command_buffer/service/texture_manager.cc index 0af36b5..9dc5cc9 100644 --- a/gpu/command_buffer/service/texture_manager.cc +++ b/gpu/command_buffer/service/texture_manager.cc @@ -21,50 +21,6 @@ namespace gpu { namespace gles2 { -static size_t GLTargetToFaceIndex(GLenum target) { - switch (target) { - case GL_TEXTURE_2D: - case GL_TEXTURE_EXTERNAL_OES: - case GL_TEXTURE_RECTANGLE_ARB: - return 0; - case GL_TEXTURE_CUBE_MAP_POSITIVE_X: - return 0; - case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: - return 1; - case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: - return 2; - case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: - return 3; - case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: - return 4; - case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: - return 5; - default: - NOTREACHED(); - return 0; - } -} - -static size_t FaceIndexToGLTarget(size_t index) { - switch (index) { - case 0: - return GL_TEXTURE_CUBE_MAP_POSITIVE_X; - case 1: - return GL_TEXTURE_CUBE_MAP_NEGATIVE_X; - case 2: - return GL_TEXTURE_CUBE_MAP_POSITIVE_Y; - case 3: - return GL_TEXTURE_CUBE_MAP_NEGATIVE_Y; - case 4: - return GL_TEXTURE_CUBE_MAP_POSITIVE_Z; - case 5: - return GL_TEXTURE_CUBE_MAP_NEGATIVE_Z; - default: - NOTREACHED(); - return 0; - } -} - TextureManager::DestructionObserver::DestructionObserver() {} TextureManager::DestructionObserver::~DestructionObserver() {} @@ -257,12 +213,13 @@ void Texture::AddToSignature( DCHECK(feature_info); DCHECK(signature); DCHECK_GE(level, 0); - DCHECK_LT(static_cast<size_t>(GLTargetToFaceIndex(target)), + size_t face_index = GLES2Util::GLTargetToFaceIndex(target); + DCHECK_LT(static_cast<size_t>(face_index), level_infos_.size()); DCHECK_LT(static_cast<size_t>(level), - level_infos_[GLTargetToFaceIndex(target)].size()); + level_infos_[face_index].size()); const Texture::LevelInfo& info = - level_infos_[GLTargetToFaceIndex(target)][level]; + level_infos_[face_index][level]; *signature += base::StringPrintf( "|Texture|target=%04x|level=%d|internal_format=%04x" "|width=%d|height=%d|depth=%d|border=%d|format=%04x|type=%04x" @@ -293,7 +250,7 @@ bool Texture::MarkMipmapsGenerated( GLsizei height = info1.height; GLsizei depth = info1.depth; GLenum target = target_ == GL_TEXTURE_2D ? GL_TEXTURE_2D : - FaceIndexToGLTarget(ii); + GLES2Util::IndexToGLFaceTarget(ii); int num_mips = TextureManager::ComputeMipMapCount(target_, width, height, depth); for (int level = 1; level < num_mips; ++level) { @@ -374,12 +331,13 @@ bool Texture::CanGenerateMipmaps( void Texture::SetLevelCleared(GLenum target, GLint level, bool cleared) { DCHECK_GE(level, 0); - DCHECK_LT(static_cast<size_t>(GLTargetToFaceIndex(target)), + size_t face_index = GLES2Util::GLTargetToFaceIndex(target); + DCHECK_LT(static_cast<size_t>(face_index), level_infos_.size()); DCHECK_LT(static_cast<size_t>(level), - level_infos_[GLTargetToFaceIndex(target)].size()); + level_infos_[face_index].size()); Texture::LevelInfo& info = - level_infos_[GLTargetToFaceIndex(target)][level]; + level_infos_[face_index][level]; UpdateMipCleared(&info, cleared); UpdateCleared(); } @@ -483,15 +441,16 @@ void Texture::SetLevelInfo( GLenum type, bool cleared) { DCHECK_GE(level, 0); - DCHECK_LT(static_cast<size_t>(GLTargetToFaceIndex(target)), + size_t face_index = GLES2Util::GLTargetToFaceIndex(target); + DCHECK_LT(static_cast<size_t>(face_index), level_infos_.size()); DCHECK_LT(static_cast<size_t>(level), - level_infos_[GLTargetToFaceIndex(target)].size()); + level_infos_[face_index].size()); DCHECK_GE(width, 0); DCHECK_GE(height, 0); DCHECK_GE(depth, 0); Texture::LevelInfo& info = - level_infos_[GLTargetToFaceIndex(target)][level]; + level_infos_[face_index][level]; info.target = target; info.level = level; info.internal_format = internal_format; @@ -529,10 +488,10 @@ bool Texture::ValidForTexture( GLsizei width, GLsizei height, GLenum type) const { - size_t face_index = GLTargetToFaceIndex(target); + size_t face_index = GLES2Util::GLTargetToFaceIndex(target); if (level >= 0 && face_index < level_infos_.size() && static_cast<size_t>(level) < level_infos_[face_index].size()) { - const LevelInfo& info = level_infos_[GLTargetToFaceIndex(target)][level]; + const LevelInfo& info = level_infos_[face_index][level]; int32 right; int32 top; return SafeAddInt32(xoffset, width, &right) && @@ -550,10 +509,10 @@ bool Texture::GetLevelSize( GLint target, GLint level, GLsizei* width, GLsizei* height) const { DCHECK(width); DCHECK(height); - size_t face_index = GLTargetToFaceIndex(target); + size_t face_index = GLES2Util::GLTargetToFaceIndex(target); if (level >= 0 && face_index < level_infos_.size() && static_cast<size_t>(level) < level_infos_[face_index].size()) { - const LevelInfo& info = level_infos_[GLTargetToFaceIndex(target)][level]; + const LevelInfo& info = level_infos_[face_index][level]; if (info.target != 0) { *width = info.width; *height = info.height; @@ -567,10 +526,10 @@ bool Texture::GetLevelType( GLint target, GLint level, GLenum* type, GLenum* internal_format) const { DCHECK(type); DCHECK(internal_format); - size_t face_index = GLTargetToFaceIndex(target); + size_t face_index = GLES2Util::GLTargetToFaceIndex(target); if (level >= 0 && face_index < level_infos_.size() && static_cast<size_t>(level) < level_infos_[face_index].size()) { - const LevelInfo& info = level_infos_[GLTargetToFaceIndex(target)][level]; + const LevelInfo& info = level_infos_[face_index][level]; if (info.target != 0) { *type = info.type; *internal_format = info.internal_format; @@ -780,7 +739,7 @@ bool Texture::ClearRenderableLevels(GLES2Decoder* decoder) { } bool Texture::IsLevelCleared(GLenum target, GLint level) const { - size_t face_index = GLTargetToFaceIndex(target); + size_t face_index = GLES2Util::GLTargetToFaceIndex(target); if (face_index >= level_infos_.size() || level >= static_cast<GLint>(level_infos_[face_index].size())) { return true; @@ -802,7 +761,7 @@ void Texture::InitTextureMaxAnisotropyIfNeeded(GLenum target) { bool Texture::ClearLevel( GLES2Decoder* decoder, GLenum target, GLint level) { DCHECK(decoder); - size_t face_index = GLTargetToFaceIndex(target); + size_t face_index = GLES2Util::GLTargetToFaceIndex(target); if (face_index >= level_infos_.size() || level >= static_cast<GLint>(level_infos_[face_index].size())) { return true; @@ -836,12 +795,13 @@ void Texture::SetLevelImage( GLint level, gfx::GLImage* image) { DCHECK_GE(level, 0); - DCHECK_LT(static_cast<size_t>(GLTargetToFaceIndex(target)), + size_t face_index = GLES2Util::GLTargetToFaceIndex(target); + DCHECK_LT(static_cast<size_t>(face_index), level_infos_.size()); DCHECK_LT(static_cast<size_t>(level), - level_infos_[GLTargetToFaceIndex(target)].size()); + level_infos_[face_index].size()); Texture::LevelInfo& info = - level_infos_[GLTargetToFaceIndex(target)][level]; + level_infos_[face_index][level]; DCHECK_EQ(info.target, target); DCHECK_EQ(info.level, level); info.image = image; @@ -855,15 +815,15 @@ gfx::GLImage* Texture::GetLevelImage(GLint target, GLint level) const { return NULL; } - size_t face_index = GLTargetToFaceIndex(target); + size_t face_index = GLES2Util::GLTargetToFaceIndex(target); if (level >= 0 && face_index < level_infos_.size() && static_cast<size_t>(level) < level_infos_[face_index].size()) { - const LevelInfo& info = level_infos_[GLTargetToFaceIndex(target)][level]; + const LevelInfo& info = level_infos_[face_index][level]; if (info.target != 0) { return info.image.get(); } } - return 0; + return NULL; } void Texture::OnWillModifyPixels() { |