aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkDisplacementMapEffect.cpp
diff options
context:
space:
mode:
authorGravatar brianosman <brianosman@google.com>2016-09-23 08:49:50 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-09-23 08:49:51 -0700
commita76554d2ae7f676776c1d472aa433b048f418ea9 (patch)
tree9c035426cb129653838b72242387c2de9fdf5634 /src/effects/SkDisplacementMapEffect.cpp
parent1cd88c4b759b3c5cbf663c55d1f1c30a4114ded9 (diff)
Revert of Create special surfaces according to original device (not always in N32) (patchset #9 id:160001 of https://codereview.chromium.org/2349373004/ )
Reason for revert: DM crash and/or TSAN failure Original issue's description: > Change SkSpecialImage::makeSurface and makeTightSurface to take output > properties (color space), bounds, and (optional) alphaType. > > We were being pretty inconsistent before. Raster was honoring all > components of the info. GPU was using the supplied color type, but > propagating the source's color space. All call sites were saying N32. > > What we want to do is propagate the original device's color space, and > pick a good format from that. Rather than force all the clients to > jump through hoops constructing an SkImageInfo that meets our criteria, > just have them supply the few bits we care about, and do everything else > internally. > > This also lets us always use RGBA on GPU, but N32 on raster. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2349373004 > > Committed: https://skia.googlesource.com/skia/+/53c38087949252d27cde668368a3eeb59cc2eb00 TBR=robertphillips@google.com,reed@google.com,bsalomon@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2366723004
Diffstat (limited to 'src/effects/SkDisplacementMapEffect.cpp')
-rw-r--r--src/effects/SkDisplacementMapEffect.cpp13
1 files changed, 1 insertions, 12 deletions
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp
index 4f6386d92e..8d068072a7 100644
--- a/src/effects/SkDisplacementMapEffect.cpp
+++ b/src/effects/SkDisplacementMapEffect.cpp
@@ -279,18 +279,7 @@ sk_sp<SkSpecialImage> SkDisplacementMapEffect::onFilterImage(SkSpecialImage* sou
}
SkIPoint displOffset = SkIPoint::Make(0, 0);
- // Creation of the displacement map should happen in a non-colorspace aware context. This
- // texture is a purely mathematical construct, so we want to just operate on the stored
- // values. Consider:
- // User supplies an sRGB displacement map. If we're rendering to a wider gamut, then we could
- // end up filtering the displacement map into that gamut, which has the effect of reducing
- // the amount of displacement that it represents (as encoded values move away from the
- // primaries).
- // With a more complex DAG attached to this input, it's not clear that working in ANY specific
- // color space makes sense, so we ignore color spaces (and gamma) entirely. This may not be
- // ideal, but it's at least consistent and predictable.
- Context displContext(ctx.ctm(), ctx.clipBounds(), ctx.cache(), OutputProperties(nullptr));
- sk_sp<SkSpecialImage> displ(this->filterInput(0, source, displContext, &displOffset));
+ sk_sp<SkSpecialImage> displ(this->filterInput(0, source, ctx, &displOffset));
if (!displ) {
return nullptr;
}