diff options
author | Brian Salomon <bsalomon@google.com> | 2018-01-25 14:07:47 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-01-30 01:59:31 +0000 |
commit | e41e1769e76dcce573038d04d90d62043ece7e4f (patch) | |
tree | 3b27304e9d701ea2e04499a70ce6ed5bb1c58790 /src | |
parent | ecd251bbd28dbf52e465aef47f7062f2bb51e43a (diff) |
Add kRGBX_8888, kRGBA_1010102, and kRGBX_1010102 color types. Unused for now.
BUG= skia:7533
Change-Id: I4b3f6b827fd833ba2d07895884d2abc9a3132366
Reviewed-on: https://skia-review.googlesource.com/99781
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/codec/SkWebpCodec.cpp | 3 | ||||
-rw-r--r-- | src/core/SkImageInfo.cpp | 71 | ||||
-rw-r--r-- | src/gpu/SkGr.cpp | 6 | ||||
-rw-r--r-- | src/gpu/gl/GrGLCaps.cpp | 6 | ||||
-rw-r--r-- | src/gpu/vk/GrVkCaps.cpp | 6 | ||||
-rw-r--r-- | src/image/SkImage_Lazy.cpp | 3 |
6 files changed, 56 insertions, 39 deletions
diff --git a/src/codec/SkWebpCodec.cpp b/src/codec/SkWebpCodec.cpp index d9b13e8f06..f1c309acfd 100644 --- a/src/codec/SkWebpCodec.cpp +++ b/src/codec/SkWebpCodec.cpp @@ -339,6 +339,9 @@ static void pick_memory_stages(SkColorType ct, SkRasterPipeline::StockStage* loa case kAlpha_8_SkColorType: case kARGB_4444_SkColorType: case kGray_8_SkColorType: + case kRGB_888x_SkColorType: + case kRGBA_1010102_SkColorType: + case kRGB_101010x_SkColorType: SkASSERT(false); break; case kRGB_565_SkColorType: diff --git a/src/core/SkImageInfo.cpp b/src/core/SkImageInfo.cpp index e5c2d8c776..50d6cca265 100644 --- a/src/core/SkImageInfo.cpp +++ b/src/core/SkImageInfo.cpp @@ -22,51 +22,44 @@ enum Stored_SkColorType { kIndex_8_Stored_SkColorType_DEPRECATED = 6, kGray_8_Stored_SkColorType = 7, kRGBA_F16_Stored_SkColorType = 8, - - kLast_Stored_SkColorType = kRGBA_F16_Stored_SkColorType, -}; - -// Index with Stored_SkColorType -const SkColorType gStoredToLive[] = { - kUnknown_SkColorType, - kAlpha_8_SkColorType, - kRGB_565_SkColorType, - kARGB_4444_SkColorType, - kRGBA_8888_SkColorType, - kBGRA_8888_SkColorType, - kUnknown_SkColorType, // was kIndex_8 - kGray_8_SkColorType, - kRGBA_F16_SkColorType, -}; - -// Index with SkColorType -const Stored_SkColorType gLiveToStored[] = { - kUnknown_Stored_SkColorType, - kAlpha_8_Stored_SkColorType, - kRGB_565_Stored_SkColorType, - kARGB_4444_Stored_SkColorType, - kRGBA_8888_Stored_SkColorType, - kBGRA_8888_Stored_SkColorType, - kGray_8_Stored_SkColorType, - kRGBA_F16_Stored_SkColorType, + kRGB_888x_Stored_SkColorType = 9, + kRGBA_1010102_Stored_SkColorType = 10, + kRGB_101010x_Stored_SkColorType = 11, }; static uint8_t live_to_stored(unsigned ct) { - static_assert(SK_ARRAY_COUNT(gLiveToStored) == (kLastEnum_SkColorType + 1), ""); - - if (ct >= SK_ARRAY_COUNT(gLiveToStored)) { - ct = kUnknown_SkColorType; - } - return gLiveToStored[ct]; + switch (ct) { + case kUnknown_SkColorType: return kUnknown_Stored_SkColorType; + case kAlpha_8_SkColorType: return kAlpha_8_Stored_SkColorType; + case kRGB_565_SkColorType: return kRGB_565_Stored_SkColorType; + case kARGB_4444_SkColorType: return kARGB_4444_Stored_SkColorType; + case kRGBA_8888_SkColorType: return kRGBA_8888_Stored_SkColorType; + case kRGB_888x_SkColorType: return kRGB_888x_Stored_SkColorType; + case kBGRA_8888_SkColorType: return kBGRA_8888_Stored_SkColorType; + case kRGBA_1010102_SkColorType: return kRGBA_1010102_Stored_SkColorType; + case kRGB_101010x_SkColorType: return kRGB_101010x_Stored_SkColorType; + case kGray_8_SkColorType: return kGray_8_Stored_SkColorType; + case kRGBA_F16_SkColorType: return kRGBA_F16_Stored_SkColorType; + } + return kUnknown_Stored_SkColorType; } static SkColorType stored_to_live(unsigned stored) { - static_assert(SK_ARRAY_COUNT(gStoredToLive) == (kLast_Stored_SkColorType + 1), ""); - - if (stored >= SK_ARRAY_COUNT(gStoredToLive)) { - stored = kUnknown_Stored_SkColorType; - } - return gStoredToLive[stored]; + switch (stored) { + case kUnknown_Stored_SkColorType: return kUnknown_SkColorType; + case kAlpha_8_Stored_SkColorType: return kAlpha_8_SkColorType; + case kRGB_565_Stored_SkColorType: return kRGB_565_SkColorType; + case kARGB_4444_Stored_SkColorType: return kARGB_4444_SkColorType; + case kRGBA_8888_Stored_SkColorType: return kRGBA_8888_SkColorType; + case kRGB_888x_Stored_SkColorType: return kRGB_888x_SkColorType; + case kBGRA_8888_Stored_SkColorType: return kBGRA_8888_SkColorType; + case kRGBA_1010102_Stored_SkColorType: return kRGBA_1010102_SkColorType; + case kRGB_101010x_Stored_SkColorType: return kRGB_101010x_SkColorType; + case kIndex_8_Stored_SkColorType_DEPRECATED: return kUnknown_SkColorType; + case kGray_8_Stored_SkColorType: return kGray_8_SkColorType; + case kRGBA_F16_Stored_SkColorType: return kRGBA_F16_SkColorType; + } + return kUnknown_SkColorType; } /////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp index 4d3ce4752a..2c262d8417 100644 --- a/src/gpu/SkGr.cpp +++ b/src/gpu/SkGr.cpp @@ -285,9 +285,15 @@ GrPixelConfig SkImageInfo2GrPixelConfig(const SkColorType type, SkColorSpace* cs ? kSRGBA_8888_GrPixelConfig : kRGBA_8888_GrPixelConfig; // TODO: We're checking for srgbSupport, but we can then end up picking sBGRA as our pixel // config (which may not be supported). We need a better test here. + case kRGB_888x_SkColorType: + return kUnknown_GrPixelConfig; case kBGRA_8888_SkColorType: return (caps.srgbSupport() && cs && cs->gammaCloseToSRGB()) ? kSBGRA_8888_GrPixelConfig : kBGRA_8888_GrPixelConfig; + case kRGBA_1010102_SkColorType: + return kUnknown_GrPixelConfig; + case kRGB_101010x_SkColorType: + return kUnknown_GrPixelConfig; case kGray_8_SkColorType: return kGray_8_GrPixelConfig; case kRGBA_F16_SkColorType: diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp index cfbbf0480f..2c72d18c79 100644 --- a/src/gpu/gl/GrGLCaps.cpp +++ b/src/gpu/gl/GrGLCaps.cpp @@ -2459,6 +2459,8 @@ bool validate_sized_format(GrGLenum format, SkColorType ct, GrPixelConfig* confi *config = kSRGBA_8888_GrPixelConfig; } break; + case kRGB_888x_SkColorType: + return false; case kBGRA_8888_SkColorType: if (GR_GL_RGBA8 == format) { if (kGL_GrGLStandard == standard) { @@ -2472,6 +2474,10 @@ bool validate_sized_format(GrGLenum format, SkColorType ct, GrPixelConfig* confi *config = kSBGRA_8888_GrPixelConfig; } break; + case kRGBA_1010102_SkColorType: + return false; + case kRGB_101010x_SkColorType: + return false; case kGray_8_SkColorType: if (GR_GL_LUMINANCE8 == format) { *config = kGray_8_as_Lum_GrPixelConfig; diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp index 4d9daaef7f..0ae7c00995 100644 --- a/src/gpu/vk/GrVkCaps.cpp +++ b/src/gpu/vk/GrVkCaps.cpp @@ -432,6 +432,8 @@ bool validate_image_info(const GrVkImageInfo* imageInfo, SkColorType ct, GrPixel *config = kSRGBA_8888_GrPixelConfig; } break; + case kRGB_888x_SkColorType: + return false; case kBGRA_8888_SkColorType: if (VK_FORMAT_B8G8R8A8_UNORM == format) { *config = kBGRA_8888_GrPixelConfig; @@ -439,6 +441,10 @@ bool validate_image_info(const GrVkImageInfo* imageInfo, SkColorType ct, GrPixel *config = kSBGRA_8888_GrPixelConfig; } break; + case kRGBA_1010102_SkColorType: + return false; + case kRGB_101010x_SkColorType: + return false; case kGray_8_SkColorType: if (VK_FORMAT_R8_UNORM == format) { *config = kGray_8_as_Red_GrPixelConfig; diff --git a/src/image/SkImage_Lazy.cpp b/src/image/SkImage_Lazy.cpp index e0a5c7caf6..ed4683542f 100644 --- a/src/image/SkImage_Lazy.cpp +++ b/src/image/SkImage_Lazy.cpp @@ -302,6 +302,9 @@ SkImageCacherator::CachedFormat SkImage_Lazy::chooseCacheFormat(SkColorSpace* ds case kAlpha_8_SkColorType: case kRGB_565_SkColorType: case kARGB_4444_SkColorType: + case kRGB_888x_SkColorType: + case kRGBA_1010102_SkColorType: + case kRGB_101010x_SkColorType: // We don't support color space on these formats, so always decode in legacy mode: // TODO: Ask the codec to decode these to something else (at least sRGB 8888)? return kLegacy_CachedFormat; |