Index: cc/resources/resource_provider.cc |
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc |
index 42eda06e3e5863520b709e78d1df3256e52dc008..fc85129702aa10d9998c0d11a0ea6c69e97f9c5c 100644 |
--- a/cc/resources/resource_provider.cc |
+++ b/cc/resources/resource_provider.cc |
@@ -92,6 +92,7 @@ GLenum TextureToStorageFormat(ResourceFormat format) { |
case RGB_565: |
case ETC1: |
case RED_8: |
+ case RG_88: |
case LUMINANCE_F16: |
NOTREACHED(); |
break; |
@@ -112,6 +113,7 @@ bool IsFormatSupportedForStorage(ResourceFormat format, bool use_bgra) { |
case RGB_565: |
case ETC1: |
case RED_8: |
+ case RG_88: |
case LUMINANCE_F16: |
return false; |
} |
@@ -411,7 +413,6 @@ ResourceProvider::ResourceProvider( |
use_texture_format_bgra_(false), |
use_texture_usage_hint_(false), |
use_compressed_texture_etc1_(false), |
- yuv_resource_format_(LUMINANCE_8), |
max_texture_size_(0), |
best_texture_format_(RGBA_8888), |
best_render_buffer_format_(RGBA_8888), |
@@ -449,15 +450,6 @@ ResourceProvider::ResourceProvider( |
use_texture_format_bgra_ = caps.texture_format_bgra8888; |
use_texture_usage_hint_ = caps.texture_usage; |
use_compressed_texture_etc1_ = caps.texture_format_etc1; |
- |
- if (caps.disable_one_component_textures) { |
- yuv_resource_format_ = yuv_highbit_resource_format_ = RGBA_8888; |
- } else { |
- yuv_resource_format_ = caps.texture_rg ? RED_8 : LUMINANCE_8; |
- yuv_highbit_resource_format_ = |
- caps.texture_half_float_linear ? LUMINANCE_F16 : yuv_resource_format_; |
- } |
- |
use_sync_query_ = caps.sync_query; |
GLES2Interface* gl = ContextGL(); |
@@ -523,6 +515,7 @@ bool ResourceProvider::IsResourceFormatSupported(ResourceFormat format) const { |
case ETC1: |
return caps.texture_format_etc1; |
case RED_8: |
+ case RG_88: |
return caps.texture_rg; |
case LUMINANCE_F16: |
return caps.texture_half_float_linear; |
@@ -549,14 +542,6 @@ void ResourceProvider::LoseResourceForTesting(ResourceId id) { |
resource->lost = true; |
} |
-ResourceFormat ResourceProvider::YuvResourceFormat(int bits) const { |
- if (bits > 8) { |
- return yuv_highbit_resource_format_; |
- } else { |
- return yuv_resource_format_; |
- } |
-} |
- |
ResourceId ResourceProvider::CreateResource( |
const gfx::Size& size, |
TextureHint hint, |
@@ -656,6 +641,7 @@ ResourceId ResourceProvider::CreateBitmap(const gfx::Size& size, |
ResourceId ResourceProvider::CreateResourceFromTextureMailbox( |
const TextureMailbox& mailbox, |
+ ResourceFormat format, |
std::unique_ptr<SingleReleaseCallbackImpl> release_callback_impl, |
bool read_lock_fences_enabled) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
@@ -665,11 +651,10 @@ ResourceId ResourceProvider::CreateResourceFromTextureMailbox( |
Resource* resource = nullptr; |
if (mailbox.IsTexture()) { |
resource = InsertResource( |
- id, |
- Resource(0, mailbox.size_in_pixels(), Resource::EXTERNAL, |
- mailbox.target(), |
- mailbox.nearest_neighbor() ? GL_NEAREST : GL_LINEAR, |
- TEXTURE_HINT_IMMUTABLE, RESOURCE_TYPE_GL_TEXTURE, RGBA_8888)); |
+ id, Resource(0, mailbox.size_in_pixels(), Resource::EXTERNAL, |
+ mailbox.target(), |
+ mailbox.nearest_neighbor() ? GL_NEAREST : GL_LINEAR, |
+ TEXTURE_HINT_IMMUTABLE, RESOURCE_TYPE_GL_TEXTURE, format)); |
} else { |
DCHECK(mailbox.IsSharedMemory()); |
SharedBitmap* shared_bitmap = mailbox.shared_bitmap(); |
@@ -678,6 +663,7 @@ ResourceId ResourceProvider::CreateResourceFromTextureMailbox( |
resource = InsertResource( |
id, Resource(pixels, shared_bitmap, mailbox.size_in_pixels(), |
Resource::EXTERNAL, GL_LINEAR)); |
+ resource->format = format; |
} |
resource->allocated = true; |
resource->set_mailbox(mailbox); |
@@ -692,6 +678,15 @@ ResourceId ResourceProvider::CreateResourceFromTextureMailbox( |
return id; |
} |
+// TODO(dswang): remove this method. crbug.com/624436 |
+ResourceId ResourceProvider::CreateResourceFromTextureMailbox( |
+ const TextureMailbox& mailbox, |
+ std::unique_ptr<SingleReleaseCallbackImpl> release_callback_impl, |
+ bool read_lock_fences_enabled) { |
+ return CreateResourceFromTextureMailbox( |
+ mailbox, RGBA_8888, std::move(release_callback_impl), false); |
+} |
+ |
ResourceId ResourceProvider::CreateResourceFromTextureMailbox( |
const TextureMailbox& mailbox, |
std::unique_ptr<SingleReleaseCallbackImpl> release_callback_impl) { |
@@ -825,6 +820,10 @@ GLenum ResourceProvider::GetResourceTextureTarget(ResourceId id) { |
return GetResource(id)->target; |
} |
+ResourceFormat ResourceProvider::GetResourceFormat(ResourceId id) { |
+ return GetResource(id)->format; |
+} |
+ |
bool ResourceProvider::IsImmutable(ResourceId id) { |
if (IsGpuResourceType(default_resource_type_)) { |
return GetTextureHint(id) == TEXTURE_HINT_IMMUTABLE; |