diff options
author | Matt Sarett <msarett@google.com> | 2017-02-28 15:36:42 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-03-01 16:59:31 +0000 |
commit | 9341c98113c91e3cf6ba2ca19833c01392c37cc8 (patch) | |
tree | b27c8bd5196faab7e4cd1c06290a1cd54f5d9b0e /src/core/SkColorSpace.cpp | |
parent | 1ac8fd25381a043681a24dc3171189db535c587d (diff) |
SkAndroidCodec: Leave pixels in encoded colorspace when tf is numerical
Color space conversion will be deferred until later.
Change-Id: I0fbade9bb374fe2ee9328f87284a2d86a199f7b4
Reviewed-on: https://skia-review.googlesource.com/9080
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src/core/SkColorSpace.cpp')
-rw-r--r-- | src/core/SkColorSpace.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/core/SkColorSpace.cpp b/src/core/SkColorSpace.cpp index c9dbf67851..e059bebc99 100644 --- a/src/core/SkColorSpace.cpp +++ b/src/core/SkColorSpace.cpp @@ -312,6 +312,21 @@ sk_sp<SkColorSpace> SkColorSpace_Base::makeWithoutFlags() { return SkColorSpace::MakeRGB(fn, *this->toXYZD50(), 0); } +sk_sp<SkColorSpace> SkColorSpace_Base::makeWithNonLinearBlending() { + if (SkToBool(SkColorSpace::kNonLinearBlending_ColorSpaceFlag & fFlags)) { + return sk_ref_sp(this); + } + + // This should only be called on XYZ color spaces. A2B color spaces are never + // allowed to be destinations - which means that this flag does not make any + // sense for them. + SkASSERT(Type::kXYZ == this->type()); + SkColorSpaceTransferFn fn; + SkAssertResult(this->onIsNumericalTransferFn(&fn)); + return SkColorSpace::MakeRGB(fn, *this->toXYZD50(), + SkColorSpace::kNonLinearBlending_ColorSpaceFlag); +} + /////////////////////////////////////////////////////////////////////////////////////////////////// enum Version { |