aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2018-03-02 11:01:10 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-03-02 18:19:50 +0000
commit10fc6fddf24878f4f34e75c1bcc11e4499edfcc0 (patch)
treeb3bd1d9263dbcf53c688d412e1e719fa97674b23 /include
parentfde6fa0903b3cedc463c1a753268ffcf30ad7a38 (diff)
Revert "Revert "Add 1010102 support to Ganesh""
This reverts commit ded47a50143470d1acdafa03e878cc7da5608038. Bug: skia: Change-Id: I7d7552e6ccc8591cae91426407ab13b628b93b68 Reviewed-on: https://skia-review.googlesource.com/111760 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
Diffstat (limited to 'include')
-rw-r--r--include/gpu/GrTypes.h5
-rw-r--r--include/private/GrTypesPriv.h87
2 files changed, 58 insertions, 34 deletions
diff --git a/include/gpu/GrTypes.h b/include/gpu/GrTypes.h
index c88d9ee63b..ef7426cbba 100644
--- a/include/gpu/GrTypes.h
+++ b/include/gpu/GrTypes.h
@@ -315,6 +315,11 @@ enum GrPixelConfig {
kSBGRA_8888_GrPixelConfig,
/**
+ * Premultiplied.
+ */
+ kRGBA_1010102_GrPixelConfig,
+
+ /**
* Byte order is r, g, b, a. This color format is 32 bits per channel
*/
kRGBA_float_GrPixelConfig,
diff --git a/include/private/GrTypesPriv.h b/include/private/GrTypesPriv.h
index 1c28c400d0..c7a7296639 100644
--- a/include/private/GrTypesPriv.h
+++ b/include/private/GrTypesPriv.h
@@ -797,6 +797,7 @@ static inline GrSRGBEncoded GrPixelConfigIsSRGBEncoded(GrPixelConfig config) {
case kRGBA_4444_GrPixelConfig:
case kRGBA_8888_GrPixelConfig:
case kBGRA_8888_GrPixelConfig:
+ case kRGBA_1010102_GrPixelConfig:
case kRGBA_float_GrPixelConfig:
case kRG_float_GrPixelConfig:
case kAlpha_half_GrPixelConfig:
@@ -832,6 +833,7 @@ static inline GrPixelConfig GrPixelConfigSwapRAndB(GrPixelConfig config) {
case kGray_8_as_Red_GrPixelConfig:
case kRGB_565_GrPixelConfig:
case kRGBA_4444_GrPixelConfig:
+ case kRGBA_1010102_GrPixelConfig:
case kRGBA_float_GrPixelConfig:
case kRG_float_GrPixelConfig:
case kAlpha_half_GrPixelConfig:
@@ -861,6 +863,7 @@ static inline size_t GrBytesPerPixel(GrPixelConfig config) {
case kBGRA_8888_GrPixelConfig:
case kSRGBA_8888_GrPixelConfig:
case kSBGRA_8888_GrPixelConfig:
+ case kRGBA_1010102_GrPixelConfig:
return 4;
case kRGBA_half_GrPixelConfig:
return 8;
@@ -893,6 +896,7 @@ static inline bool GrPixelConfigIsOpaque(GrPixelConfig config) {
case kBGRA_8888_GrPixelConfig:
case kSRGBA_8888_GrPixelConfig:
case kSBGRA_8888_GrPixelConfig:
+ case kRGBA_1010102_GrPixelConfig:
case kRGBA_half_GrPixelConfig:
case kRGBA_float_GrPixelConfig:
case kUnknown_GrPixelConfig:
@@ -920,6 +924,7 @@ static inline bool GrPixelConfigIsAlphaOnly(GrPixelConfig config) {
case kBGRA_8888_GrPixelConfig:
case kSRGBA_8888_GrPixelConfig:
case kSBGRA_8888_GrPixelConfig:
+ case kRGBA_1010102_GrPixelConfig:
case kRGBA_float_GrPixelConfig:
case kRG_float_GrPixelConfig:
case kRGBA_half_GrPixelConfig:
@@ -950,6 +955,7 @@ static inline bool GrPixelConfigIsFloatingPoint(GrPixelConfig config) {
case kBGRA_8888_GrPixelConfig:
case kSRGBA_8888_GrPixelConfig:
case kSBGRA_8888_GrPixelConfig:
+ case kRGBA_1010102_GrPixelConfig:
return false;
}
SK_ABORT("Invalid pixel config");
@@ -970,6 +976,7 @@ static inline bool GrPixelConfigIsUnorm(GrPixelConfig config) {
case kBGRA_8888_GrPixelConfig:
case kSRGBA_8888_GrPixelConfig:
case kSBGRA_8888_GrPixelConfig:
+ case kRGBA_1010102_GrPixelConfig:
return true;
case kUnknown_GrPixelConfig:
case kAlpha_half_GrPixelConfig:
@@ -1008,6 +1015,7 @@ static inline GrSLPrecision GrSLSamplerPrecision(GrPixelConfig config) {
case kAlpha_half_GrPixelConfig:
case kAlpha_half_as_Red_GrPixelConfig:
case kRGBA_half_GrPixelConfig:
+ case kRGBA_1010102_GrPixelConfig:
return kMedium_GrSLPrecision;
}
SK_ABORT("Unexpected type");
@@ -1033,6 +1041,7 @@ enum class GrColorType {
kABGR_4444, // This name differs from SkColorType. kARGB_4444_SkColorType is misnamed.
kRGBA_8888,
kBGRA_8888,
+ kRGBA_1010102,
kGray_8,
kAlpha_F16,
kRGBA_F16,
@@ -1042,17 +1051,18 @@ enum class GrColorType {
static inline SkColorType GrColorTypeToSkColorType(GrColorType ct) {
switch (ct) {
- case GrColorType::kUnknown: return kUnknown_SkColorType;
- case GrColorType::kAlpha_8: return kAlpha_8_SkColorType;
- case GrColorType::kRGB_565: return kRGB_565_SkColorType;
- case GrColorType::kABGR_4444: return kARGB_4444_SkColorType;
- case GrColorType::kRGBA_8888: return kRGBA_8888_SkColorType;
- case GrColorType::kBGRA_8888: return kBGRA_8888_SkColorType;
- case GrColorType::kGray_8: return kGray_8_SkColorType;
- case GrColorType::kAlpha_F16: return kUnknown_SkColorType;
- case GrColorType::kRGBA_F16: return kRGBA_F16_SkColorType;
- case GrColorType::kRG_F32: return kUnknown_SkColorType;
- case GrColorType::kRGBA_F32: return kUnknown_SkColorType;
+ case GrColorType::kUnknown: return kUnknown_SkColorType;
+ case GrColorType::kAlpha_8: return kAlpha_8_SkColorType;
+ case GrColorType::kRGB_565: return kRGB_565_SkColorType;
+ case GrColorType::kABGR_4444: return kARGB_4444_SkColorType;
+ case GrColorType::kRGBA_8888: return kRGBA_8888_SkColorType;
+ case GrColorType::kBGRA_8888: return kBGRA_8888_SkColorType;
+ case GrColorType::kRGBA_1010102: return kRGBA_1010102_SkColorType;
+ case GrColorType::kGray_8: return kGray_8_SkColorType;
+ case GrColorType::kAlpha_F16: return kUnknown_SkColorType;
+ case GrColorType::kRGBA_F16: return kRGBA_F16_SkColorType;
+ case GrColorType::kRG_F32: return kUnknown_SkColorType;
+ case GrColorType::kRGBA_F32: return kUnknown_SkColorType;
}
SK_ABORT("Invalid GrColorType");
return kUnknown_SkColorType;
@@ -1069,7 +1079,7 @@ static inline GrColorType SkColorTypeToGrColorType(SkColorType ct) {
case kRGB_888x_SkColorType: return GrColorType::kUnknown;
case kGray_8_SkColorType: return GrColorType::kGray_8;
case kRGBA_F16_SkColorType: return GrColorType::kRGBA_F16;
- case kRGBA_1010102_SkColorType: return GrColorType::kUnknown;
+ case kRGBA_1010102_SkColorType: return GrColorType::kRGBA_1010102;
case kRGB_101010x_SkColorType: return GrColorType::kUnknown;
}
SK_ABORT("Invalid SkColorType");
@@ -1078,17 +1088,18 @@ static inline GrColorType SkColorTypeToGrColorType(SkColorType ct) {
static inline int GrColorTypeBytesPerPixel(GrColorType ct) {
switch (ct) {
- case GrColorType::kUnknown: return 0;
- case GrColorType::kAlpha_8: return 1;
- case GrColorType::kRGB_565: return 2;
- case GrColorType::kABGR_4444: return 2;
- case GrColorType::kRGBA_8888: return 4;
- case GrColorType::kBGRA_8888: return 4;
- case GrColorType::kGray_8: return 1;
- case GrColorType::kAlpha_F16: return 2;
- case GrColorType::kRGBA_F16: return 8;
- case GrColorType::kRG_F32: return 8;
- case GrColorType::kRGBA_F32: return 16;
+ case GrColorType::kUnknown: return 0;
+ case GrColorType::kAlpha_8: return 1;
+ case GrColorType::kRGB_565: return 2;
+ case GrColorType::kABGR_4444: return 2;
+ case GrColorType::kRGBA_8888: return 4;
+ case GrColorType::kBGRA_8888: return 4;
+ case GrColorType::kRGBA_1010102: return 4;
+ case GrColorType::kGray_8: return 1;
+ case GrColorType::kAlpha_F16: return 2;
+ case GrColorType::kRGBA_F16: return 8;
+ case GrColorType::kRG_F32: return 8;
+ case GrColorType::kRGBA_F32: return 16;
}
SK_ABORT("Invalid GrColorType");
return 0;
@@ -1096,17 +1107,18 @@ static inline int GrColorTypeBytesPerPixel(GrColorType ct) {
static inline int GrColorTypeIsAlphaOnly(GrColorType ct) {
switch (ct) {
- case GrColorType::kUnknown: return false;
- case GrColorType::kAlpha_8: return true;
- case GrColorType::kRGB_565: return false;
- case GrColorType::kABGR_4444: return false;
- case GrColorType::kRGBA_8888: return false;
- case GrColorType::kBGRA_8888: return false;
- case GrColorType::kGray_8: return false;
- case GrColorType::kAlpha_F16: return true;
- case GrColorType::kRGBA_F16: return false;
- case GrColorType::kRG_F32: return false;
- case GrColorType::kRGBA_F32: return false;
+ case GrColorType::kUnknown: return false;
+ case GrColorType::kAlpha_8: return true;
+ case GrColorType::kRGB_565: return false;
+ case GrColorType::kABGR_4444: return false;
+ case GrColorType::kRGBA_8888: return false;
+ case GrColorType::kBGRA_8888: return false;
+ case GrColorType::kRGBA_1010102: return false;
+ case GrColorType::kGray_8: return false;
+ case GrColorType::kAlpha_F16: return true;
+ case GrColorType::kRGBA_F16: return false;
+ case GrColorType::kRG_F32: return false;
+ case GrColorType::kRGBA_F32: return false;
}
SK_ABORT("Invalid GrColorType");
return false;
@@ -1142,6 +1154,9 @@ static inline GrColorType GrPixelConfigToColorTypeAndEncoding(GrPixelConfig conf
case kSBGRA_8888_GrPixelConfig:
*srgbEncoded = GrSRGBEncoded::kYes;
return GrColorType::kBGRA_8888;
+ case kRGBA_1010102_GrPixelConfig:
+ *srgbEncoded = GrSRGBEncoded::kNo;
+ return GrColorType::kRGBA_1010102;
case kRGBA_float_GrPixelConfig:
*srgbEncoded = GrSRGBEncoded::kNo;
return GrColorType::kRGBA_F32;
@@ -1208,6 +1223,10 @@ static inline GrPixelConfig GrColorTypeToPixelConfig(GrColorType config,
return (GrSRGBEncoded::kYes == srgbEncoded) ? kSBGRA_8888_GrPixelConfig
: kBGRA_8888_GrPixelConfig;
+ case GrColorType::kRGBA_1010102:
+ return (GrSRGBEncoded::kYes == srgbEncoded) ? kUnknown_GrPixelConfig
+ : kRGBA_1010102_GrPixelConfig;
+
case GrColorType::kRGBA_F32:
return (GrSRGBEncoded::kYes == srgbEncoded) ? kUnknown_GrPixelConfig
: kRGBA_float_GrPixelConfig;