Index: tools/skiaserve/Request.cpp |
diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp |
index c3eaaff387a3f90e45b497876372c26f87c05401..756f70e24d97640d53a8139c5ebad3684a8cf705 100644 |
--- a/tools/skiaserve/Request.cpp |
+++ b/tools/skiaserve/Request.cpp |
@@ -159,14 +159,14 @@ namespace { |
struct ColorAndProfile { |
SkColorType fColorType; |
- SkColorProfileType fProfileType; |
+ bool fSRGB; |
bool fGammaCorrect; |
}; |
ColorAndProfile ColorModes[] = { |
- { kN32_SkColorType, kLinear_SkColorProfileType, false }, |
- { kN32_SkColorType, kSRGB_SkColorProfileType, true }, |
- { kRGBA_F16_SkColorType, kLinear_SkColorProfileType, true }, |
+ { kN32_SkColorType, false, false }, |
+ { kN32_SkColorType, true, true }, |
+ { kRGBA_F16_SkColorType, false, true }, |
}; |
} |
@@ -174,8 +174,9 @@ ColorAndProfile ColorModes[] = { |
SkSurface* Request::createCPUSurface() { |
SkIRect bounds = this->getBounds(); |
ColorAndProfile cap = ColorModes[fColorMode]; |
+ auto srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); |
SkImageInfo info = SkImageInfo::Make(bounds.width(), bounds.height(), cap.fColorType, |
- kPremul_SkAlphaType, cap.fProfileType); |
+ kPremul_SkAlphaType, cap.fSRGB ? srgbColorSpace : nullptr); |
uint32_t flags = cap.fGammaCorrect ? SkSurfaceProps::kGammaCorrect_Flag : 0; |
SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType); |
return SkSurface::MakeRaster(info, &props).release(); |
@@ -185,8 +186,9 @@ SkSurface* Request::createGPUSurface() { |
GrContext* context = this->getContext(); |
SkIRect bounds = this->getBounds(); |
ColorAndProfile cap = ColorModes[fColorMode]; |
+ auto srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); |
SkImageInfo info = SkImageInfo::Make(bounds.width(), bounds.height(), cap.fColorType, |
- kPremul_SkAlphaType, cap.fProfileType); |
+ kPremul_SkAlphaType, cap.fSRGB ? srgbColorSpace : nullptr); |
uint32_t flags = cap.fGammaCorrect ? SkSurfaceProps::kGammaCorrect_Flag : 0; |
SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType); |
SkSurface* surface = SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, info, 0, |