Index: gpu/command_buffer/service/texture_manager.cc |
diff --git a/gpu/command_buffer/service/texture_manager.cc b/gpu/command_buffer/service/texture_manager.cc |
index f878df3f01f42757b8fdbbe4c7520fc2cc0c782d..73482b09bfe445e806f47abdd6fe763d3b78275b 100644 |
--- a/gpu/command_buffer/service/texture_manager.cc |
+++ b/gpu/command_buffer/service/texture_manager.cc |
@@ -356,17 +356,15 @@ bool Texture::CanGenerateMipmaps( |
// TODO(gman): Check internal_format, format and type. |
for (size_t ii = 0; ii < level_infos_.size(); ++ii) { |
const LevelInfo& info = level_infos_[ii][0]; |
- if ((info.target == 0) || |
- (info.width != first.width) || |
- (info.height != first.height) || |
- (info.depth != 1) || |
+ if ((info.target == 0) || (info.width != first.width) || |
+ (info.height != first.height) || (info.depth != 1) || |
(info.format != first.format) || |
(info.internal_format != first.internal_format) || |
(info.type != first.type) || |
feature_info->validators()->compressed_texture_format.IsValid( |
info.internal_format) || |
- info.image) { |
- return false; |
+ info.image.get()) { |
+ return false; |
} |
} |
return true; |
@@ -793,7 +791,7 @@ gfx::GLImage* Texture::GetLevelImage( |
static_cast<size_t>(level) < level_infos_[face_index].size()) { |
const LevelInfo& info = level_infos_[GLTargetToFaceIndex(target)][level]; |
if (info.target != 0) { |
- return info.image; |
+ return info.image.get(); |
} |
} |
return 0; |
@@ -908,22 +906,46 @@ scoped_refptr<TextureRef> |
scoped_refptr<TextureRef> default_texture( |
TextureRef::Create(this, 0, ids[1])); |
- SetTarget(default_texture, target); |
+ SetTarget(default_texture.get(), target); |
if (needs_faces) { |
for (int ii = 0; ii < GLES2Util::kNumFaces; ++ii) { |
- SetLevelInfo( |
- default_texture, GLES2Util::IndexToGLFaceTarget(ii), |
- 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
+ SetLevelInfo(default_texture.get(), |
+ GLES2Util::IndexToGLFaceTarget(ii), |
+ 0, |
+ GL_RGBA, |
+ 1, |
+ 1, |
+ 1, |
+ 0, |
+ GL_RGBA, |
+ GL_UNSIGNED_BYTE, |
+ true); |
} |
} else { |
if (needs_initialization) { |
- SetLevelInfo(default_texture, |
- GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, |
- GL_RGBA, GL_UNSIGNED_BYTE, true); |
+ SetLevelInfo(default_texture.get(), |
+ GL_TEXTURE_2D, |
+ 0, |
+ GL_RGBA, |
+ 1, |
+ 1, |
+ 1, |
+ 0, |
+ GL_RGBA, |
+ GL_UNSIGNED_BYTE, |
+ true); |
} else { |
- SetLevelInfo( |
- default_texture, GL_TEXTURE_EXTERNAL_OES, 0, |
- GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
+ SetLevelInfo(default_texture.get(), |
+ GL_TEXTURE_EXTERNAL_OES, |
+ 0, |
+ GL_RGBA, |
+ 1, |
+ 1, |
+ 1, |
+ 0, |
+ GL_RGBA, |
+ GL_UNSIGNED_BYTE, |
+ true); |
} |
} |
@@ -952,7 +974,8 @@ bool TextureManager::ValidForTarget( |
void TextureManager::SetTarget(TextureRef* ref, GLenum target) { |
DCHECK(ref); |
- ref->texture()->SetTarget(feature_info_, target, MaxLevelsForTarget(target)); |
+ ref->texture() |
+ ->SetTarget(feature_info_.get(), target, MaxLevelsForTarget(target)); |
} |
void TextureManager::SetStreamTexture(TextureRef* ref, bool stream_texture) { |
@@ -1003,9 +1026,17 @@ void TextureManager::SetLevelInfo( |
Texture* texture = ref->texture(); |
texture->GetMemTracker()->TrackMemFree(texture->estimated_size()); |
- texture->SetLevelInfo( |
- feature_info_, target, level, internal_format, width, height, depth, |
- border, format, type, cleared); |
+ texture->SetLevelInfo(feature_info_.get(), |
+ target, |
+ level, |
+ internal_format, |
+ width, |
+ height, |
+ depth, |
+ border, |
+ format, |
+ type, |
+ cleared); |
texture->GetMemTracker()->TrackMemAlloc(texture->estimated_size()); |
} |
@@ -1033,7 +1064,7 @@ void TextureManager::SetParameter( |
DCHECK(error_state); |
DCHECK(ref); |
Texture* texture = ref->texture(); |
- GLenum result = texture->SetParameter(feature_info_, pname, param); |
+ GLenum result = texture->SetParameter(feature_info_.get(), pname, param); |
if (result != GL_NO_ERROR) { |
if (result == GL_INVALID_ENUM) { |
ERRORSTATE_SET_GL_ERROR_INVALID_ENUM( |
@@ -1055,7 +1086,7 @@ bool TextureManager::MarkMipmapsGenerated(TextureRef* ref) { |
DCHECK(ref); |
Texture* texture = ref->texture(); |
texture->GetMemTracker()->TrackMemFree(texture->estimated_size()); |
- bool result = texture->MarkMipmapsGenerated(feature_info_); |
+ bool result = texture->MarkMipmapsGenerated(feature_info_.get()); |
texture->GetMemTracker()->TrackMemAlloc(texture->estimated_size()); |
return result; |
} |
@@ -1091,7 +1122,7 @@ void TextureManager::StartTracking(TextureRef* ref) { |
num_uncleared_mips_ += texture->num_uncleared_mips(); |
if (!texture->SafeToRenderFrom()) |
++num_unsafe_textures_; |
- if (!texture->CanRender(feature_info_)) |
+ if (!texture->CanRender(feature_info_.get())) |
++num_unrenderable_textures_; |
} |
@@ -1102,7 +1133,7 @@ void TextureManager::StopTracking(TextureRef* ref) { |
Texture* texture = ref->texture(); |
--texture_count_; |
- if (!texture->CanRender(feature_info_)) { |
+ if (!texture->CanRender(feature_info_.get())) { |
DCHECK_NE(0, num_unrenderable_textures_); |
--num_unrenderable_textures_; |
} |
@@ -1151,7 +1182,7 @@ void TextureManager::SetLevelImage( |
GLint level, |
gfx::GLImage* image) { |
DCHECK(ref); |
- ref->texture()->SetLevelImage(feature_info_, target, level, image); |
+ ref->texture()->SetLevelImage(feature_info_.get(), target, level, image); |
} |
void TextureManager::AddToSignature( |