Index: cc/resources/resource_format.cc |
diff --git a/cc/resources/resource_format.cc b/cc/resources/resource_format.cc |
index e11c097b04fb53cf58fc4706ddaa7ecb60beb0a4..fc2d71639c87c982cca0e5cfe0078ff7653a9f80 100644 |
--- a/cc/resources/resource_format.cc |
+++ b/cc/resources/resource_format.cc |
@@ -28,6 +28,28 @@ SkColorType ResourceFormatToSkColorType(ResourceFormat format) { |
return kN32_SkColorType; |
} |
+ResourceFormat SkColorTypeToResourceFormat(SkColorType color_type) { |
+ switch (color_type) { |
+ case kARGB_4444_SkColorType: |
+ return RGBA_4444; |
+ case kAlpha_8_SkColorType: |
+ return ALPHA_8; |
+ case kRGB_565_SkColorType: |
+ return RGB_565; |
+ case kRGBA_8888_SkColorType: |
+ return RGBA_8888; |
+ case kBGRA_8888_SkColorType: |
+ return BGRA_8888; |
+ case kGray_8_SkColorType: |
+ case kIndex_8_SkColorType: |
+ case kUnknown_SkColorType: |
+ NOTREACHED(); |
+ break; |
+ } |
+ NOTREACHED(); |
+ return RGBA_8888; |
+} |
+ |
int BitsPerPixel(ResourceFormat format) { |
switch (format) { |
case BGRA_8888: |
@@ -97,14 +119,62 @@ gfx::BufferFormat BufferFormat(ResourceFormat format) { |
return gfx::BufferFormat::RGBA_4444; |
case RGBA_8888: |
return gfx::BufferFormat::RGBA_8888; |
+ case ETC1: |
+ return gfx::BufferFormat::ETC1; |
case ALPHA_8: |
case LUMINANCE_8: |
case RGB_565: |
- case ETC1: |
break; |
} |
NOTREACHED(); |
return gfx::BufferFormat::RGBA_8888; |
} |
+ResourceFormat BufferFormatToResourceFormat(gfx::BufferFormat format) { |
+ switch (format) { |
+ case gfx::BufferFormat::RGBA_4444: |
+ return RGBA_4444; |
+ case gfx::BufferFormat::RGBA_8888: |
+ return RGBA_8888; |
+ case gfx::BufferFormat::BGRA_8888: |
+ return BGRA_8888; |
+ case gfx::BufferFormat::ETC1: |
+ return ETC1; |
+ case gfx::BufferFormat::ATC: |
+ case gfx::BufferFormat::ATCIA: |
+ case gfx::BufferFormat::DXT1: |
+ case gfx::BufferFormat::DXT5: |
+ case gfx::BufferFormat::R_8: |
+ case gfx::BufferFormat::RGBX_8888: |
+ case gfx::BufferFormat::BGRX_8888: |
+ case gfx::BufferFormat::YUV_420: |
+ case gfx::BufferFormat::YUV_420_BIPLANAR: |
+ case gfx::BufferFormat::UYVY_422: |
+ break; |
+ } |
+ NOTREACHED(); |
+ return RGBA_8888; |
+} |
+ |
+bool IsResourceFormatCompressed(ResourceFormat format) { |
+ return format == ETC1; |
+} |
+ |
+bool DoesResourceFormatSupportAlpha(ResourceFormat format) { |
+ switch (format) { |
+ case RGBA_4444: |
+ case RGBA_8888: |
+ case BGRA_8888: |
+ case ALPHA_8: |
+ return true; |
+ case LUMINANCE_8: |
+ case RGB_565: |
+ case ETC1: |
+ case RED_8: |
+ return false; |
+ } |
+ NOTREACHED(); |
+ return false; |
+} |
+ |
} // namespace cc |