diff options
author | Brian Osman <brianosman@google.com> | 2017-03-20 14:21:18 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-03-20 18:53:57 +0000 |
commit | b1168a7c9a360bf80b447e2e399bdc5721d5152e (patch) | |
tree | ad2fee14ec7aa17631fd794235cbb8c8417397f6 /src/core/SkColorSpaceXform.cpp | |
parent | edf06b207a8441d619838d4751528cb92a3547d7 (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.cpp | 7 |
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: |