diff options
author | Christopher Cameron <ccameron@chromium.org> | 2017-07-30 12:46:39 -0700 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-07-31 20:39:37 +0000 |
commit | 179849efe5f5bb20e7036bb6e5a9f4bb9ad8b2f1 (patch) | |
tree | 13d4400b3b23b1ec5f9bdb47be728bab1fed0c66 /src/core/SkConvertPixels.cpp | |
parent | 0500ebafec1879a7c5f76fe40ee30bdab17ac3db (diff) |
Fix premul state in from_srgb in convert_with_pipeline
Without this patch, the pipeline
1. converts to unpremultiplied
2. applies the sRGB transfer assuming the pixel is premultiplied
In step 2, we should assume the pixel is unpremultiplied.
Bug:738517
Change-Id: Ic11fcf64faa423577ccb1cfc0cfe96feb57db09a
Reviewed-on: https://skia-review.googlesource.com/28404
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Diffstat (limited to 'src/core/SkConvertPixels.cpp')
-rw-r--r-- | src/core/SkConvertPixels.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/SkConvertPixels.cpp b/src/core/SkConvertPixels.cpp index 6b335e246b..3bfa6893c4 100644 --- a/src/core/SkConvertPixels.cpp +++ b/src/core/SkConvertPixels.cpp @@ -301,7 +301,7 @@ static void convert_with_pipeline(const SkImageInfo& dstInfo, void* dstRow, size SkColorSpaceTransferFn srcFn; if (isColorAware && srcInfo.gammaCloseToSRGB()) { - pipeline.append_from_srgb(srcInfo.alphaType()); + pipeline.append_from_srgb(premulState); } else if (isColorAware && !srcInfo.colorSpace()->gammaIsLinear()) { SkAssertResult(srcInfo.colorSpace()->isNumericalTransferFn(&srcFn)); pipeline.append(SkRasterPipeline::parametric_r, &srcFn); |