aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpaceXform.cpp
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2017-03-20 14:21:18 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-03-20 18:53:57 +0000
commitb1168a7c9a360bf80b447e2e399bdc5721d5152e (patch)
treead2fee14ec7aa17631fd794235cbb8c8417397f6 /src/core/SkColorSpaceXform.cpp
parentedf06b207a8441d619838d4751528cb92a3547d7 (diff)
Improvements to readpixels GM
We don't support unpremultiplied images. Therefore: - Don't test unpremul source images. - After doing an unpremultiplying read, make sure to premul before drawing For this to work with F16, add support for F16 sources to SkColorSpaceXform. Public API change is comments-only. TBR=reed@google.com BUG=skia: Change-Id: Ie05b58231e99ca88cd7792b65ffbb4f390b01726 Reviewed-on: https://skia-review.googlesource.com/9900 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src/core/SkColorSpaceXform.cpp')
-rw-r--r--src/core/SkColorSpaceXform.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/SkColorSpaceXform.cpp b/src/core/SkColorSpaceXform.cpp
index 067868dba7..33e01c9098 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_F16_ColorFormat == srcColorFormat ||
kRGBA_U16_BE_ColorFormat == srcColorFormat ||
kRGB_U16_BE_ColorFormat == srcColorFormat ||
kPremul_SkAlphaType == alphaType)
@@ -1163,6 +1164,12 @@ bool SkColorSpaceXform_XYZ<kCSM>
pipeline.append(SkRasterPipeline::swap_rb);
break;
+ case kRGBA_F16_ColorFormat:
+ if (kLinear_SrcGamma != fSrcGamma) {
+ return false;
+ }
+ pipeline.append(SkRasterPipeline::load_f16, &src);
+ break;
case kRGBA_U16_BE_ColorFormat:
switch (fSrcGamma) {
case kLinear_SrcGamma: