diff options
author | Brian Osman <brianosman@google.com> | 2018-07-12 14:44:27 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-07-12 20:54:14 +0000 |
commit | b62f50cf763279fa0d0aa2f80624de02c7a1c2fb (patch) | |
tree | a4aba5466ff7e3136bd97c35718a678354b430ea /src/images/SkWebpEncoder.cpp | |
parent | 5bc4fc8f3f26e9e14cccee4d200309e4b500b8d3 (diff) |
Replace nearly all kRespect with kIgnore
- Encoders and decoders always assume kIgnore.
- They are less opinionated about F16 and color space,
we just trust the color space that's passed in, and
put that directly in the image (no sRGB encoding).
- SkBitmap and SkPixmap read/write pixels functions were
defaulting to kResepct, those are now always kIgnore.
- Many other bits of plumbing are simplified, and I
added a default of kIgnore to SkImage::makeColorSpace,
so we can phase out that argument entirely.
- Still need to add defaults to other public APIs that
take SkTransferFunctionBehavior.
- This makes gold think that we've dramatically changed
the contents of all F16 images, but that's because
it doesn't understand the (now linear) color space
that's embedded. Once we triage them all once, they
will work fine (and they'll look perfect in the browser).
Bug: skia:
Change-Id: I62fa090f96cae1b67d181ce14bd91f34ff2ed747
Reviewed-on: https://skia-review.googlesource.com/140570
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Diffstat (limited to 'src/images/SkWebpEncoder.cpp')
-rw-r--r-- | src/images/SkWebpEncoder.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/images/SkWebpEncoder.cpp b/src/images/SkWebpEncoder.cpp index 2cb55d2f04..bda34dcb01 100644 --- a/src/images/SkWebpEncoder.cpp +++ b/src/images/SkWebpEncoder.cpp @@ -41,10 +41,7 @@ extern "C" { #include "webp/mux.h" } -static transform_scanline_proc choose_proc(const SkImageInfo& info, - SkTransferFunctionBehavior unpremulBehavior) { - const bool isSRGBTransferFn = - (SkTransferFunctionBehavior::kRespect == unpremulBehavior) && info.gammaCloseToSRGB(); +static transform_scanline_proc choose_proc(const SkImageInfo& info) { switch (info.colorType()) { case kRGBA_8888_SkColorType: switch (info.alphaType()) { @@ -53,8 +50,7 @@ static transform_scanline_proc choose_proc(const SkImageInfo& info, case kUnpremul_SkAlphaType: return transform_scanline_memcpy; case kPremul_SkAlphaType: - return isSRGBTransferFn ? transform_scanline_srgbA : - transform_scanline_rgbA; + return transform_scanline_rgbA; default: return nullptr; } @@ -65,8 +61,7 @@ static transform_scanline_proc choose_proc(const SkImageInfo& info, case kUnpremul_SkAlphaType: return transform_scanline_BGRA; case kPremul_SkAlphaType: - return isSRGBTransferFn ? transform_scanline_sbgrA : - transform_scanline_bgrA; + return transform_scanline_bgrA; default: return nullptr; } @@ -113,7 +108,7 @@ bool SkWebpEncoder::Encode(SkWStream* stream, const SkPixmap& pixmap, const Opti return false; } - const transform_scanline_proc proc = choose_proc(pixmap.info(), opts.fUnpremulBehavior); + const transform_scanline_proc proc = choose_proc(pixmap.info()); if (!proc) { return false; } |