diff options
author | Matt Sarett <msarett@google.com> | 2017-03-23 15:32:25 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-03-24 13:19:53 +0000 |
commit | cf3f2347c8933596aeba873d4ece597a9339392f (patch) | |
tree | d340f5802bb11ffe902b5f95ea06c6b75c5ccd74 /src/images | |
parent | a3bdd44aff94974e720ed04b860fbfe24f8f431e (diff) |
Add SkTransferFunctionBehavior flag: Use in codec and encoder
This is a step towards removing the non-linear blending flag from
SkColorSpace. The flag on SkColorSpace used to control the premul
behavior - now it is controlled by this option.
BUG=skia:
Change-Id: Ia29bd8c2b0596a93c6aa14332dcd9bd39e388a90
Reviewed-on: https://skia-review.googlesource.com/10008
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src/images')
-rw-r--r-- | src/images/SkImageEncoderPriv.h | 10 | ||||
-rw-r--r-- | src/images/SkJPEGImageEncoder.cpp | 2 | ||||
-rw-r--r-- | src/images/SkPNGImageEncoder.cpp | 2 | ||||
-rw-r--r-- | src/images/SkWEBPImageEncoder.cpp | 2 |
4 files changed, 4 insertions, 12 deletions
diff --git a/src/images/SkImageEncoderPriv.h b/src/images/SkImageEncoderPriv.h index 69d45fbf8c..540d93093b 100644 --- a/src/images/SkImageEncoderPriv.h +++ b/src/images/SkImageEncoderPriv.h @@ -11,15 +11,7 @@ #include "SkImageEncoder.h" struct SkEncodeOptions { - enum class ColorBehavior { - // Convert to a linear space before premultiplying or unpremultiplying. - kCorrect, - - // Ignore the transfer function when premultiplying or unpremultiplying. - kLegacy, - }; - - ColorBehavior fColorBehavior = ColorBehavior::kLegacy; + SkTransferFunctionBehavior fUnpremulBehavior = SkTransferFunctionBehavior::kIgnore; }; #ifdef SK_HAS_JPEG_LIBRARY diff --git a/src/images/SkJPEGImageEncoder.cpp b/src/images/SkJPEGImageEncoder.cpp index 014a0ae160..845673421c 100644 --- a/src/images/SkJPEGImageEncoder.cpp +++ b/src/images/SkJPEGImageEncoder.cpp @@ -86,7 +86,7 @@ bool SkEncodeImageAsJPEG(SkWStream* stream, const SkPixmap& pixmap, const SkEnco pixmap.colorSpace()->gammaIsLinear()); SkPixmap src = pixmap; - if (SkEncodeOptions::ColorBehavior::kLegacy == opts.fColorBehavior) { + if (SkTransferFunctionBehavior::kIgnore == opts.fUnpremulBehavior) { src.setColorSpace(nullptr); } else { // kCorrect behavior requires a color space. It's not actually critical in the diff --git a/src/images/SkPNGImageEncoder.cpp b/src/images/SkPNGImageEncoder.cpp index e28ae12dc0..9f5ebd27ab 100644 --- a/src/images/SkPNGImageEncoder.cpp +++ b/src/images/SkPNGImageEncoder.cpp @@ -181,7 +181,7 @@ bool SkEncodeImageAsPNG(SkWStream* stream, const SkPixmap& src, const SkEncodeOp src.colorSpace()->gammaIsLinear()); SkPixmap pixmap = src; - if (SkEncodeOptions::ColorBehavior::kLegacy == opts.fColorBehavior) { + if (SkTransferFunctionBehavior::kIgnore == opts.fUnpremulBehavior) { pixmap.setColorSpace(nullptr); } else { if (!pixmap.colorSpace()) { diff --git a/src/images/SkWEBPImageEncoder.cpp b/src/images/SkWEBPImageEncoder.cpp index a9fcc31265..28dff0569c 100644 --- a/src/images/SkWEBPImageEncoder.cpp +++ b/src/images/SkWEBPImageEncoder.cpp @@ -126,7 +126,7 @@ static bool do_encode(SkWStream* stream, const SkPixmap& srcPixmap, const SkEnco srcPixmap.colorSpace()->gammaIsLinear()); SkPixmap pixmap = srcPixmap; - if (SkEncodeOptions::ColorBehavior::kLegacy == opts.fColorBehavior) { + if (SkTransferFunctionBehavior::kIgnore == opts.fUnpremulBehavior) { pixmap.setColorSpace(nullptr); } else { if (!pixmap.colorSpace()) { |