diff options
author | Matt Sarett <msarett@google.com> | 2017-03-20 19:06:18 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-03-21 12:46:37 +0000 |
commit | 4c55027dbf57d0701361b123e36b8fad46c341c3 (patch) | |
tree | a31d6c056c414b3336d02740c1558c5d65588e44 /src/core/SkColorSpaceXform.cpp | |
parent | eb35f4dfaa10b9d751abbc9a1406456eb3b1649d (diff) |
Add support for F32 sources to SkColorSpaceXform
This also subtlely allows clients to convert between F32 and F16.
BUG=skia:
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Change-Id: Ied5f2295fce00c69d8cf85730be899f3f8597915
Reviewed-on: https://skia-review.googlesource.com/9914
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src/core/SkColorSpaceXform.cpp')
-rw-r--r-- | src/core/SkColorSpaceXform.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/core/SkColorSpaceXform.cpp b/src/core/SkColorSpaceXform.cpp index 33e01c9098..b81c23c6b7 100644 --- a/src/core/SkColorSpaceXform.cpp +++ b/src/core/SkColorSpaceXform.cpp @@ -1061,6 +1061,7 @@ bool SkColorSpaceXform_XYZ<kCSM> } if (kRGBA_F32_ColorFormat == dstColorFormat || + kRGBA_F32_ColorFormat == srcColorFormat || kRGBA_F16_ColorFormat == srcColorFormat || kRGBA_U16_BE_ColorFormat == srcColorFormat || kRGB_U16_BE_ColorFormat == srcColorFormat || @@ -1170,6 +1171,12 @@ bool SkColorSpaceXform_XYZ<kCSM> } pipeline.append(SkRasterPipeline::load_f16, &src); break; + case kRGBA_F32_ColorFormat: + if (kLinear_SrcGamma != fSrcGamma) { + return false; + } + pipeline.append(SkRasterPipeline::load_f32, &src); + break; case kRGBA_U16_BE_ColorFormat: switch (fSrcGamma) { case kLinear_SrcGamma: @@ -1206,8 +1213,6 @@ bool SkColorSpaceXform_XYZ<kCSM> break; } break; - default: - return false; } if (kNone_ColorSpaceMatch == kCSM) { |