eb0e60f1ec
Consider the following sequence of events: 1. SkPictureImageFilter::onFilterImage creates a local canvas, wraps it in a SkColorSpaceXformCanvas, and passed to... 2. SkPictureImageFilter::drawPictureAtLocalResolution creates a local canvas (localCanvas) wraps that in a SkColorSpaceXformCanvas, draws the picture to it, doing sRGB->fColorSpace conversion 3. We then call makeImageSnapshot to produce a SkSpecialImage, localImg, which is not tagged with any color space. 4. When the draw that localImg to the passed-in SkColorSpaceXformCanvas, which then performs sRGB->fColorSpace conversion a second time. We now have performed color conversion twice. One fix for this would be to have the image produced by the call to localSurface->makeImageSnapshot() be tagged with fColorSpace. This is somewhat involved. The less invasive fix is to remove the SkColorSpaceXformCanvas in SkPictureImageFilter::onFilterImage, and push it down into the two branches, SkPictureImageFilter::drawPictureAtLocalResolution and SkPictureImageFilter::drawPictureAtDeviceResolution. BUG=728332 Change-Id: If2aa32e18ad660b3e361f1d90845eeb8555fe404 Reviewed-on: https://skia-review.googlesource.com/18282 Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Christopher Cameron <ccameron@google.com> Commit-Queue: Christopher Cameron <ccameron@google.com> |
||
---|---|---|
animations | ||
bench | ||
bin | ||
debugger | ||
dm | ||
example | ||
experimental | ||
fuzz | ||
gm | ||
gn | ||
include | ||
infra | ||
platform_tools | ||
resources | ||
samplecode | ||
site | ||
src | ||
tests | ||
third_party | ||
tools | ||
.clang-format | ||
.gitignore | ||
.gn | ||
AUTHORS | ||
BUILD.gn | ||
codereview.settings | ||
CONTRIBUTING | ||
CQ_COMMITTERS | ||
DEPS | ||
Doxyfile | ||
LICENSE | ||
PRESUBMIT.py | ||
public.bzl | ||
README | ||
README.chromium | ||
whitespace.txt |
Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. See full details, and build instructions, at https://skia.org.