Chromium Code Reviews| Index: cc/resources/resource_format.cc |
| diff --git a/cc/resources/resource_format.cc b/cc/resources/resource_format.cc |
| index 45581b800f140f3b6725a6bae4959686e66f03d0..8ddef5d617d1c8613e6beaa84992319b115b2378 100644 |
| --- a/cc/resources/resource_format.cc |
| +++ b/cc/resources/resource_format.cc |
| @@ -4,6 +4,9 @@ |
| #include "cc/resources/resource_format.h" |
| +#include "third_party/khronos/GLES2/gl2.h" |
| +#include "third_party/khronos/GLES2/gl2ext.h" |
| + |
| namespace cc { |
| SkColorType ResourceFormatToSkColorType(ResourceFormat format) { |
| @@ -25,4 +28,57 @@ SkColorType ResourceFormatToSkColorType(ResourceFormat format) { |
| return kN32_SkColorType; |
| } |
| +int BitsPerPixel(ResourceFormat format) { |
| + switch (format) { |
| + case BGRA_8888: |
| + case RGBA_8888: |
| + return 32; |
| + case RGBA_4444: |
| + case RGB_565: |
| + return 16; |
| + case ALPHA_8: |
| + case LUMINANCE_8: |
| + case RED_8: |
| + return 8; |
| + case ETC1: |
| + return 4; |
| + } |
| + NOTREACHED(); |
| + return 0; |
| +} |
| + |
| +GLenum GLDataType(ResourceFormat format) { |
| + DCHECK_LE(format, RESOURCE_FORMAT_MAX); |
| + static const GLenum format_gl_data_type[RESOURCE_FORMAT_MAX + 1] = { |
|
ericrk
2015/07/24 20:03:52
There's actually no warning/error generated if you
prashant.n
2015/07/25 07:15:43
Sounds good. I'll incorporate this.
|
| + GL_UNSIGNED_BYTE, // RGBA_8888 |
| + GL_UNSIGNED_SHORT_4_4_4_4, // RGBA_4444 |
| + GL_UNSIGNED_BYTE, // BGRA_8888 |
| + GL_UNSIGNED_BYTE, // ALPHA_8 |
| + GL_UNSIGNED_BYTE, // LUMINANCE_8 |
| + GL_UNSIGNED_SHORT_5_6_5, // RGB_565, |
| + GL_UNSIGNED_BYTE, // ETC1 |
| + GL_UNSIGNED_BYTE // RED_8 |
| + }; |
| + return format_gl_data_type[format]; |
| +} |
| + |
| +GLenum GLDataFormat(ResourceFormat format) { |
| + DCHECK_LE(format, RESOURCE_FORMAT_MAX); |
| + static const GLenum format_gl_data_format[RESOURCE_FORMAT_MAX + 1] = { |
| + GL_RGBA, // RGBA_8888 |
| + GL_RGBA, // RGBA_4444 |
| + GL_BGRA_EXT, // BGRA_8888 |
| + GL_ALPHA, // ALPHA_8 |
| + GL_LUMINANCE, // LUMINANCE_8 |
| + GL_RGB, // RGB_565 |
| + GL_ETC1_RGB8_OES, // ETC1 |
| + GL_RED_EXT // RED_8 |
| + }; |
| + return format_gl_data_format[format]; |
| +} |
| + |
| +GLenum GLInternalFormat(ResourceFormat format) { |
| + return GLDataFormat(format); |
| +} |
| + |
| } // namespace cc |