Chromium Code Reviews| Index: include/gpu/GrTypes.h |
| diff --git a/include/gpu/GrTypes.h b/include/gpu/GrTypes.h |
| index 3def9aaa993df434948afe15cf8263d655f42776..409d26080209f7e575fce61100307e943144fb77 100644 |
| --- a/include/gpu/GrTypes.h |
| +++ b/include/gpu/GrTypes.h |
| @@ -218,6 +218,10 @@ enum GrPixelConfig { |
| */ |
| kSRGBA_8888_GrPixelConfig, |
| /** |
| + * Premultiplied and sRGB. Byte order is b,g,r,a. |
| + */ |
| + kSBGRA_8888_GrPixelConfig, |
| + /** |
| * ETC1 Compressed Data |
| */ |
| kETC1_GrPixelConfig, |
| @@ -268,8 +272,10 @@ static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; |
| #endif |
| #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) |
| static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; |
| + static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSBGRA_8888_GrPixelConfig; |
| #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) |
| static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig; |
| + static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSRGBA_8888_GrPixelConfig; |
| #else |
| #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format." |
| #endif |
| @@ -311,6 +317,7 @@ static inline bool GrPixelConfigIs8888(GrPixelConfig config) { |
| case kRGBA_8888_GrPixelConfig: |
| case kBGRA_8888_GrPixelConfig: |
| case kSRGBA_8888_GrPixelConfig: |
| + case kSBGRA_8888_GrPixelConfig: |
| return true; |
| default: |
| return false; |
| @@ -322,6 +329,7 @@ static inline bool GrPixelConfigIs8888(GrPixelConfig config) { |
| static inline bool GrPixelConfigIsSRGB(GrPixelConfig config) { |
| switch (config) { |
| case kSRGBA_8888_GrPixelConfig: |
| + case kSBGRA_8888_GrPixelConfig: |
| return true; |
| default: |
| return false; |
| @@ -336,6 +344,10 @@ static inline GrPixelConfig GrPixelConfigSwapRAndB(GrPixelConfig config) { |
| return kRGBA_8888_GrPixelConfig; |
| case kRGBA_8888_GrPixelConfig: |
| return kBGRA_8888_GrPixelConfig; |
| + case kSBGRA_8888_GrPixelConfig: |
| + return kSRGBA_8888_GrPixelConfig; |
| + case kSRGBA_8888_GrPixelConfig: |
| + return kSBGRA_8888_GrPixelConfig; |
| default: |
| return kUnknown_GrPixelConfig; |
| } |
| @@ -353,6 +365,7 @@ static inline size_t GrBytesPerPixel(GrPixelConfig config) { |
| case kRGBA_8888_GrPixelConfig: |
| case kBGRA_8888_GrPixelConfig: |
| case kSRGBA_8888_GrPixelConfig: |
| + case kSBGRA_8888_GrPixelConfig: |
| return 4; |
| case kRGBA_half_GrPixelConfig: |
| return 8; |
| @@ -387,6 +400,25 @@ static inline bool GrPixelConfigIsAlphaOnly(GrPixelConfig config) { |
| } |
| /** |
| + * What to do with sRGB source data for a particular device? |
| + */ |
| +enum GrSRGBPolicy { |
| + kUnknown_GrSRGBPolicy, |
|
bsalomon
2016/03/17 14:54:47
What does unknown mean? Can we get away with just
Brian Osman
2016/03/17 15:01:21
Currently, the only use of the params override is
|
| + kAllowSRGB_GrSRGBPolicy, |
| + kSuppressSRGB_GrSRGBPolicy, |
| +}; |
| + |
| +static inline GrSRGBPolicy GrPixelConfigSRGBPolicy(GrPixelConfig config) { |
| + switch (config) { |
| + case kRGBA_8888_GrPixelConfig: |
| + case kBGRA_8888_GrPixelConfig: |
| + return kSuppressSRGB_GrSRGBPolicy; |
| + default: |
| + return kAllowSRGB_GrSRGBPolicy; |
| + } |
| +} |
| + |
| +/** |
| * Optional bitfield flags that can be set on GrSurfaceDesc (below). |
| */ |
| enum GrSurfaceFlags { |