aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/SkGr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/SkGr.cpp')
-rw-r--r--src/gpu/SkGr.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index c8839f3f1a..9ee8722afa 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -508,6 +508,19 @@ bool GrPixelConfigToColorType(GrPixelConfig config, SkColorType* ctOut) {
return true;
}
+GrPixelConfig GrRenderableConfigForColorSpace(SkColorSpace* colorSpace) {
+ if (!colorSpace) {
+ return kRGBA_8888_GrPixelConfig;
+ } else if (colorSpace->gammaIsLinear()) {
+ return kRGBA_half_GrPixelConfig;
+ } else if (colorSpace->gammaCloseToSRGB()) {
+ return kSRGBA_8888_GrPixelConfig;
+ } else {
+ SkDEBUGFAIL("No renderable config exists for color space with strange gamma");
+ return kUnknown_GrPixelConfig;
+ }
+}
+
////////////////////////////////////////////////////////////////////////////////////////////////
static inline bool blend_requires_shader(const SkXfermode::Mode mode, bool primitiveIsSrc) {