| Index: cc/resources/resource_provider.cc
|
| diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
|
| index 2ebeb8d37944913bcf16b76d7e0a3a218dbddf1d..a027db8814a34f7ab4e5c11d59c4f6963b370948 100644
|
| --- a/cc/resources/resource_provider.cc
|
| +++ b/cc/resources/resource_provider.cc
|
| @@ -445,10 +445,15 @@ 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;
|
| - yuv_resource_format_ = caps.texture_rg ? RED_8 : LUMINANCE_8;
|
| - yuv_highbit_resource_format_ = yuv_resource_format_;
|
| - if (caps.texture_half_float_linear)
|
| - yuv_highbit_resource_format_ = LUMINANCE_F16;
|
| +
|
| + 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();
|
| @@ -816,6 +821,16 @@ GLenum ResourceProvider::GetResourceTextureTarget(ResourceId id) {
|
| return GetResource(id)->target;
|
| }
|
|
|
| +bool ResourceProvider::IsImmutable(ResourceId id) {
|
| + if (IsGpuResourceType(default_resource_type_)) {
|
| + return GetTextureHint(id) == TEXTURE_HINT_IMMUTABLE;
|
| + } else {
|
| + // Software resources are immutable; they cannot change format or be
|
| + // resized.
|
| + return true;
|
| + }
|
| +}
|
| +
|
| ResourceProvider::TextureHint ResourceProvider::GetTextureHint(ResourceId id) {
|
| return GetResource(id)->hint;
|
| }
|
|
|