diff options
author | Brian Osman <brianosman@google.com> | 2018-06-18 10:20:32 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-18 14:55:48 +0000 |
commit | 3567c14a41cd55860fcc836af32d8748c1e3c856 (patch) | |
tree | 8a9428dd0c25e3dcee1ccf2e6008c1f665dcaa26 /src/gpu/GrColorSpaceInfo.cpp | |
parent | 1bb47df4fc8edf62b0463d088214ed1ffb909ca9 (diff) |
Implement nonlinear (as-encoded) blending in GrColorSpaceXform
Make GrColorSpaceXform a wrapper over SkColorSpaceXformSteps, and
removed the xform cache. The shader code does up to five steps to
correctly transform (unpremul, linearize, gamut, encode, premul).
Remove all clamping, so we can support sRGB encoded F16.
Most of https://skia-review.googlesource.com/c/skia/+/132090,
except that GrNonlinearColorSpaceXformEffect is still used for
SkColorSpaceXformCanvas and a few other places. As a result,
this doesn't trigger any layout test failures.
Change-Id: I789a5e327a419b5f7634c00d1b355912046c07b7
Reviewed-on: https://skia-review.googlesource.com/135326
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/gpu/GrColorSpaceInfo.cpp')
-rw-r--r-- | src/gpu/GrColorSpaceInfo.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gpu/GrColorSpaceInfo.cpp b/src/gpu/GrColorSpaceInfo.cpp index 73218b26c5..60c848b8cf 100644 --- a/src/gpu/GrColorSpaceInfo.cpp +++ b/src/gpu/GrColorSpaceInfo.cpp @@ -17,7 +17,8 @@ GrColorSpaceXform* GrColorSpaceInfo::colorSpaceXformFromSRGB() const { if (!fInitializedColorSpaceXformFromSRGB) { // sRGB sources are very common (SkColor, etc...), so we cache that transformation auto srgbColorSpace = SkColorSpace::MakeSRGB(); - fColorXformFromSRGB = GrColorSpaceXform::Make(srgbColorSpace.get(), fColorSpace.get()); + fColorXformFromSRGB = GrColorSpaceXform::MakeUnpremulToUnpremul(srgbColorSpace.get(), + fColorSpace.get()); fInitializedColorSpaceXformFromSRGB = true; } // You can't be color-space aware in legacy mode |