SkColorSpaceXformer: Add SkShader::makeColorSpace()
authorMatt Sarett <msarett@google.com>
Tue, 18 Apr 2017 22:29:12 +0000 (18:29 -0400)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Wed, 19 Apr 2017 16:28:44 +0000 (16:28 +0000)
commit6cc6ae7573fdfd0af1f9488349b1d2bb88c1b01d
tree82902aa9d97585692885c62f144d883ecc035c74
parent4dbc9cead90eb31756a1c1bf61ea01f223c5fe96
SkColorSpaceXformer: Add SkShader::makeColorSpace()

Just a refactor - reimplements the shader xforms with makeColorSpace().

11 gms have diffs.  Some are down to floating precision.  The old
implementation would go float->fixed->float in some cases.  Others
are due to improvements with gradient shaders inside local matrix
shaders.

Bug: skia:6516
Change-Id: I424406990c5c58a47833cf4c9ef146cd3ea6c37e
Reviewed-on: https://skia-review.googlesource.com/13769
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
16 files changed:
include/core/SkShader.h
src/core/SkColorShader.cpp
src/core/SkColorShader.h
src/core/SkColorSpaceXformer.cpp
src/core/SkColorSpaceXformer.h
src/core/SkComposeShader.h
src/core/SkLocalMatrixShader.h
src/effects/gradients/SkLinearGradient.cpp
src/effects/gradients/SkLinearGradient.h
src/effects/gradients/SkRadialGradient.cpp
src/effects/gradients/SkRadialGradient.h
src/effects/gradients/SkSweepGradient.cpp
src/effects/gradients/SkSweepGradient.h
src/effects/gradients/SkTwoPointConicalGradient.cpp
src/effects/gradients/SkTwoPointConicalGradient.h
src/image/SkImageShader.h