aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2018-01-25 14:07:47 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-30 01:59:31 +0000
commite41e1769e76dcce573038d04d90d62043ece7e4f (patch)
tree3b27304e9d701ea2e04499a70ce6ed5bb1c58790 /src
parentecd251bbd28dbf52e465aef47f7062f2bb51e43a (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.cpp3
-rw-r--r--src/core/SkImageInfo.cpp71
-rw-r--r--src/gpu/SkGr.cpp6
-rw-r--r--src/gpu/gl/GrGLCaps.cpp6
-rw-r--r--src/gpu/vk/GrVkCaps.cpp6
-rw-r--r--src/image/SkImage_Lazy.cpp3
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;