aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpaceXform.cpp
diff options
context:
space:
mode:
authorGravatar Matt Sarett <msarett@google.com>2017-03-20 19:06:18 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-03-21 12:46:37 +0000
commit4c55027dbf57d0701361b123e36b8fad46c341c3 (patch)
treea31d6c056c414b3336d02740c1558c5d65588e44 /src/core/SkColorSpaceXform.cpp
parenteb35f4dfaa10b9d751abbc9a1406456eb3b1649d (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.cpp9
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) {