diff options
Diffstat (limited to 'tools/skiaserve')
-rw-r--r-- | tools/skiaserve/Request.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp index c3eaaff387..756f70e24d 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, |